From 93ff299e4a380f208dfff5ad5b17bcab7f617510 Mon Sep 17 00:00:00 2001 From: "Graydon, Tracy" Date: Wed, 5 Dec 2012 20:11:50 -0800 Subject: [PATCH] Update syslinux to 4.05 to support mic-0.15 --- .gitignore | 49 ++ Makefile | 10 +- NEWS | 14 + com32/Makefile | 2 +- com32/cmenu/Makefile | 5 +- com32/cmenu/complex.c32 | Bin 37980 -> 37980 bytes com32/cmenu/display.c32 | Bin 13724 -> 13724 bytes com32/cmenu/libmenu/com32io.o | Bin 1548 -> 1548 bytes com32/cmenu/libmenu/des.o | Bin 8316 -> 8316 bytes com32/cmenu/libmenu/help.o | Bin 3356 -> 3356 bytes com32/cmenu/libmenu/libmenu.a | Bin 35004 -> 35004 bytes com32/cmenu/libmenu/menu.o | Bin 12444 -> 12444 bytes com32/cmenu/libmenu/passwords.o | Bin 2512 -> 2512 bytes com32/cmenu/libmenu/syslnx.o | Bin 1804 -> 1804 bytes com32/cmenu/libmenu/tui.o | Bin 3092 -> 3092 bytes com32/cmenu/simple.c32 | Bin 23532 -> 23532 bytes com32/cmenu/test.c32 | Bin 35748 -> 35748 bytes com32/cmenu/test2.c32 | Bin 37284 -> 37284 bytes com32/gdbstub/Makefile | 3 +- com32/gfxboot/Makefile | 3 +- com32/gfxboot/gfxboot.c | 19 +- com32/gfxboot/gfxboot.c32 | Bin 21820 -> 21948 bytes com32/gplinclude/acpi/acpi.h | 1 + com32/gplinclude/cpuid.h | 236 ++++-- com32/gplinclude/zzjson/zzjson.h | 116 +++ com32/gpllib/Makefile | 7 +- com32/gpllib/acpi/acpi.c | 19 + com32/gpllib/cpuid.c | 175 +++- com32/gpllib/zzjson/zzjson_create.c | 240 ++++++ com32/gpllib/zzjson/zzjson_free.c | 29 + com32/gpllib/zzjson/zzjson_parse.c | 490 +++++++++++ com32/gpllib/zzjson/zzjson_print.c | 110 +++ com32/gpllib/zzjson/zzjson_query.c | 63 ++ com32/hdt/Makefile | 25 +- com32/hdt/floppy/hdt.cfg | 9 + com32/hdt/hdt-cli-acpi.c | 23 +- com32/hdt/hdt-cli-hdt.c | 13 + com32/hdt/hdt-cli.c | 3 +- com32/hdt/hdt-cli.h | 1 + com32/hdt/hdt-common.c | 33 +- com32/hdt/hdt-common.h | 11 +- com32/hdt/hdt-dump-acpi.c | 600 +++++++++++++ com32/hdt/hdt-dump-cpu.c | 53 ++ com32/hdt/hdt-dump-disks.c | 137 +++ com32/hdt/hdt-dump-dmi.c | 447 ++++++++++ com32/hdt/hdt-dump-hdt.c | 50 ++ com32/hdt/hdt-dump-kernel.c | 69 ++ com32/hdt/hdt-dump-memory.c | 133 +++ com32/hdt/hdt-dump-pci.c | 136 +++ com32/hdt/hdt-dump-pxe.c | 80 ++ com32/hdt/hdt-dump-syslinux.c | 43 + com32/hdt/hdt-dump-vesa.c | 67 ++ com32/hdt/hdt-dump-vpd.c | 47 + com32/hdt/hdt-dump.c | 169 ++++ com32/hdt/hdt-dump.h | 85 ++ com32/hdt/hdt-menu-acpi.c | 4 +- com32/hdt/hdt-menu-disk.c | 10 +- com32/hdt/hdt-menu-pxe.c | 6 +- com32/hdt/hdt-menu.c | 12 + com32/hdt/hdt.c32 | Bin 281796 -> 342452 bytes com32/hdt/hdt.h | 4 +- com32/include/bitsize/stddef.h | 6 +- com32/include/bitsize/stdint.h | 30 +- com32/include/bitsize/stdintconst.h | 2 +- com32/include/bitsize/stdintlimits.h | 2 +- com32/include/bufprintf.h | 10 + com32/include/cpufeature.h | 2 +- com32/include/ctype.h | 1 + com32/include/dprintf.h | 20 +- com32/include/netinet/in.h | 3 + com32/include/stdint.h | 184 ++-- com32/include/syslinux/movebits.h | 9 +- com32/lib/Makefile | 8 +- com32/lib/bufprintf.c | 41 + com32/lib/chrreplace.c | 11 + com32/lib/dprintf.c | 2 + com32/lib/inet.c | 39 + com32/lib/pci/scan.c | 18 +- com32/lib/syslinux/dump_mmap.c | 12 +- com32/lib/syslinux/dump_movelist.c | 9 +- com32/lib/syslinux/load_linux.c | 23 +- com32/lib/syslinux/movebits.c | 42 +- com32/lib/syslinux/shuffle.c | 18 +- com32/lib/syslinux/zonelist.c | 24 +- com32/lib/vdprintf.c | 4 + com32/libupload/.gitignore | 2 + com32/libupload/Makefile | 39 + com32/{sysdump => libupload}/cpio.c | 14 +- com32/{sysdump => libupload}/ctime.c | 0 com32/{sysdump => libupload}/ctime.h | 0 com32/{sysdump => libupload}/serial.c | 0 com32/{sysdump => libupload}/serial.h | 0 com32/{sysdump => libupload}/srecsend.h | 0 com32/libupload/tftp.h | 22 + com32/libupload/upload_backend.h | 56 ++ .../{sysdump/be_srec.c => libupload/upload_srec.c} | 8 +- .../{sysdump/be_tftp.c => libupload/upload_tftp.c} | 66 +- .../be_ymodem.c => libupload/upload_ymodem.c} | 8 +- com32/{sysdump => libupload}/ymodem.txt | 0 com32/{sysdump => libupload}/zout.c | 19 +- com32/libutil/Makefile | 3 +- com32/libutil/libutil_com.a | Bin 37324 -> 37324 bytes com32/libutil/libutil_lnx.a | Bin 117412 -> 117556 bytes com32/lua/src/Makefile | 6 +- com32/lua/src/lua.c32 | Bin 246684 -> 249420 bytes com32/mboot/Makefile | 6 +- com32/mboot/map.c | 5 +- com32/mboot/mboot.c32 | Bin 34396 -> 34396 bytes com32/menu/Makefile | 8 +- com32/menu/menu.c32 | Bin 56164 -> 56292 bytes com32/menu/vesamenu.c32 | Bin 155792 -> 155792 bytes com32/modules/Makefile | 5 +- com32/modules/cat.c32 | Bin 5824 -> 5824 bytes com32/modules/chain.c | 114 ++- com32/modules/chain.c32 | Bin 20192 -> 20704 bytes com32/modules/config.c32 | Bin 4748 -> 4748 bytes com32/modules/cpuid.c32 | Bin 5516 -> 5516 bytes com32/modules/cpuidtest.c32 | Bin 12072 -> 15448 bytes com32/modules/disk.c32 | Bin 5516 -> 5516 bytes com32/modules/dmitest.c32 | Bin 37016 -> 37016 bytes com32/modules/elf.c | 16 +- com32/modules/elf.c32 | Bin 28752 -> 28752 bytes com32/modules/ethersel.c | 7 +- com32/modules/ethersel.c32 | Bin 29136 -> 29008 bytes com32/modules/host.c32 | Bin 4492 -> 4492 bytes com32/modules/ifcpu.c32 | Bin 16688 -> 19936 bytes com32/modules/ifmemdsk.c | 392 +++++++++ com32/modules/linux.c32 | Bin 16872 -> 16872 bytes com32/modules/ls.c32 | Bin 9388 -> 9516 bytes com32/modules/meminfo.c32 | Bin 5300 -> 5300 bytes com32/modules/pcitest.c | 7 +- com32/modules/pcitest.c32 | Bin 32868 -> 32740 bytes com32/modules/pmload.c | 16 +- com32/modules/pmload.c32 | Bin 13148 -> 13148 bytes com32/modules/sdi.c32 | Bin 26320 -> 26192 bytes com32/modules/vesainfo.c32 | Bin 5260 -> 5260 bytes com32/modules/vpdtest.c32 | Bin 6052 -> 6052 bytes com32/modules/zzjson.c | 101 +++ com32/rosh/Makefile | 3 +- com32/rosh/rosh.c32 | Bin 21384 -> 21384 bytes com32/samples/Makefile | 3 +- com32/samples/advdump.c32 | Bin 5160 -> 5160 bytes com32/samples/entrydump.c32 | Bin 4752 -> 4752 bytes com32/samples/fancyhello.c32 | Bin 9156 -> 9156 bytes com32/samples/fancyhello.lnx | Bin 10135 -> 10131 bytes com32/samples/hello.c32 | Bin 5028 -> 5028 bytes com32/samples/keytest.c32 | Bin 11392 -> 11392 bytes com32/samples/keytest.lnx | Bin 24423 -> 24521 bytes com32/samples/resolv.c32 | Bin 4620 -> 4620 bytes com32/samples/serialinfo.c32 | Bin 4624 -> 4624 bytes com32/sysdump/Makefile | 7 +- com32/sysdump/acpi.c | 9 +- com32/sysdump/backend.h | 55 -- com32/sysdump/cpuid.c | 3 +- com32/sysdump/data.h | 2 - com32/sysdump/dmi.c | 7 +- com32/sysdump/main.c | 21 +- com32/sysdump/memmap.c | 5 +- com32/sysdump/memory.c | 5 +- com32/sysdump/pci.c | 5 +- com32/sysdump/sysdump.c32 | Bin 40336 -> 40432 bytes com32/sysdump/sysdump.h | 16 +- com32/sysdump/vesa.c | 5 +- com32/tools/Makefile | 4 +- core/Makefile | 5 +- core/diskboot.inc | 2 +- core/diskfs.inc | 4 +- core/diskstart.inc | 40 +- core/head.inc | 4 +- core/init.inc | 24 +- core/isolinux-debug.bin | Bin 24576 -> 24576 bytes core/isolinux.asm | 173 ---- core/isolinux.bin | Bin 24576 -> 24576 bytes core/ldlinux.bin | Bin 31675 -> 32229 bytes core/ldlinux.bss | Bin 512 -> 512 bytes core/ldlinux.sys | Bin 31163 -> 31205 bytes core/pxelinux.0 | Bin 26442 -> 26460 bytes core/pxelinux.bin | Bin 26442 -> 26460 bytes core/ui.inc | 7 +- diag/geodsp/Makefile | 33 +- diag/geodsp/geodsp1s.lst | 539 ------------ diag/geodsp/geodspms.lst | 943 --------------------- diag/geodsp/mk-lba-img | Bin 7344 -> 0 bytes diag/geodsp/mk-lba-img.c | 55 +- diag/mbr/Makefile | 3 +- doc/isolinux.txt | 31 - doc/logo/syslinux-100.png | Bin 0 -> 131308 bytes dos/Makefile | 3 +- dos/syslinux.com | Bin 35285 -> 35364 bytes dosutil/Makefile | 3 +- extlinux/Makefile | 8 +- extlinux/btrfs.h | 105 +++ extlinux/extlinux | Bin 95275 -> 56208 bytes extlinux/main.c | 308 ++++++- gpxe/gpxelinux.0 | Bin 89371 -> 89418 bytes gpxe/gpxelinuxk.0 | Bin 89271 -> 89292 bytes libinstaller/Makefile | 2 + libinstaller/syslxint.h | 9 + libinstaller/syslxmod.c | 21 +- linux/Makefile | 8 +- linux/syslinux | Bin 83490 -> 51800 bytes linux/syslinux-nomtools | Bin 83490 -> 51800 bytes lzo/Makefile | 3 +- mbr/Makefile | 3 +- mbr/isohdpfx.S | 31 + mbr/isohdpfx.bin | Bin 432 -> 432 bytes mbr/isohdpfx_c.bin | Bin 432 -> 432 bytes mbr/isohdpfx_f.bin | Bin 432 -> 432 bytes mbr/isohdppx.bin | Bin 432 -> 432 bytes mbr/isohdppx_c.bin | Bin 432 -> 432 bytes mbr/isohdppx_f.bin | Bin 432 -> 432 bytes memdisk/Makefile | 3 +- memdisk/memdisk | Bin 26140 -> 26140 bytes memdump/Makefile | 3 +- memdump/memdump.com | Bin 5912 -> 5912 bytes MCONFIG.build => mk/build.mk | 2 +- com32/MCONFIG => mk/com32.mk | 2 +- MCONFIG.embedded => mk/embedded.mk | 2 +- com32/lib/MCONFIG => mk/lib.mk | 2 +- com32/rosh/MCONFIG => mk/rosh.mk | 2 +- MCONFIG => mk/syslinux.mk | 6 +- modules/Makefile | 3 +- mtools/Makefile | 8 +- mtools/syslinux | Bin 50060 -> 50064 bytes ...ctly-determine-the-installation-subvolume.patch | 493 ----------- packaging/correct-uuid-link-lib.patch | 13 + packaging/syslinux.manifest | 5 - packaging/syslinux.spec | 60 +- sample/Makefile | 3 +- syslinux.spec | 217 +---- utils/Makefile | 21 +- utils/gethostip | Bin 4352 -> 4352 bytes utils/isohybrid | Bin 16692 -> 20416 bytes utils/isohybrid.c | 566 ++++++++++++- utils/isohybrid.h | 2 +- utils/isohybrid.pl | 146 ++-- utils/memdiskfind | Bin 4940 -> 4940 bytes utils/ppmtolss16 | 2 +- version | 2 +- version.gen | 6 +- version.h | 6 +- version.mk | 6 +- win32/syslinux.exe | Bin 71168 -> 71168 bytes win64/syslinux64.exe | Bin 57856 -> 58368 bytes 244 files changed, 6128 insertions(+), 3271 deletions(-) create mode 100644 .gitignore create mode 100644 com32/gplinclude/zzjson/zzjson.h create mode 100644 com32/gpllib/zzjson/zzjson_create.c create mode 100644 com32/gpllib/zzjson/zzjson_free.c create mode 100644 com32/gpllib/zzjson/zzjson_parse.c create mode 100644 com32/gpllib/zzjson/zzjson_print.c create mode 100644 com32/gpllib/zzjson/zzjson_query.c create mode 100644 com32/hdt/hdt-dump-acpi.c create mode 100644 com32/hdt/hdt-dump-cpu.c create mode 100644 com32/hdt/hdt-dump-disks.c create mode 100644 com32/hdt/hdt-dump-dmi.c create mode 100644 com32/hdt/hdt-dump-hdt.c create mode 100644 com32/hdt/hdt-dump-kernel.c create mode 100644 com32/hdt/hdt-dump-memory.c create mode 100644 com32/hdt/hdt-dump-pci.c create mode 100644 com32/hdt/hdt-dump-pxe.c create mode 100644 com32/hdt/hdt-dump-syslinux.c create mode 100644 com32/hdt/hdt-dump-vesa.c create mode 100644 com32/hdt/hdt-dump-vpd.c create mode 100644 com32/hdt/hdt-dump.c create mode 100644 com32/hdt/hdt-dump.h create mode 100644 com32/include/bufprintf.h create mode 100644 com32/lib/bufprintf.c create mode 100644 com32/lib/chrreplace.c create mode 100644 com32/lib/inet.c create mode 100644 com32/libupload/.gitignore create mode 100644 com32/libupload/Makefile rename com32/{sysdump => libupload}/cpio.c (75%) rename com32/{sysdump => libupload}/ctime.c (100%) rename com32/{sysdump => libupload}/ctime.h (100%) rename com32/{sysdump => libupload}/serial.c (100%) rename com32/{sysdump => libupload}/serial.h (100%) rename com32/{sysdump => libupload}/srecsend.h (100%) create mode 100644 com32/libupload/tftp.h create mode 100644 com32/libupload/upload_backend.h rename com32/{sysdump/be_srec.c => libupload/upload_srec.c} (91%) rename com32/{sysdump/be_tftp.c => libupload/upload_tftp.c} (70%) rename com32/{sysdump/be_ymodem.c => libupload/upload_ymodem.c} (96%) rename com32/{sysdump => libupload}/ymodem.txt (100%) rename com32/{sysdump => libupload}/zout.c (80%) create mode 100644 com32/modules/ifmemdsk.c create mode 100644 com32/modules/zzjson.c delete mode 100644 com32/sysdump/backend.h delete mode 100644 com32/sysdump/data.h delete mode 100644 diag/geodsp/geodsp1s.lst delete mode 100644 diag/geodsp/geodspms.lst delete mode 100755 diag/geodsp/mk-lba-img create mode 100644 doc/logo/syslinux-100.png rename MCONFIG.build => mk/build.mk (97%) rename com32/MCONFIG => mk/com32.mk (98%) rename MCONFIG.embedded => mk/embedded.mk (98%) rename com32/lib/MCONFIG => mk/lib.mk (98%) rename com32/rosh/MCONFIG => mk/rosh.mk (97%) rename MCONFIG => mk/syslinux.mk (96%) delete mode 100644 packaging/0001-btrfs-Correctly-determine-the-installation-subvolume.patch create mode 100644 packaging/correct-uuid-link-lib.patch delete mode 100644 packaging/syslinux.manifest diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..2443538 --- /dev/null +++ b/.gitignore @@ -0,0 +1,49 @@ +*.0 +*.a +*.bin +*.bss +*.c32 +*.com +*.cp +*.d +*.elf +*.exe +*.gen +*.img +*.img.xz +*.lib +*.lnx +*.lo +*.lsr +*.lst +*.map +*.o +*.obj +*.orig +*.raw +*.rej +*.s +*.sec +*.sys +*_bin.c +*~ +\#* +.\#* +.depend +/com32/lib/sys/vesa/alphatbl.c +/diag/geodsp/mk-lba-img +/extlinux/extlinux +/memdisk/memdisk +/mtools/syslinux +/release +/sample/syslogo.lss +/linux/syslinux +/linux/syslinux-nomtools +/utils/gethostip +/utils/isohdpfx.c +/utils/isohybrid +/utils/isohybrid.pl +/utils/memdiskfind +/utils/mkdiskimage +/version.h +/version.mk diff --git a/Makefile b/Makefile index 60a5956..48b3420 100644 --- a/Makefile +++ b/Makefile @@ -15,7 +15,8 @@ # Main Makefile for SYSLINUX # topdir = . -include $(topdir)/MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/syslinux.mk -include $(topdir)/version.mk # @@ -97,6 +98,13 @@ installer: installer-local: $(ITARGET) $(BINFILES) +strip: + $(MAKE) strip-local + set -e ; for i in $(ISUBDIRS); do $(MAKE) -C $$i strip ; done + -ls -l $(BOBJECTS) $(IOBJECTS) + +strip-local: + version.gen: version version.pl $(PERL) version.pl $< $@ '%define < @' version.h: version version.pl diff --git a/NEWS b/NEWS index 94c47ab..c89da2d 100644 --- a/NEWS +++ b/NEWS @@ -2,6 +2,20 @@ Starting with 1.47, changes marked with SYSLINUX, PXELINUX, ISOLINUX or EXTLINUX apply to that specific program only; other changes apply to all derivatives. +Changes in 4.05: + * HDT updated, and now supports uploading data to a TFTP + server. + * ISOLINUX: remove the .img file support; it has been broken + on virtually all systems since the beginning, and has been + totally broken since 4.00 at least. Use MEMDISK instead. + * chain.c32: Support chaining ReactOS' FreeLdr (Shao Miller) + * isohybrid: -m option to add support for Mac EFI booting. + * ifmemdsk.c32: Choose boot option based on presence of + MEMDISK. + * Remove bogus distributed mk-lba-img binary. + * The Syslinux project has a new, cool logo by Abi + "ixxvil" Rasheed (doc/logo/*). + Changes in 4.04: * PXELINUX: Fix handling of unqualified DNS names. * PXELINUX: Fix timer bug when PXELINUX might be unloaded diff --git a/com32/Makefile b/com32/Makefile index b090c40..da632a1 100644 --- a/com32/Makefile +++ b/com32/Makefile @@ -1,4 +1,4 @@ -SUBDIRS = tools lib gpllib libutil modules mboot menu samples rosh cmenu \ +SUBDIRS = libupload tools lib gpllib libutil modules mboot menu samples rosh cmenu \ hdt gfxboot sysdump lua/src all tidy dist clean spotless install: diff --git a/com32/cmenu/Makefile b/com32/cmenu/Makefile index 794af74..446bbcd 100644 --- a/com32/cmenu/Makefile +++ b/com32/cmenu/Makefile @@ -17,11 +17,12 @@ NOGPL := 1 -# This must be defined before MCONFIG is included +# This must be defined before com32.mk is included LIBS = libmenu/libmenu.a topdir = ../.. -include ../MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/com32.mk CFLAGS += -I./libmenu diff --git a/com32/cmenu/complex.c32 b/com32/cmenu/complex.c32 index 325c718f6b4d91c5af6ac66fe6161f8384e8227a..14bf8fba0e1c10c385688a66112c602ca9c47bac 100755 GIT binary patch delta 7065 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 M4f5^IAetclAH}M0uK)l5 diff --git a/com32/cmenu/display.c32 b/com32/cmenu/display.c32 index 0cabacbcb0452e8772662772992e40bb68570c4b..c5bc1c3cd5f6e92214c217f4891e958f7af5129e 100755 GIT binary patch delta 2945 zcmY+G4Nz3q702IQ7g*SZw?Gh-1(xLrELeev6?9|NE|{ih8S$%QQQH_&KVr>fX>Dt> z+J(wz^2T$;hLV@hY<;Xt9Q1?lu1%3?3;uq-EPgypB=?uL4rkc51rLa zgKva4VsH;GE9yq0KV6Cm zm!I%YJsAf*6!_m~x*n-+?I;u3t@rc91DY!4WW7@Yr_SK1a*jR}4BNQB+a}OO-lgY6 zmax!EqEZ|T|5+$PoTLHMZ1F1PPr5ek;YD57KWfE>dgQE^QE)N{pn%jm*S!DV&(=Pz=YHpLW( zokTImL}$1vw!tLU&=E@pUZK-6TO`tF7O%KS3*)~g^5{VPEOCo2#{W=sP;J6iF-&I@ z)`~&OwYr@3DU!6iI;$maceSIXN?N^UZGHR7v4kC?r>riKNk6vch%I!;nkW87-PSBI zog&uUFTybzMI0%>vY#m@5V- zoH$*SQ*YwFdbcb|tB`fVuQyS++!i`OGB3Wc{(j{J-W(JpzG zSV?coGejZv%e%xu^4aT63!U`O!pTCWn|2RQupoJr*h@Q-(}aUwNp2CJP)^FqSX(b@ zcsXrPDH9F!W=gtPLg!QRL=oLgahs%UN=vO1Z_tL+C&fBCo;u%OYr(c2nB`qx0;t!D zkJH0{p=$qo8x_`#HV5s)OiB6~nrE8a)PqkYSff-_)+mkK5z4*mI?Z5d$*s}_;?maTnmW;6fbK#rgjO?`880%PgbdncZphhv9 zwO4o{kVSjZAiMS>gPhtngM_vP6xw=0y|ZH|{<~?LY7|F;eELktD=y#+9okp@uzQLc zUBN~PFX0Gunw#&-Y9-W9uSEr{Vba{}HA8MTqd$pjMC$S?3OY%Xp-hOcjEk>mw_`cH z-25K;P?b6OtfX#Ml;&G%r>uSeOwQ~18|3B=2z~24 z&&y2}W=ZlVdA{w-@obfwkFZ|kX_T8@X76os^ZxK-lN*J&91f?an#6wUnvx@a9lkN8 zTqI4y<)fav??q1JrVMgtKJNF&2evCVz0uz1W)Qvw+?jlff>qM)Ws0T6j+~ZVAnYg5It&8bl%1#o_xZAou?y^{m>*yq> zHWVQ2G7_P)Igch@zpLv}RlOZK{8Q)b#9xgQo+hueZRM8Kc)RLM^db3e_kXAv#DWlmXF3ho-p_Ij)F|>X)X~;U~_W zKPYM`tKg(~nXVM95dLsU;S}+R647>MZ}4xx z2?iemTZQD0E_@gRr(rk(&NcWb*k$lrV16y$=jtxa6U>=oeZXMc zOwu5jvlzqc4`IM*WP=XoG&0AOj--*<3g$F2CxbbS%;{jHG0ItB&LS_I2j(m?7l1j7 z%*9~NB6A7Y&uQe{&BTD24HaNcDeE4CSziF=^s-)MFzZi(In}H$F_`tbal8`DN5DR- z4TevWvqi)Ddjotce5m^d@g>sVZU+D#AhOH#s82sUjX3m#yv|^yGq|EPtEF| VF`|w>yD|F$S}&R{+*)oG{|BGdF{=Oo delta 2772 zcmZ9O3s6+o8OQIpEU>T(mq!c&3%e|rw-E?LAg)9mM4+TigV7|$N7@WN(~@RMX-j4? z7Xp{fPGP>N$qW-`I>ls~m`-LLwO||!kBv=DqOrzwjDwSD+{;62RI2#6{l4WAusd_k z`JMmwoyYy3b1(Gl=-H8cg-P&eN`F2j4SV{FdG=c#pM~2WjsP`*A$$o^ zz=(f@GU)N0014m_UN)4#Zp;k1kRg1fY1+m5uCEsf!Wk-`>E#r)C#j55IgdHUB3ObO zj6V^#P+u7dd}kGe!hygic-XiaVo@{Z!M`ytG&AW~9zA7n;Z2mXe(=W!>BSwPS@0@i z=tpqew<@gO0MFtFriJtf!=@65z`Ldj_#9V8JOeiDiFgE5JRR{W4B!)y4KR(zBR9bn zOfx&|&%_BrXJtx9cxR=xW0kOe*fqQfWI_5AOT-D+h9BHH>bl__;+&(WMjab z7K^d8sf}~HBL6Jb*m_n6=jJ$pt1YPymXO+6DN%aYTxd7`!BPa5@voLL$U@apzP&N# z{wdF;3xWqr$@_Z$N-0$Ecql$DXbW}LS)m~pS+QcoOV7vGT)ZxeC zVvuk`Y=<6n#cW6{x6?9b6^o?!3n#}5JVvQXxvESD%s3X~q$ACWeHyy3C3XSWaZhXq zTt!>ly0Dm0y3{|%=D0%m1%4Qp05v!gmkyaY7MEkVlY$H4>)>777GDF;;lcRj?iv&A zbJ{4jFC$Pc+aC%gI^oj~16OXQ8{4KtrHIu3UI+@bhCxl|ti@v6y)Z%Oqwk8~uaG2a1U2IS z=a=TqFR5cRz?mzy4O8n~W%Rr#C_5#oZBiK)mCs32pFGSNJ6(^uEzYg3Jm+>-lCyR^ z&gl|c-{r{f#nye?zSNjEZlhH#243||lC)aMqIwueRbL~JIjlC};DU1J7on7Pl5(9d zxPIl_Cbk_TVf+Q>%VKM(Q4rkG&R@H1&IYk9MzM7_XE%v$Z~B%!*a&di=Szq; zz#jA`+Tb1ErNm;0w$ax}`DChsJP}*tFemvjtLG`f9U(VM7OgR6Jcj{X<=hxtD{xnG zLfJl=mM)B`UWpt}^sEx-%9xY_GP>}zDsyZn^>dZs@hhCAMEY0K{%B8=_^;$77{(jP zo1quiT9+8Qx_oa~%OTuCeLE!z>NECsW5@VwuhtCA2h9x z%~JjoIDkfbNmTDVWgAx6^Pvoz?5U81d#S#ShwKkW-Ml(C>L}i@r^8#An3f8^!&0iB z#dTCK#aGf&v#ggjZQkdnfnM(5a$flq-SxoTNlmNw%f;BARxK9ul?hQNsTL1oF~&Oz zpcpG0%cy?MkxTUf$Kq7Znwf(94frQCO*~d1g#@KQE8cRv0~z>M`q{@nr9?Y@pZxLw z(Gx2kuk*`Cc?tUYvijg{JfF1|WM5HsB0P{C&@^ROO{e?7XDu{F2G-){ zoB%As>fCgw_Pv<Yu5*u~yA`aCV ziNkc>LmaO2+r%cFdx#@+-bWm%^Ph;#Ah?4I_fp5M2i_x2)A@a3ht3}o^P}-bKO&ZN zK1iIQ^I_slo%@KhbpDt)Tjv4d9GwUA-836@_;!y_fSC*zJ|kvVSpPz2*3S^LL#&_E zne}gp*)7&D>dgB0#OxgFV>;8jEnFdH7ejgd8`NPNIdGepZDfXm85^0yiP=WxC}Ose zIi8qo400kdyT}XMh}lKvbYgaqIg6NGWX>aYvyHsFeCjZBpqQ8~WxZ5q)|U~py{xa$ zne|Fywwm=Comv0cJgy_=BjB8MI#W)x@EmpcJUFl!6N_y*Ln*X{rSzAN;+L))_)LVI p^lw?!Lj?4@blnux&f)XL@hO4DGwN(TLZkmdEYS1fKl2|!N|bS(7@8bLO~-aHATTAu|&Z{&rHuy*K+f2#y}PT*7yo! delta 40 vcmeC->EYS1fKl2&!N|bS(7?pNLO~-aHATTAu|&Z{&rHui*Ld@8#y}PT)-MWI diff --git a/com32/cmenu/libmenu/des.o b/com32/cmenu/libmenu/des.o index fab2367e9f433f223e8b98469543567b1f9bc46a..c77fe15eb82f7cd50d0ce03aa22120df8402d051 100644 GIT binary patch delta 54 zcmez4@W)|;s;IP~f{}rtp@F4=g@Q&MRNw delta 40 vcmbOuHAia0KNe{N1tSAPLjw~73k8j!)D#7e#1aJ)Ju^K6UE|G?tjrt$>0=5E diff --git a/com32/cmenu/libmenu/libmenu.a b/com32/cmenu/libmenu/libmenu.a index ea72169bf046050de5a35daa8da5171b176d0052..ad5a828d338f575dd99e289dbc5ebcf6ce91c670 100644 GIT binary patch delta 428 zcmdlpk!jCFrU_CUM#d(lmgW{l8#D^zORyy{NgFB{85kNGSQ=O;XauFE zD0n26D46J(=^5%;PM&9HJUNO#Y_klf8Vjn{1l~1_gtTss;x|CiCcb&4us$0BZB3J9 z?Zr3uNcq7XYXo-e5BY96d|Efpvl9`5ITE7fLckAZd|H71gVV#(7ohU<50$MFM oCl*{|VKm!pQ7Xm=r2Na&5r%B8t5#qoU_jGkd3({#0gXBA0Ipzjc>n+a delta 428 zcmdlpk!jCFrU_CU2F8YFh8C8V8#D^zORyy{NgF5_85kNGm>5_nXauFE zD0n26D46J(=^5x6Po8IIJUNO#Y_klf8Vjn{1l~1_gtTss;x|CiCcb&4us$0BZB3J9 z?Zr3uNco{T_J@4896qg^=h=w}p*r$Hzz=48T7dq8*j5wj1h>r+95i>L3`GfOwcMOo naE*o0WV1!77$cDKFH=VtvbnBWft7#(O_SyAMK=dD=CA_*OW$(< diff --git a/com32/cmenu/libmenu/menu.o b/com32/cmenu/libmenu/menu.o index 3dd53a93741990c4a2fee6a9a3b96cf150cb82d8..ad5e37e7c794bf3dc2028913f69cb9525bc486d2 100644 GIT binary patch delta 40 vcmbP}I45yKy_~e6f{}rtp@F4=g@Q&*3oF!X#~|U}RuuXkckzp`a0znxf#5SfXH}XQpSUYq>d}X)X%@%()64 delta 40 vcmeC->*3oF!X#~=U}RuuXkcPsp`a0znxf#5SfXH}XQpSMYrHw1X)X%@%kT;j diff --git a/com32/cmenu/libmenu/tui.o b/com32/cmenu/libmenu/tui.o index 07b19c904457b44d518a6a68bac62cb1e44fba7b..119abb4c59acc0ec958f6408380a5cb5d35a2031 100644 GIT binary patch delta 40 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 delta 4650 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 O6(22|@0HoNv;P7Gz^q&oh#F0@J<;hj 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 diff --git a/com32/cmenu/test2.c32 b/com32/cmenu/test2.c32 index 01aeaa1907e3dbc136cf5a85326061e876d29bc3..04c2ec6849b9ada485e6e6c564a23956087155af 100755 GIT binary patch delta 8100 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 diff --git a/com32/gdbstub/Makefile b/com32/gdbstub/Makefile index 5513876..38d003c 100644 --- a/com32/gdbstub/Makefile +++ b/com32/gdbstub/Makefile @@ -15,7 +15,8 @@ ## topdir = ../.. -include ../MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/com32.mk CFLAGS += -fPIE diff --git a/com32/gfxboot/Makefile b/com32/gfxboot/Makefile index 73133e1..183115f 100644 --- a/com32/gfxboot/Makefile +++ b/com32/gfxboot/Makefile @@ -12,7 +12,8 @@ ## ----------------------------------------------------------------------- topdir = ../.. -include ../MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/com32.mk MODULES = gfxboot.c32 diff --git a/com32/gfxboot/gfxboot.c b/com32/gfxboot/gfxboot.c index 3749920..35d180a 100644 --- a/com32/gfxboot/gfxboot.c +++ b/com32/gfxboot/gfxboot.c @@ -102,6 +102,8 @@ typedef struct __attribute__ ((packed)) { // 0: GFX_CB_MENU_INIT accepts 32 bit addresses // 1: knows about xmem_start, xmem_end uint16_t reserved_1; // 62: + uint32_t gfxboot_cwd; // 64: if set, points to current gfxboot working directory relative + // to syslinux working directory } gfx_config_t; @@ -181,6 +183,7 @@ int main(int argc, char **argv) { int menu_index; const union syslinux_derivative_info *sdi; + char working_dir[256]; openconsole(&dev_stdcon_r, &dev_stdcon_w); @@ -224,6 +227,10 @@ int main(int argc, char **argv) return 0; } + if(getcwd(working_dir, sizeof working_dir)) { + gfx_config.gfxboot_cwd = (uint32_t) working_dir; + } + if(gfx_init(argv[1])) { printf("Error setting up gfxboot\n"); if(argc > 2) show_message(argv[2]); @@ -806,6 +813,12 @@ void boot(int index) int i, label_len; unsigned ipapp; const struct syslinux_ipappend_strings *ipappend; + char *gfxboot_cwd = (char *) gfx_config.gfxboot_cwd; + + if(gfxboot_cwd) { + chdir(gfxboot_cwd); + gfx_config.gfxboot_cwd = 0; + } for(menu_ptr = menu; menu_ptr; menu_ptr = menu_ptr->next, index--) { if(!index) break; @@ -922,11 +935,15 @@ void boot_entry(menu_t *menu_ptr, char *arg) *skip_nonspaces(s) = 0; initrd_arg = s; } + else if(initrd_arg) { + free(s0); + initrd_arg = s0 = strdup(initrd_arg); + } if(initrd_arg) { initrd = initramfs_init(); - while((t = strsep(&s, ","))) { + while((t = strsep(&initrd_arg, ","))) { initrd_buf = load_one(t, &initrd_size); if(!initrd_buf) { diff --git a/com32/gfxboot/gfxboot.c32 b/com32/gfxboot/gfxboot.c32 index 19005984e73c8b14bb9db11c83365697b22f52be..12962c7dcb6b8b390cba7912fed3a450c18e16ed 100755 GIT binary patch delta 5598 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 delta 5381 zcmZ`-3s_V~mae+C(qQXtp+%79AzTCnk@ktuC>lgijQ9c-pIPH5>l%%X(TquJE+pRE z^bYPZZYGb3nZ%3}jWNL;@UedQ0AxQ+SRbQ#n2^MYw{6`RWr(`Q-oLuVW&N`KeTQ3h z>YP)j&a;ZcyZPY{cuf8M;?o1}84SPj&Bw>gV9Zndri8zAcx%kStiVv86k%qA?i}?> zw|0A6ipg_m7bp&df=Bz!y`0|bB)#|eTRU~y1N027&CmvJ-4LsIWXAkt1FjvEr87G> z`TcYue&0R6-}r~E2V?qP=mR-7jQv)|)Z6~bHjMZ5*?P594gsOo%k^<3k4s zg~U%+ZTPFHJ1{?(ieWv+ALD{dZ}S-b1Rdf7rSB8zd!AxFmfrt&*+DQOZ5V?Hc67}ev<3T!Vp*Q^@Qk2JutIkwmmSj1jAHEEWAlKx)*Xr zV|v6`FC*gh2T?K!s?*XQ-*SlxLX`e-@r*ed)DxNI$4h6b*U~$arg1V=g%nAL;^?!G z5j>wv<|Mv^QqA#$#>X)x*Ol7jx`NCy?T+EVTs@IhzHrg;t^z(UqSfXssV$a1FegaQ z711g4h<;mQ8JnY?NH70Cqz>vAn#_wSH*|pHEu_VvaXgINq5Y(f3+c7cVd0T5qNiBN z_smiXVM3d+g1!nZmG<_e5n+XVDLohVymUU4ehFJ_ON(J_Zb!b7#a-bZ)%6P!c^j?i zIfxg~8$A=Bc)0*J%U8_WEXC4{WMHgLL8P-2ut z!9p$iEJblN7`OgA;6=p~gi>g)gcPOICw(UZ+oai) zW*9*zk1v!HktbIjppssZ?$>(>=QJ39Ok&LYDm2sATM!OM&U zSW0W0JE!{k`V6RV(Tso{P$;6Hq$Qc%U@VtyVhoX)uUKIp8%Un+53ajF*bEPp1*52F zpTb&NBeZZ=C1TIb8x@J)2_ggqD0$R5z6Lobtgy*Dg+>3KsVHMzovR>cqhvR_a zom$%_KxDJ_SDlcl(5+DDwgaJ3FJj)Nyt((StHmt3PzPmRq#f-c>VJFryHF$$-{g}`D& zi*tgek1xdd4CnWKFNkM@*l}Gm0)BgVyZ9lG>iWdRHRU1kK5Erkjb3OG<;QDkYGzLF zw9lXER-a*f9Ssbh%k8u&yp(6qh48rk?~g-r7+c|xM;JULM`ZV(fo1Klnnlr?9oK!C zx=AV2e$wt5AKB<_o1+&Zr*ngQW9glU7rBd4Z406!$NoQT^aq<$I+{yg*~+4p=fV(Y zMB&&3TdNK6YTFH+%o0uM`;ye+q;q{sqq2^{EYne8L~XBmxY<0K5Se5d<-|oulu+Z6 zLTe(2Nw;%qcSe?Q{yuf|OXJT{V$?rNzA^Mk)Iaj)YvZD;xpaFp?d*RzA$v5+uHV=J z!_LFGOJ{DrChAP*Sz>5&%w(x`6rGM4=a?+~eb*$vl#7A(b=rPgmO`(R}DzW88d^==Gd;Q?fV_vr^n?p;nkd))XU%$B@FnoXcHl&I(t5XR$Bb>5{AdBvzi4tKJshHI-?;cu2Ddw|Tb#C4!$&d-os-qWCUE_JPPu8^ybh-_QxTq{>)A&=a>olm*qovY>Q z_XU2ivr?{lRZy>&tGCt8j;rL--R`xg;=?6=guWRNFEw@hByl+J9gm#Xj-g4LB)KY_ z#wU$)>$90VRNbgp{FPSUATi*svEn1S#_JQ=%c$pDtgx5kj8Gqm?DxKnoluX>%d{|G zG-%KQ%vxrE#;c08m6#9K8ht+sDlM#e0#t^Y*HMMD#z5fOo?x+V=~1A$%!(BTF#8&* zm$I1eq*cnOw3-@GnmdE?$02C)@L4H@*&S!ltM8&_c$RaN)%kQEsgH&QSa_%*ck>+TY3^?%G7*1Ha%t zx;`+Me@JO5Q*!e0VA_0N{9PO3k5rpXzMtmk$;K?kM8$cenT!zq?PycJ(v#`Cqv+$5 ztnUOIdHx-B3{K$(DK4#I)U*`r)u>&7Wkw>g4~V+1-Gz1h;+gfSXskJSu|$hC5q^QS z@99WdG;g7cX({~Tzoh4(fQ?UI#xrSGdKQ0^zD@7TU!;daX_H))DJQV>6ou#VARz&4 z&FTq^O2$u}*{n8TB!126NsQ1}*-^u^OjGw@h8u@jZIdzEhZzz@EQ^bCl!tZ!Q{NX; z;}m^7^m4Y4gPp4V$R)vNjQu-W9`0>Su6_+ z?Vu5Vk$Sx<+E10zfUq#S)3s4K_P21Dxx$1loDafH+D*MmIUxw%pvOl4o^!f1dO3fW z3bNw(VtO(wnP-!pHE`T$RM~lg@hZFwMl1K?%>j1L1No64SR@EqKv2;QB<8^4Ng?|@ z-N@R<6?$jPBqXYLOcHXjSN8USeNciILV?4AXd|qKaX{M$+yXll3!#>5d&W&XISxWJ zs~3+4!+IfbL+Y;OnKax(9;qRX6p@oHMSMZia*FKZz=;RQdE7_DeKT;`obK1WaOy9# zKgVIeiTgNO`V0y{)LV|0P0!tupRveCrrwf|ywbB3y+Gc1>}*@d(FDjm=4hC^ zs2um|hxzt6giW7;D?o{^y6AQ1m%OZYUG8?y=TNV4IeY;XjhoBkYTq4qiN{_(i=Yv) zoLg@Zra6Z>3Rh2@FYGM6HGaF~I7=fZ6iF#(Xw!s&Xls9(kjX!-y*MF)qYhqsY$z`x zdwwx*t6hmo>>B?B%!pVVSk2;@X3U~4ObfPea&;O+8D(8pDH#vd7UTc|hpc`+arpFg^H>FHV z;0tRDr)})!UW=r+q6^IdoC91cz`?rwwxD%vTZC9BWo$mihw;6L`7DgT!gmK?Bid9e z@K*ePjLl@syqK|*Sa$)=0dFf~EDEq6^K5_Q!C)KU+ALZ#YjSPX%slQE z1YH4_eRg>uV_Tjyvnwd(A~-jp|I8m8)bvU_58xJ~p>_VQw0CC{kSS*IR>1G#gSAdt zp>*f(O1nA0-yXzm2;i@@TY>^`UGDn(0g7A$+yi8y(T)IQ0i1w5Kt7Z&1QY{G0CNDs Xa?1fL0UH4|fY$)K0EYps0P*`DcrlC; diff --git a/com32/gplinclude/acpi/acpi.h b/com32/gplinclude/acpi/acpi.h index 94589f3..bf3ffdb 100644 --- a/com32/gplinclude/acpi/acpi.h +++ b/com32/gplinclude/acpi/acpi.h @@ -95,4 +95,5 @@ void parse_madt(s_acpi * acpi); int search_rsdp(s_acpi *acpi); void get_acpi_description_header(uint8_t *q, s_acpi_description_header * adh); bool parse_header(uint64_t *address, s_acpi *acpi); +char *flags_to_string(char *buffer, uint16_t flags); #endif diff --git a/com32/gplinclude/cpuid.h b/com32/gplinclude/cpuid.h index 53a0808..6a33e9c 100644 --- a/com32/gplinclude/cpuid.h +++ b/com32/gplinclude/cpuid.h @@ -18,9 +18,11 @@ #include #include +#include #include #include #include +#include #include #define PAGE_SIZE 4096 @@ -28,99 +30,112 @@ #define CPU_MODEL_SIZE 48 #define CPU_VENDOR_SIZE 48 +#define CPU_FLAGS(m_) \ +m_(bool, fpu, /* Onboard FPU */) \ +m_(bool, vme, /* Virtual Mode Extensions */) \ +m_(bool, de, /* Debugging Extensions */) \ +m_(bool, pse, /* Page Size Extensions */) \ +m_(bool, tsc, /* Time Stamp Counter */) \ +m_(bool, msr, /* Model-Specific Registers, RDMSR, WRMSR */) \ +m_(bool, pae, /* Physical Address Extensions */) \ +m_(bool, mce, /* Machine Check Architecture */) \ +m_(bool, cx8, /* CMPXCHG8 instruction */) \ +m_(bool, apic, /* Onboard APIC */) \ +m_(bool, sep, /* SYSENTER/SYSEXIT */) \ +m_(bool, mtrr, /* Memory Type Range Registers */) \ +m_(bool, pge, /* Page Global Enable */) \ +m_(bool, mca, /* Machine Check Architecture */) \ +m_(bool, cmov, /* CMOV instruction (FCMOVCC and FCOMI too if FPU present) */) \ +m_(bool, pat, /* Page Attribute Table */) \ +m_(bool, pse_36, /* 36-bit PSEs */) \ +m_(bool, psn, /* Processor serial number */) \ +m_(bool, clflsh, /* Supports the CLFLUSH instruction */) \ +m_(bool, dts, /* Debug Trace Store */) \ +m_(bool, acpi, /* ACPI via MSR */) \ +m_(bool, pbe, /* Pending Break Enable */) \ +m_(bool, mmx, /* Multimedia Extensions */) \ +m_(bool, fxsr, /* FXSAVE and FXRSTOR instructions (fast save and restore of FPU context), and CR4.OSFXSR available */) \ +m_(bool, sse, /* Streaming SIMD Extensions */) \ +m_(bool, sse2, /* Streaming SIMD Extensions 2 */) \ +m_(bool, ss, /* CPU self snoop */) \ +m_(bool, htt, /* Hyper-Threading */) \ +m_(bool, acc, /* Automatic clock control */) \ +m_(bool, syscall, /* SYSCALL/SYSRET */) \ +m_(bool, mp, /* MP Capable. */) \ +m_(bool, nx, /* Execute Disable */) \ +m_(bool, mmxext, /* AMD MMX extensions */) \ +m_(bool, fxsr_opt, /* FXSAVE/FXRSTOR optimizations */) \ +m_(bool, gbpages, /* "pdpe1gb" GB pages */) \ +m_(bool, rdtscp, /* RDTSCP */) \ +m_(bool, lm, /* Long Mode (x86-64) */) \ +m_(bool, nowext, /* AMD 3DNow! extensions */) \ +m_(bool, now, /* 3DNow! */) \ +m_(bool, smp, /* A smp configuration has been found */) \ +m_(bool, pni, /* Streaming SIMD Extensions-3 */) \ +m_(bool, pclmulqd, /* PCLMULQDQ instruction */) \ +m_(bool, dtes64, /* 64-bit Debug Store */) \ +m_(bool, vmx, /* Hardware virtualization */) \ +m_(bool, smx, /* Safer Mode */) \ +m_(bool, est, /* Enhanced SpeedStep */) \ +m_(bool, tm2, /* Thermal Monitor 2 */) \ +m_(bool, sse3, /* Supplemental SSE-3 */) \ +m_(bool, cid, /* Context ID */) \ +m_(bool, fma, /* Fused multiply-add */) \ +m_(bool, cx16, /* CMPXCHG16B */) \ +m_(bool, xtpr, /* Send Task Priority Messages */) \ +m_(bool, pdcm, /* Performance Capabilities */) \ +m_(bool, dca, /* Direct Cache Access */) \ +m_(bool, xmm4_1, /* "sse4_1" SSE-4.1 */) \ +m_(bool, xmm4_2, /* "sse4_2" SSE-4.2 */) \ +m_(bool, x2apic, /* x2APIC */) \ +m_(bool, movbe, /* MOVBE instruction */) \ +m_(bool, popcnt, /* POPCNT instruction */) \ +m_(bool, aes, /* AES Instruction */) \ +m_(bool, xsave, /* XSAVE/XRSTOR/XSETBV/XGETBV */) \ +m_(bool, osxsave, /* XSAVE enabled in the OS */) \ +m_(bool, avx, /* Advanced Vector Extensions */) \ +m_(bool, hypervisor, /* Running on a hypervisor */) \ +m_(bool, ace2, /* Advanced Cryptography Engine v2 */) \ +m_(bool, ace2_en, /* ACE v2 enabled */) \ +m_(bool, phe, /* PadLock Hash Engine */) \ +m_(bool, phe_en, /* PadLock Hash Engine Enabled */) \ +m_(bool, pmm, /* PadLock Montgomery Multiplier */) \ +m_(bool, pmm_en, /* PadLock Montgomery Multiplier enabled */) \ +m_(bool, svm, /* Secure virtual machine */) \ +m_(bool, extapic, /* Extended APIC space */) \ +m_(bool, cr8_legacy, /* CR8 in 32-bit mode */) \ +m_(bool, abm, /* Advanced bit manipulation */) \ +m_(bool, sse4a, /* SSE4-A */) \ +m_(bool, misalignsse, /* Misaligned SSE mode */) \ +m_(bool, nowprefetch, /* 3DNow prefetch instructions */) \ +m_(bool, osvw, /* OS Visible Workaround */) \ +m_(bool, ibs, /* Instruction Based Sampling */) \ +m_(bool, sse5, /* SSE5 */) \ +m_(bool, skinit, /* SKINIT/STGI instructions */) \ +m_(bool, wdt, /* Watchdog Timer */) \ +m_(bool, ida, /* Intel Dynamic Acceleration */) \ +m_(bool, arat, /* Always Running APIC Timer */) \ +m_(bool, tpr_shadow, /* Intel TPR Shadow */) \ +m_(bool, vnmi, /* Intel Virtual NMI */) \ +m_(bool, flexpriority, /* Intel FlexPriority */) \ +m_(bool, ept, /* Intel Extended Page Table */) \ +m_(bool, vpid, /* Intel Virtual Processor ID */) + +#define STRUCT_MEMBERS(type_, name_, comment_) type_ name_; + +#define STRUCT_MEMBER_NAMES(type_, name_, comment_) #name_ , + +#define STRUCTURE_MEMBER_OFFSETS(type_, name_, comment_) \ + offsetof(s_cpu_flags, name_), + typedef struct { - bool fpu; /* Onboard FPU */ - bool vme; /* Virtual Mode Extensions */ - bool de; /* Debugging Extensions */ - bool pse; /* Page Size Extensions */ - bool tsc; /* Time Stamp Counter */ - bool msr; /* Model-Specific Registers, RDMSR, WRMSR */ - bool pae; /* Physical Address Extensions */ - bool mce; /* Machine Check Architecture */ - bool cx8; /* CMPXCHG8 instruction */ - bool apic; /* Onboard APIC */ - bool sep; /* SYSENTER/SYSEXIT */ - bool mtrr; /* Memory Type Range Registers */ - bool pge; /* Page Global Enable */ - bool mca; /* Machine Check Architecture */ - bool cmov; /* CMOV instruction (FCMOVCC and FCOMI too if FPU present) */ - bool pat; /* Page Attribute Table */ - bool pse_36; /* 36-bit PSEs */ - bool psn; /* Processor serial number */ - bool clflsh; /* Supports the CLFLUSH instruction */ - bool dts; /* Debug Trace Store */ - bool acpi; /* ACPI via MSR */ - bool pbe; /* Pending Break Enable */ - bool mmx; /* Multimedia Extensions */ - bool fxsr; /* FXSAVE and FXRSTOR instructions (fast save and restore */ - /* of FPU context), and CR4.OSFXSR available */ - bool sse; /* Streaming SIMD Extensions */ - bool sse2; /* Streaming SIMD Extensions 2 */ - bool ss; /* CPU self snoop */ - bool htt; /* Hyper-Threading */ - bool acc; /* Automatic clock control */ - bool syscall; /* SYSCALL/SYSRET */ - bool mp; /* MP Capable. */ - bool nx; /* Execute Disable */ - bool mmxext; /* AMD MMX extensions */ - bool fxsr_opt; /* FXSAVE/FXRSTOR optimizations */ - bool gbpages; /* "pdpe1gb" GB pages */ - bool rdtscp; /* RDTSCP */ - bool lm; /* Long Mode (x86-64) */ - bool nowext; /* AMD 3DNow! extensions */ - bool now; /* 3DNow! */ - bool smp; /* A smp configuration has been found */ - bool pni; /* Streaming SIMD Extensions-3 */ - bool pclmulqd; /* PCLMULQDQ instruction */ - bool dtes64; /* 64-bit Debug Store */ - bool vmx; /* Hardware virtualization */ - bool smx; /* Safer Mode */ - bool est; /* Enhanced SpeedStep */ - bool tm2; /* Thermal Monitor 2 */ - bool sse3; /* Supplemental SSE-3 */ - bool cid; /* Context ID */ - bool fma; /* Fused multiply-add */ - bool cx16; /* CMPXCHG16B */ - bool xtpr; /* Send Task Priority Messages */ - bool pdcm; /* Performance Capabilities */ - bool dca; /* Direct Cache Access */ - bool xmm4_1; /* "sse4_1" SSE-4.1 */ - bool xmm4_2; /* "sse4_2" SSE-4.2 */ - bool x2apic; /* x2APIC */ - bool movbe; /* MOVBE instruction */ - bool popcnt; /* POPCNT instruction */ - bool aes; /* AES Instruction */ - bool xsave; /* XSAVE/XRSTOR/XSETBV/XGETBV */ - bool osxsave; /* XSAVE enabled in the OS */ - bool avx; /* Advanced Vector Extensions */ - bool hypervisor; /* Running on a hypervisor */ - bool ace2; /* Advanced Cryptography Engine v2 */ - bool ace2_en; /* ACE v2 enabled */ - bool phe; /* PadLock Hash Engine */ - bool phe_en; /* PadLock Hash Engine Enabled */ - bool pmm; /* PadLock Montgomery Multiplier */ - bool pmm_en; /* PadLock Montgomery Multiplier enabled */ - bool svm; /* Secure virtual machine */ - bool extapic; /* Extended APIC space */ - bool cr8_legacy; /* CR8 in 32-bit mode */ - bool abm; /* Advanced bit manipulation */ - bool sse4a; /* SSE4-A */ - bool misalignsse; /* Misaligned SSE mode */ - bool nowprefetch; /* 3DNow prefetch instructions */ - bool osvw; /* OS Visible Workaround */ - bool ibs; /* Instruction Based Sampling */ - bool sse5; /* SSE5 */ - bool skinit; /* SKINIT/STGI instructions */ - bool wdt; /* Watchdog Timer */ - bool ida; /* Intel Dynamic Acceleration */ - bool arat; /* Always Running APIC Timer */ - bool tpr_shadow; /* Intel TPR Shadow */ - bool vnmi; /* Intel Virtual NMI */ - bool flexpriority; /* Intel FlexPriority */ - bool ept; /* Intel Extended Page Table */ - bool vpid; /* Intel Virtual Processor ID */ + CPU_FLAGS(STRUCT_MEMBERS) } s_cpu_flags; +extern size_t cpu_flags_offset[]; +extern const char *cpu_flags_names[]; +extern size_t cpu_flags_count; + typedef struct { char vendor[CPU_VENDOR_SIZE]; uint8_t vendor_id; @@ -135,6 +150,7 @@ typedef struct { s_cpu_flags flags; } s_cpu; +extern bool get_cpu_flag_value_from_name(s_cpu *cpu, const char * flag); /**********************************************************************************/ /**********************************************************************************/ /* From this point this is some internal stuff mainly taken from the linux kernel */ @@ -171,11 +187,37 @@ typedef struct { #define X86_VENDOR_RISE 6 #define X86_VENDOR_TRANSMETA 7 #define X86_VENDOR_NSC 8 -#define X86_VENDOR_NUM 9 -#define X86_VENDOR_UNKNOWN 0xff +#define X86_VENDOR_UNKNOWN 9 +#define X86_VENDOR_NUM 10 #define cpu_has(c, bit) test_bit(bit, (c)->x86_capability) +// Taken from asm/processor-flags.h +// NSC/Cyrix CPU configuration register indexes +#define CX86_CCR2 0xc2 +#define CX86_CCR3 0xc3 +#define CX86_DIR0 0xfe +#define CX86_DIR1 0xff + +static const char Cx86_model[][9] = { + "Cx486", "Cx486", "5x86 ", "6x86", "MediaGX ", "6x86MX ", + "M II ", "Unknown" +}; + +static const char Cx486_name[][5] = { + "SLC", "DLC", "SLC2", "DLC2", "SRx", "DRx", + "SRx2", "DRx2" +}; + +static const char Cx486S_name[][4] = { + "S", "S2", "Se", "S2e" +}; + +static const char Cx486D_name[][4] = { + "DX", "DX2", "?", "?", "?", "DX4" +}; + + /* * CPU type and hardware bug flags. Kept separately for each CPU. * Members of this structure are referenced in head.S, so think twice @@ -260,6 +302,16 @@ struct intel_mp_floating { uint8_t mpf_feature5; /* Unused (0) */ }; +static inline uint8_t getCx86(uint8_t reg) { + outb(reg, 0x22); + return inb(0x23); +} + +static inline void setCx86(uint8_t reg, uint8_t data) { + outb(reg, 0x22); + outb(data, 0x23); +} + extern void get_cpu_vendor(struct cpuinfo_x86 *c); extern void detect_cpu(s_cpu * cpu); #endif diff --git a/com32/gplinclude/zzjson/zzjson.h b/com32/gplinclude/zzjson/zzjson.h new file mode 100644 index 0000000..d4b32e1 --- /dev/null +++ b/com32/gplinclude/zzjson/zzjson.h @@ -0,0 +1,116 @@ +/* ZZJSON - Copyright (C) 2008 by Ivo van Poorten + * License: GNU Lesser General Public License version 2.1 + */ +#ifndef ZZJSON_H +#define ZZJSON_H + +#include + +/* Version: */ + +#define ZZJSON_VERSION_MAJOR 1 +#define ZZJSON_VERSION_MINOR 1 +#define ZZJSON_VERSION_MICRO 0 +#define ZZJSON_VERSION_INT ( 1<<16 | 1<<8 | 0 ) +#define ZZJSON_IDENT "zzjson 1.1.0" + +/* Defines: */ + +#define ZZJSON_ALLOW_EXTRA_COMMA 1 +#define ZZJSON_ALLOW_ILLEGAL_ESCAPE 2 +#define ZZJSON_ALLOW_CONTROL_CHARS 4 +#define ZZJSON_ALLOW_GARBAGE_AT_END 8 +#define ZZJSON_ALLOW_COMMENTS 16 + +#define ZZJSON_VERY_LOOSE (-1) +#define ZZJSON_VERY_STRICT 0 + +/* Types: */ + +/* needed by: pa = parser, pr = printer, f = free, q = query, c = create */ +typedef struct ZZJSON_CONFIG { + int strictness; // pa + void *ihandle; // pa + int (*getchar)(void *ihandle); // pa + int (*ungetchar)(int c, void *ihandle); // pa + void *(*malloc)(size_t size); // pa c + void *(*calloc)(size_t nmemb, size_t size); // pa c + void (*free)(void *ptr); // pa f c + void *(*realloc)(void *ptr, size_t size); // pa + void *ehandle; // pa pr c + void (*error)(void *ehandle, const char *format, ...); // pa pr c + void *ohandle; // pr + int (*print)(void *ohandle, const char *format, ...); // pr + int (*putchar)(int c, void *handle); // pr +} ZZJSON_CONFIG; + +typedef enum ZZJSON_TYPE { + ZZJSON_NONE = 0, + ZZJSON_OBJECT, + ZZJSON_ARRAY, + ZZJSON_STRING, + ZZJSON_NUMBER_NEGINT, + ZZJSON_NUMBER_POSINT, + ZZJSON_NUMBER_DOUBLE, + ZZJSON_NULL, + ZZJSON_TRUE, + ZZJSON_FALSE +} ZZJSON_TYPE; + +typedef struct ZZJSON { + ZZJSON_TYPE type; + union { + struct { + char *label; + struct ZZJSON *val; + } object; + struct { + struct ZZJSON *val; + } array; + struct { + char *string; + } string; + struct { + union { + unsigned long long ival; + double dval; + } val; + } number; + } value; + struct ZZJSON *next; +} ZZJSON; + +/* Functions: */ + +ZZJSON *zzjson_parse(ZZJSON_CONFIG *config); +void zzjson_free(ZZJSON_CONFIG *config, ZZJSON *zzjson); +int zzjson_print(ZZJSON_CONFIG *config, ZZJSON *zzjson); + +ZZJSON *zzjson_object_find_label(ZZJSON *zzjson, char *label); +ZZJSON *zzjson_object_find_labels(ZZJSON *zzjson, ...); // end with , NULL +unsigned int zzjson_object_count(ZZJSON *zzjson); +unsigned int zzjson_array_count(ZZJSON *zzjson); + +ZZJSON *zzjson_create_true(ZZJSON_CONFIG *config); +ZZJSON *zzjson_create_false(ZZJSON_CONFIG *config); +ZZJSON *zzjson_create_null(ZZJSON_CONFIG *config); +ZZJSON *zzjson_create_number_d(ZZJSON_CONFIG *config, double d); +ZZJSON *zzjson_create_number_i(ZZJSON_CONFIG *config, long long i); +ZZJSON *zzjson_create_string(ZZJSON_CONFIG *config, char *s); + +/* list of ZZJSON *'s and end with , NULL */ +ZZJSON *zzjson_create_array(ZZJSON_CONFIG *config, ...); + +/* list of char*,ZZJSON* pairs, end with , NULL */ +ZZJSON *zzjson_create_object(ZZJSON_CONFIG *config, ...); + +ZZJSON *zzjson_array_prepend(ZZJSON_CONFIG *config, ZZJSON *array, + ZZJSON *val); +ZZJSON *zzjson_array_append (ZZJSON_CONFIG *config, ZZJSON *array, + ZZJSON *val); + +ZZJSON *zzjson_object_prepend(ZZJSON_CONFIG *config, ZZJSON *object, + char *label, ZZJSON *val); +ZZJSON *zzjson_object_append (ZZJSON_CONFIG *config, ZZJSON *object, + char *label, ZZJSON *val); +#endif diff --git a/com32/gpllib/Makefile b/com32/gpllib/Makefile index a174061..4b7b846 100644 --- a/com32/gpllib/Makefile +++ b/com32/gpllib/Makefile @@ -4,11 +4,12 @@ # Include configuration rules topdir = ../.. -include ../lib/MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/lib.mk -REQFLAGS += -I../gplinclude +REQFLAGS += -I../gplinclude -I../gplinclude/zzjson -GPLDIRS := . disk dmi vpd acpi +GPLDIRS := . disk dmi vpd acpi zzjson LIBOBJS := $(foreach dir,$(GPLDIRS),$(patsubst %.c,%.o,$(wildcard $(dir)/*.c))) BINDIR = /usr/bin diff --git a/com32/gpllib/acpi/acpi.c b/com32/gpllib/acpi/acpi.c index 8e5ee29..d2bf29e 100644 --- a/com32/gpllib/acpi/acpi.c +++ b/com32/gpllib/acpi/acpi.c @@ -32,6 +32,25 @@ #include #include "acpi/acpi.h" +/* M1PS flags have to be interpreted as strings */ +char *flags_to_string(char *buffer, uint16_t flags) +{ + memset(buffer, 0, sizeof(buffer)); + strcpy(buffer, "default"); + if ((flags & POLARITY_ACTIVE_HIGH) == POLARITY_ACTIVE_HIGH) + strcpy(buffer, "high"); + else if ((flags & POLARITY_ACTIVE_LOW) == POLARITY_ACTIVE_LOW) + strcpy(buffer, "low"); + if ((flags & TRIGGER_EDGE) == TRIGGER_EDGE) + strncat(buffer, " edge", 5); + else if ((flags & TRIGGER_LEVEL) == TRIGGER_LEVEL) + strncat(buffer, " level", 6); + else + strncat(buffer, " default", 8); + + return buffer; +} + void dbg_printf(const char *fmt, ...) { va_list args; diff --git a/com32/gpllib/cpuid.c b/com32/gpllib/cpuid.c index 2d5b5ce..2abd0bd 100644 --- a/com32/gpllib/cpuid.c +++ b/com32/gpllib/cpuid.c @@ -20,8 +20,31 @@ #include #include "cpuid.h" +const char *cpu_flags_names[] = { + CPU_FLAGS(STRUCT_MEMBER_NAMES) +}; + +size_t cpu_flags_offset[] = { + CPU_FLAGS(STRUCTURE_MEMBER_OFFSETS) +}; + +size_t cpu_flags_count = sizeof cpu_flags_names / sizeof *cpu_flags_names; + struct cpu_dev *cpu_devs[X86_VENDOR_NUM] = { }; +bool get_cpu_flag_value_from_name(s_cpu *cpu, const char * flag_name) { + size_t i; + bool cpu_flag_present=false, *flag_value = &cpu_flag_present; + + for (i = 0; i < cpu_flags_count; i++) { + if (strcmp(cpu_flags_names[i],flag_name) == 0) { + flag_value = (bool *)((char *)&cpu->flags + cpu_flags_offset[i]); + } + } + return *flag_value; +} + + /* * CPUID functions returning a single datum */ @@ -73,6 +96,48 @@ static struct cpu_dev transmeta_cpu_dev = { .c_ident = {"GenuineTMx86", "TransmetaCPU"} }; +static struct cpu_dev nsc_cpu_dev = { + .c_vendor = "National Semiconductor", + .c_ident = {"Geode by NSC"} +}; + +static struct cpu_dev unknown_cpu_dev = { + .c_vendor = "Unknown Vendor", + .c_ident = {"Unknown CPU"} +}; + +/* + * Read NSC/Cyrix DEVID registers (DIR) to get more detailed info. about the CPU + */ +void do_cyrix_devid(unsigned char *dir0, unsigned char *dir1) +{ + unsigned char ccr2, ccr3; + + /* we test for DEVID by checking whether CCR3 is writable */ + ccr3 = getCx86(CX86_CCR3); + setCx86(CX86_CCR3, ccr3 ^ 0x80); + getCx86(0xc0); /* dummy to change bus */ + + if (getCx86(CX86_CCR3) == ccr3) { /* no DEVID regs. */ + ccr2 = getCx86(CX86_CCR2); + setCx86(CX86_CCR2, ccr2 ^ 0x04); + getCx86(0xc0); /* dummy */ + + if (getCx86(CX86_CCR2) == ccr2) /* old Cx486SLC/DLC */ + *dir0 = 0xfd; + else { /* Cx486S A step */ + setCx86(CX86_CCR2, ccr2); + *dir0 = 0xfe; + } + } else { + setCx86(CX86_CCR3, ccr3); /* restore CCR3 */ + + /* read DIR0 and DIR1 CPU registers */ + *dir0 = getCx86(CX86_DIR0); + *dir1 = getCx86(CX86_DIR1); + } +} + void init_cpu_devs(void) { cpu_devs[X86_VENDOR_INTEL] = &intel_cpu_dev; @@ -83,6 +148,8 @@ void init_cpu_devs(void) cpu_devs[X86_VENDOR_CENTAUR] = ¢aur_cpu_dev; cpu_devs[X86_VENDOR_RISE] = &rise_cpu_dev; cpu_devs[X86_VENDOR_TRANSMETA] = &transmeta_cpu_dev; + cpu_devs[X86_VENDOR_NSC] = &nsc_cpu_dev; + cpu_devs[X86_VENDOR_UNKNOWN] = &unknown_cpu_dev; } void get_cpu_vendor(struct cpuinfo_x86 *c) @@ -90,7 +157,7 @@ void get_cpu_vendor(struct cpuinfo_x86 *c) char *v = c->x86_vendor_id; int i; init_cpu_devs(); - for (i = 0; i < X86_VENDOR_NUM; i++) { + for (i = 0; i < X86_VENDOR_NUM-1; i++) { if (cpu_devs[i]) { if (!strcmp(v, cpu_devs[i]->c_ident[0]) || (cpu_devs[i]->c_ident[1] && @@ -177,6 +244,96 @@ void detect_cache(uint32_t xlvl, struct cpuinfo_x86 *c) c->x86_l2_cache_size = l2size; } +void detect_cyrix(struct cpuinfo_x86 *c) { + unsigned char dir0, dir0_msn, dir0_lsn, dir1 = 0; + char *buf = c->x86_model_id; + char Cx86_cb[] = "?.5x Core/Bus Clock"; + const char cyrix_model_mult1[] = "12??43"; + const char cyrix_model_mult2[] = "12233445"; + const char *p = NULL; + + do_cyrix_devid(&dir0, &dir1); + dir0_msn = dir0 >> 4; /* identifies CPU "family" */ + dir0_lsn = dir0 & 0xf; /* model or clock multiplier */ + c->x86_model = (dir1 >> 4) + 1; + c->x86_mask = dir1 & 0xf; + switch (dir0_msn) { + unsigned char tmp; + + case 0: /* Cx486SLC/DLC/SRx/DRx */ + p = Cx486_name[dir0_lsn & 7]; + break; + + case 1: /* Cx486S/DX/DX2/DX4 */ + p = (dir0_lsn & 8) ? Cx486D_name[dir0_lsn & 5] : Cx486S_name[dir0_lsn & 3]; + break; + + case 2: /* 5x86 */ + Cx86_cb[2] = cyrix_model_mult1[dir0_lsn & 5]; + p = Cx86_cb+2; + break; + + case 3: /* 6x86/6x86L */ + Cx86_cb[1] = ' '; + Cx86_cb[2] = cyrix_model_mult1[dir0_lsn & 5]; + if (dir1 > 0x21) { /* 686L */ + Cx86_cb[0] = 'L'; + p = Cx86_cb; + (c->x86_model)++; + } else /* 686 */ + p = Cx86_cb+1; + + c->coma_bug = 1; + break; + case 4: + c->x86_l1_data_cache_size = 16; /* Yep 16K integrated cache thats it */ + if (c->cpuid_level != 2) { /* Media GX */ + Cx86_cb[2] = (dir0_lsn & 1) ? '3' : '4'; + p = Cx86_cb+2; + } + break; + + case 5: /* 6x86MX/M II */ + if (dir1 > 7) { + dir0_msn++; /* M II */ + } else { + c->coma_bug = 1; /* 6x86MX, it has the bug. */ + } + + tmp = (!(dir0_lsn & 7) || dir0_lsn & 1) ? 2 : 0; + Cx86_cb[tmp] = cyrix_model_mult2[dir0_lsn & 7]; + p = Cx86_cb+tmp; + if (((dir1 & 0x0f) > 4) || ((dir1 & 0xf0) == 0x20)) + (c->x86_model)++; + break; + + case 0xf: /* Cyrix 486 without DEVID registers */ + switch (dir0_lsn) { + case 0xd: /* either a 486SLC or DLC w/o DEVID */ + dir0_msn = 0; + p = Cx486_name[(c->hard_math) ? 1 : 0]; + break; + + case 0xe: /* a 486S A step */ + dir0_msn = 0; + p = Cx486S_name[0]; + break; + } + break; + + default: + dir0_msn = 7; + break; + } + + /* If the processor is unknown, we keep the model name we got + * from the generic call */ + if (dir0_msn < 7) { + strcpy(buf, Cx86_model[dir0_msn & 7]); + if (p) strcat(buf, p); + } +} + void generic_identify(struct cpuinfo_x86 *c) { uint32_t tfms, xlvl; @@ -222,6 +379,13 @@ void generic_identify(struct cpuinfo_x86 *c) get_model_name(c); /* Default name */ } + /* Specific detection code */ + switch (c->x86_vendor) { + case X86_VENDOR_CYRIX: + case X86_VENDOR_NSC: detect_cyrix(c); break; + default: break; + } + /* Detecting the number of cores */ switch (c->x86_vendor) { case X86_VENDOR_AMD: @@ -435,17 +599,12 @@ void set_generic_info(struct cpuinfo_x86 *c, s_cpu * cpu) void detect_cpu(s_cpu * cpu) { struct cpuinfo_x86 c; + memset(&c,0,sizeof(c)); c.x86_clflush_size = 32; - c.x86_l1_data_cache_size = 0; - c.x86_l1_instruction_cache_size = 0; - c.x86_l2_cache_size = 0; c.x86_vendor = X86_VENDOR_UNKNOWN; c.cpuid_level = -1; /* CPUID not detected */ - c.x86_model = c.x86_mask = 0; /* So far unknown... */ c.x86_num_cores = 1; - memset(&c.x86_capability, 0, sizeof(c.x86_capability)); - memset(&c.x86_vendor_id, 0, sizeof(c.x86_vendor_id)); - memset(&c.x86_model_id, 0, sizeof(c.x86_model_id)); + memset(&cpu->flags, 0, sizeof(s_cpu_flags)); if (!have_cpuid_p()) return; diff --git a/com32/gpllib/zzjson/zzjson_create.c b/com32/gpllib/zzjson/zzjson_create.c new file mode 100644 index 0000000..7e6bd5b --- /dev/null +++ b/com32/gpllib/zzjson/zzjson_create.c @@ -0,0 +1,240 @@ +/* JSON Create ZZJSON structures + * ZZJSON - Copyright (C) 2008 by Ivo van Poorten + * License: GNU Lesser General Public License version 2.1 + */ + +#include "zzjson.h" +#include +#include +#include + +#ifdef CONFIG_NO_ERROR_MESSAGES +#define ERROR(x...) +#else +#define ERROR(x...) config->error(config->ehandle, ##x) +#endif +#define MEMERROR() ERROR("out of memory") + +static ZZJSON *zzjson_create_templ(ZZJSON_CONFIG *config, ZZJSON_TYPE type) { + ZZJSON *zzjson = config->calloc(1, sizeof(ZZJSON)); + if (!zzjson) MEMERROR(); + else zzjson->type = type; + return zzjson; +} + +ZZJSON *zzjson_create_true(ZZJSON_CONFIG *config) { + return zzjson_create_templ(config, ZZJSON_TRUE); +} + +ZZJSON *zzjson_create_false(ZZJSON_CONFIG *config) { + return zzjson_create_templ(config, ZZJSON_FALSE); +} + +ZZJSON *zzjson_create_null(ZZJSON_CONFIG *config) { + return zzjson_create_templ(config, ZZJSON_NULL); +} + +ZZJSON *zzjson_create_number_d(ZZJSON_CONFIG *config, double d) { + ZZJSON *zzjson = zzjson_create_templ(config, ZZJSON_NUMBER_DOUBLE); + if (zzjson) + zzjson->value.number.val.dval = d; + return zzjson; +} + +ZZJSON *zzjson_create_number_i(ZZJSON_CONFIG *config, long long i) { + ZZJSON *zzjson = zzjson_create_templ(config, ZZJSON_NUMBER_NEGINT); + if (zzjson) { + zzjson->type = i<0LL ? ZZJSON_NUMBER_NEGINT : ZZJSON_NUMBER_POSINT; + zzjson->value.number.val.ival = llabs(i); + } + return zzjson; +} + +/* sdup mimics strdup, but avoids having another function pointer in config */ +static char *sdup(ZZJSON_CONFIG *config, char *s) { + size_t slen = strlen(s)+1; + char *scopy = config->malloc(slen); + + if (!scopy) MEMERROR(); + else memcpy(scopy, s, slen); + return scopy; +} + +ZZJSON *zzjson_create_string(ZZJSON_CONFIG *config, char *s) { + ZZJSON *zzjson = NULL; + char *scopy; + + if (!(scopy = sdup(config,s))) return zzjson; + + if ((zzjson = zzjson_create_templ(config, ZZJSON_STRING))) + zzjson->value.string.string = scopy; + else + config->free(scopy); + + return zzjson; +} + +ZZJSON *zzjson_create_array(ZZJSON_CONFIG *config, ...) { + ZZJSON *zzjson, *retval, *val; + va_list ap; + + if (!(zzjson = zzjson_create_templ(config, ZZJSON_ARRAY))) return zzjson; + retval = zzjson; + + va_start(ap, config); + val = va_arg(ap, ZZJSON *); + while (val) { + zzjson->value.array.val = val; + val = va_arg(ap, ZZJSON *); + + if (val) { + ZZJSON *next = zzjson_create_templ(config, ZZJSON_ARRAY); + if (!next) { + while (retval) { + next = retval->next; + config->free(retval); + retval = next; + } + break; + } + zzjson->next = next; + zzjson = next; + } + } + va_end(ap); + return retval; +} + +ZZJSON *zzjson_create_object(ZZJSON_CONFIG *config, ...) { + ZZJSON *zzjson, *retval, *val; + char *label, *labelcopy; + va_list ap; + + if (!(zzjson = zzjson_create_templ(config, ZZJSON_OBJECT))) return zzjson; + retval = zzjson; + + va_start(ap, config); + label = va_arg(ap, char *); + while (label) { + val = va_arg(ap, ZZJSON *); + labelcopy = sdup(config, label); + + if (!labelcopy) { + zzjson_free(config, retval); + retval = NULL; + break; + } + + zzjson->value.object.label = labelcopy; + zzjson->value.object.val = val; + + label = va_arg(ap, char *); + + if (label) { + ZZJSON *next = zzjson_create_templ(config, ZZJSON_OBJECT); + if (!next) { + while (retval) { + next = retval->next; + config->free(retval->value.object.label); + config->free(retval); + retval = next; + } + break; + } + zzjson->next = next; + zzjson = next; + } + } + va_end(ap); + return retval; +} + +ZZJSON *zzjson_array_prepend(ZZJSON_CONFIG *config, ZZJSON *array, + ZZJSON *val) { + ZZJSON *zzjson; + + if (!array->value.array.val) { /* empty array */ + array->value.array.val = val; + return array; + } + + zzjson = zzjson_create_templ(config, ZZJSON_ARRAY); + if (zzjson) { + zzjson->value.array.val = val; + zzjson->next = array; + } + return zzjson; +} + +ZZJSON *zzjson_array_append(ZZJSON_CONFIG *config, ZZJSON *array, + ZZJSON *val) { + ZZJSON *retval = array, *zzjson; + + if (!array->value.array.val) { /* empty array */ + array->value.array.val = val; + return array; + } + + zzjson = zzjson_create_templ(config, ZZJSON_ARRAY); + if (!zzjson) return NULL; + + while (array->next) array = array->next; + + zzjson->value.array.val = val; + array->next = zzjson; + + return retval; +} + +ZZJSON *zzjson_object_prepend(ZZJSON_CONFIG *config, ZZJSON *object, + char *label, ZZJSON *val) { + ZZJSON *zzjson = NULL; + char *labelcopy = sdup(config, label); + + if (!labelcopy) return zzjson; + + if (!object->value.object.label) { /* empty object */ + object->value.object.label = labelcopy; + object->value.object.val = val; + return object; + } + + zzjson = zzjson_create_templ(config, ZZJSON_OBJECT); + if (zzjson) { + zzjson->value.object.label = labelcopy; + zzjson->value.object.val = val; + zzjson->next = object; + } else { + config->free(labelcopy); + } + return zzjson; +} + +ZZJSON *zzjson_object_append(ZZJSON_CONFIG *config, ZZJSON *object, + char *label, ZZJSON *val) { + ZZJSON *retval = object, *zzjson = NULL; + char *labelcopy = sdup(config, label); + + if (!labelcopy) return zzjson; + + if (!object->value.object.label) { /* empty object */ + object->value.object.label = labelcopy; + object->value.object.val = val; + return object; + } + + zzjson = zzjson_create_templ(config, ZZJSON_OBJECT); + if (!zzjson) { + config->free(labelcopy); + return NULL; + } + + while (object->next) object = object->next; + + zzjson->value.object.label = labelcopy; + zzjson->value.object.val = val; + object->next = zzjson; + + return retval; +} + diff --git a/com32/gpllib/zzjson/zzjson_free.c b/com32/gpllib/zzjson/zzjson_free.c new file mode 100644 index 0000000..01dfd24 --- /dev/null +++ b/com32/gpllib/zzjson/zzjson_free.c @@ -0,0 +1,29 @@ +/* JSON free + * ZZJSON - Copyright (C) 2008 by Ivo van Poorten + * License: GNU Lesser General Public License version 2.1 + */ + +#include "zzjson.h" + +void zzjson_free(ZZJSON_CONFIG *config, ZZJSON *zzjson) { + while (zzjson) { + ZZJSON *next; + switch(zzjson->type) { + case ZZJSON_OBJECT: + config->free(zzjson->value.object.label); + zzjson_free(config, zzjson->value.object.val); + break; + case ZZJSON_ARRAY: + zzjson_free(config, zzjson->value.array.val); + break; + case ZZJSON_STRING: + config->free(zzjson->value.string.string); + break; + default: + break; + } + next = zzjson->next; + config->free(zzjson); + zzjson = next; + } +} diff --git a/com32/gpllib/zzjson/zzjson_parse.c b/com32/gpllib/zzjson/zzjson_parse.c new file mode 100644 index 0000000..ecb6f61 --- /dev/null +++ b/com32/gpllib/zzjson/zzjson_parse.c @@ -0,0 +1,490 @@ +/* JSON Parser + * ZZJSON - Copyright (C) 2008-2009 by Ivo van Poorten + * License: GNU Lesser General Public License version 2.1 + */ + +#include "zzjson.h" +#include +#include +#include +#include + +#define GETC() config->getchar(config->ihandle) +#define UNGETC(c) config->ungetchar(c, config->ihandle) +#define SKIPWS() skipws(config) +#ifdef CONFIG_NO_ERROR_MESSAGES +#define ERROR(x...) +#else +#define ERROR(x...) config->error(config->ehandle, ##x) +#endif +#define MEMERROR() ERROR("out of memory") + +#define ALLOW_EXTRA_COMMA (config->strictness & ZZJSON_ALLOW_EXTRA_COMMA) +#define ALLOW_ILLEGAL_ESCAPE (config->strictness & ZZJSON_ALLOW_ILLEGAL_ESCAPE) +#define ALLOW_CONTROL_CHARS (config->strictness & ZZJSON_ALLOW_CONTROL_CHARS) +#define ALLOW_GARBAGE_AT_END (config->strictness & ZZJSON_ALLOW_GARBAGE_AT_END) +#define ALLOW_COMMENTS (config->strictness & ZZJSON_ALLOW_COMMENTS) + +static ZZJSON *parse_array(ZZJSON_CONFIG *config); +static ZZJSON *parse_object(ZZJSON_CONFIG *config); + +static void skipws(ZZJSON_CONFIG *config) { + int d, c = GETC(); +morews: + while (isspace(c)) c = GETC(); + if (!ALLOW_COMMENTS) goto endws; + if (c != '/') goto endws; + d = GETC(); + if (d != '*') goto endws; /* pushing back c will generate a parse error */ + c = GETC(); +morecomments: + while (c != '*') { + if (c == EOF) goto endws; + c = GETC(); + } + c = GETC(); + if (c != '/') goto morecomments; + c = GETC(); + if (isspace(c) || c == '/') goto morews; +endws: + UNGETC(c); +} + +static char *parse_string(ZZJSON_CONFIG *config) { + unsigned int len = 16, pos = 0; + int c; + char *str = NULL; + + SKIPWS(); + c = GETC(); + if (c != '"') { + ERROR("string: expected \" at the start"); + return NULL; + } + + str = config->malloc(len); + if (!str) { + MEMERROR(); + return NULL; + } + c = GETC(); + while (c > 0 && c != '"') { + if (!ALLOW_CONTROL_CHARS && c >= 0 && c <= 31) { + ERROR("string: control characters not allowed"); + goto errout; + } + if (c == '\\') { + c = GETC(); + switch (c) { + case 'b': c = '\b'; break; + case 'f': c = '\f'; break; + case 'n': c = '\n'; break; + case 'r': c = '\r'; break; + case 't': c = '\t'; break; + case 'u': { + UNGETC(c); /* ignore \uHHHH, copy verbatim */ + c = '\\'; + break; + } + case '\\': case '/': case '"': + break; + default: + if (!ALLOW_ILLEGAL_ESCAPE) { + ERROR("string: illegal escape character"); + goto errout; + } + } + } + str[pos++] = c; + if (pos == len-1) { + void *tmp = str; + len *= 2; + str = config->realloc(str, len); + if (!str) { + MEMERROR(); + str = tmp; + goto errout; + } + } + c = GETC(); + } + if (c != '"') { + ERROR("string: expected \" at the end"); + goto errout; + } + str[pos] = 0; + return str; + +errout: + config->free(str); + return NULL; +} + +static ZZJSON *parse_string2(ZZJSON_CONFIG *config) { + ZZJSON *zzjson = NULL; + char *str; + + str = parse_string(config); + if (str) { + zzjson = config->calloc(1, sizeof(ZZJSON)); + if (!zzjson) { + MEMERROR(); + config->free(str); + return NULL; + } + zzjson->type = ZZJSON_STRING; + zzjson->value.string.string = str; + } + return zzjson; +} + +static ZZJSON *parse_number(ZZJSON_CONFIG *config) { + ZZJSON *zzjson; + unsigned long long ival = 0, expo = 0; + double dval = 0.0, frac = 0.0, fracshft = 10.0; + int c, dbl = 0, sign = 1, signexpo = 1; + + SKIPWS(); + c = GETC(); + if (c == '-') { + sign = -1; + c = GETC(); + } + if (c == '0') { + c = GETC(); + goto skip; + } + + if (!isdigit(c)) { + ERROR("number: digit expected"); + return NULL; + } + + while (isdigit(c)) { + ival *= 10; + ival += c - '0'; + c = GETC(); + } + +skip: + if (c != '.') goto skipfrac; + + dbl = 1; + + c = GETC(); + if (!isdigit(c)) { + ERROR("number: digit expected"); + return NULL; + } + + while (isdigit(c)) { + frac += (double)(c - '0') / fracshft; + fracshft *= 10.0; + c = GETC(); + } + +skipfrac: + if (c != 'e' && c != 'E') goto skipexpo; + + dbl = 1; + + c = GETC(); + if (c == '+') + c = GETC(); + else if (c == '-') { + signexpo = -1; + c = GETC(); + } + + if (!isdigit(c)) { + ERROR("number: digit expected"); + return NULL; + } + + while (isdigit(c)) { + expo *= 10; + expo += c - '0'; + c = GETC(); + } + +skipexpo: + UNGETC(c); + + if (dbl) { + dval = sign * (long long) ival; + dval += sign * frac; + dval *= pow(10.0, (double) signexpo * expo); + } + + zzjson = config->calloc(1, sizeof(ZZJSON)); + if (!zzjson) { + MEMERROR(); + return NULL; + } + if (dbl) { + zzjson->type = ZZJSON_NUMBER_DOUBLE; + zzjson->value.number.val.dval = dval; + } else { + zzjson->type = sign < 0 ? ZZJSON_NUMBER_NEGINT : ZZJSON_NUMBER_POSINT; + zzjson->value.number.val.ival = ival; + } + + return zzjson; +} + +static ZZJSON *parse_literal(ZZJSON_CONFIG *config, char *s, ZZJSON_TYPE t) { + char b[strlen(s)+1]; + unsigned int i; + + for (i=0; icalloc(1, sizeof(ZZJSON)); + if (!zzjson) { + MEMERROR(); + return NULL; + } + zzjson->type = t; + return zzjson; + } + ERROR("literal: expected %s", s); + return NULL; +} + +static ZZJSON *parse_true(ZZJSON_CONFIG *config) { + return parse_literal(config, (char *)"true", ZZJSON_TRUE); +} + +static ZZJSON *parse_false(ZZJSON_CONFIG *config) { + return parse_literal(config, (char *)"false", ZZJSON_FALSE); +} + +static ZZJSON *parse_null(ZZJSON_CONFIG *config) { + return parse_literal(config, (char *)"null", ZZJSON_NULL); +} + +static ZZJSON *parse_value(ZZJSON_CONFIG *config) { + ZZJSON *retval = NULL; + int c; + + SKIPWS(); + c = GETC(); + UNGETC(c); + switch (c) { + case '"': retval = parse_string2(config); break; + case '0': case '1': case '2': case '3': case '4': case '5': + case '6': case '7': case '8': case '9': case '-': + retval = parse_number(config); break; + case '{': retval = parse_object(config); break; + case '[': retval = parse_array(config); break; + case 't': retval = parse_true(config); break; + case 'f': retval = parse_false(config); break; + case 'n': retval = parse_null(config); break; + } + + if (!retval) { + ERROR("value: invalid value"); + return retval; + } + + return retval; +} + +static ZZJSON *parse_array(ZZJSON_CONFIG *config) { + ZZJSON *retval = NULL, **next = &retval; + int c; + + SKIPWS(); + c = GETC(); + if (c != '[') { + ERROR("array: expected '['"); + return NULL; + } + + SKIPWS(); + c = GETC(); + while (c > 0 && c != ']') { + ZZJSON *zzjson = NULL, *val = NULL; + + UNGETC(c); + + SKIPWS(); + val = parse_value(config); + if (!val) { + ERROR("array: value expected"); + goto errout; + } + + SKIPWS(); + c = GETC(); + if (c != ',' && c != ']') { + ERROR("array: expected ',' or ']'"); +errout_with_val: + zzjson_free(config, val); + goto errout; + } + if (c == ',') { + SKIPWS(); + c = GETC(); + if (c == ']' && !ALLOW_EXTRA_COMMA) { + ERROR("array: expected value after ','"); + goto errout_with_val; + } + } + UNGETC(c); + + zzjson = config->calloc(1, sizeof(ZZJSON)); + if (!zzjson) { + MEMERROR(); + zzjson_free(config, val); + goto errout_with_val; + } + zzjson->type = ZZJSON_ARRAY; + zzjson->value.array.val = val; + *next = zzjson; + next = &zzjson->next; + + c = GETC(); + } + + if (c != ']') { + ERROR("array: expected ']'"); + goto errout; + } + + if (!retval) { /* empty array, [ ] */ + retval = config->calloc(1, sizeof(ZZJSON)); + if (!retval) { + MEMERROR(); + return NULL; + } + retval->type = ZZJSON_ARRAY; + } + + return retval; + +errout: + zzjson_free(config, retval); + return NULL; +} + +static ZZJSON *parse_object(ZZJSON_CONFIG *config) { + ZZJSON *retval = NULL; + int c; + ZZJSON **next = &retval; + + SKIPWS(); + c = GETC(); + if (c != '{') { + ERROR("object: expected '{'"); + return NULL; + } + + SKIPWS(); + c = GETC(); + while (c > 0 && c != '}') { + ZZJSON *zzjson = NULL, *val = NULL; + char *str; + + UNGETC(c); + + str = parse_string(config); + if (!str) { + ERROR("object: expected string"); +errout_with_str: + config->free(str); + goto errout; + } + + SKIPWS(); + c = GETC(); + if (c != ':') { + ERROR("object: expected ':'"); + goto errout_with_str; + } + + SKIPWS(); + val = parse_value(config); + if (!val) { + ERROR("object: value expected"); + goto errout_with_str; + } + + SKIPWS(); + c = GETC(); + if (c != ',' && c != '}') { + ERROR("object: expected ',' or '}'"); +errout_with_str_and_val: + zzjson_free(config, val); + goto errout_with_str; + } + if (c == ',') { + SKIPWS(); + c = GETC(); + if (c == '}' && !ALLOW_EXTRA_COMMA) { + ERROR("object: expected pair after ','"); + goto errout_with_str_and_val; + } + } + UNGETC(c); + + zzjson = config->calloc(1, sizeof(ZZJSON)); + if (!zzjson) { + MEMERROR(); + goto errout_with_str_and_val; + } + zzjson->type = ZZJSON_OBJECT; + zzjson->value.object.label = str; + zzjson->value.object.val = val; + *next = zzjson; + next = &zzjson->next; + + c = GETC(); + } + + if (c != '}') { + ERROR("object: expected '}'"); + goto errout; + } + + if (!retval) { /* empty object, { } */ + retval = config->calloc(1, sizeof(ZZJSON)); + if (!retval) { + MEMERROR(); + return NULL; + } + retval->type = ZZJSON_OBJECT; + } + + return retval; + +errout: + zzjson_free(config, retval); + return NULL; +} + +ZZJSON *zzjson_parse(ZZJSON_CONFIG *config) { + ZZJSON *retval; + int c; + + SKIPWS(); + c = GETC(); + UNGETC(c); + if (c == '[') retval = parse_array(config); + else if (c == '{') retval = parse_object(config); + else { ERROR("expected '[' or '{'"); return NULL; } + + if (!retval) return NULL; + + SKIPWS(); + c = GETC(); + if (c >= 0 && !ALLOW_GARBAGE_AT_END) { + ERROR("parse: garbage at end of file"); + zzjson_free(config, retval); + return NULL; + } + + return retval; +} diff --git a/com32/gpllib/zzjson/zzjson_print.c b/com32/gpllib/zzjson/zzjson_print.c new file mode 100644 index 0000000..a59b3b0 --- /dev/null +++ b/com32/gpllib/zzjson/zzjson_print.c @@ -0,0 +1,110 @@ +/* JSON Printer + * ZZJSON - Copyright (C) 2008 by Ivo van Poorten + * License: GNU Lesser General Public License version 2.1 + */ + +#include "zzjson.h" + +#define PRINT(fmt...) if (config->print(config->ohandle, ##fmt) < 0) return -1; +//#define PUTC(c) if (config->putchar(c, config->ohandle) < 0) return -1; +#define PUTC(c) PRINT("%c",c) +#define INC 4 + +static int print_string(ZZJSON_CONFIG *config, char *s) { + int c, bs; + if (!s) return 0; + while ((c = *s++)) { + bs = 1; + switch (c) { +// case '/': // useless escape of forward slash + case '\\': + if (*s == 'u') bs = 0; // copy \uHHHH verbatim + break; + case '"': break; + case '\b': c = 'b'; break; + case '\f': c = 'f'; break; + case '\n': c = 'n'; break; + case '\r': c = 'r'; break; + case '\t': c = 't'; break; + default: bs = 0; break; + } + if (bs) PUTC('\\'); + PUTC(c); + } + return 0; +} + +static int zzjson_print2(ZZJSON_CONFIG *config, ZZJSON *zzjson, + unsigned int indent, unsigned int objval) { + char c = 0, d = 0; + if (!zzjson) return -1; + + switch(zzjson->type) { + case ZZJSON_OBJECT: c = '{'; d = '}'; break; + case ZZJSON_ARRAY: c = '['; d = ']'; break; + default: break; + } + + if (c) PRINT("%s%*s%c", indent ? "\n" : "", indent, "", c); + + while (zzjson) { + switch(zzjson->type) { + case ZZJSON_OBJECT: + if (zzjson->value.object.val) { + PRINT("\n%*s\"", indent+INC, ""); + if (print_string(config, zzjson->value.object.label) < 0) + return -1; + PRINT("\" :"); + if (zzjson_print2(config, zzjson->value.object.val, + indent+INC, 1) < 0) return -1; + } + break; + case ZZJSON_ARRAY: + if (zzjson->value.array.val) + if (zzjson_print2(config, zzjson->value.array.val, + indent+INC, 0) < 0) return -1; + break; + case ZZJSON_STRING: + PRINT(objval ? " \"" : "\n%*s\"", indent, ""); + if (print_string(config, zzjson->value.string.string)<0) return -1; + PUTC('"'); + break; + case ZZJSON_FALSE: + PRINT(objval ? " false" : "\n%*sfalse", indent, ""); + break; + case ZZJSON_NULL: + PRINT(objval ? " null" : "\n%*snull", indent, ""); + break; + case ZZJSON_TRUE: + PRINT(objval ? " true" : "\n%*strue", indent, ""); + break; + case ZZJSON_NUMBER_NEGINT: + case ZZJSON_NUMBER_POSINT: + case ZZJSON_NUMBER_DOUBLE: + PRINT(objval ? " " : "\n%*s", indent, ""); + if (zzjson->type == ZZJSON_NUMBER_DOUBLE) { + PRINT("%16.16e", zzjson->value.number.val.dval); + } else { + if (zzjson->type == ZZJSON_NUMBER_NEGINT) PUTC('-'); + PRINT("%llu", zzjson->value.number.val.ival); + } + default: + break; + } + zzjson = zzjson->next; + if (zzjson) PUTC(','); + } + + if (d) PRINT("\n%*s%c", indent, "", d); + + return 0; +} + +int zzjson_print(ZZJSON_CONFIG *config, ZZJSON *zzjson) { + int retval = zzjson_print2(config, zzjson, 0, 0); +// if (retval >= 0) retval = config->putchar('\n', config->ohandle); +#ifndef CONFIG_NO_ERROR_MESSAGES + if (retval < 0) config->error(config->ehandle, "print: unable to print"); +#endif + return retval; +} diff --git a/com32/gpllib/zzjson/zzjson_query.c b/com32/gpllib/zzjson/zzjson_query.c new file mode 100644 index 0000000..35ba7b7 --- /dev/null +++ b/com32/gpllib/zzjson/zzjson_query.c @@ -0,0 +1,63 @@ +/* JSON query + * ZZJSON - Copyright (C) 2008 by Ivo van Poorten + * License: GNU Lesser General Public License version 2.1 + */ + +#include "zzjson.h" +#include +#include + +ZZJSON *zzjson_object_find_label(ZZJSON *zzjson, char *label) { + if (zzjson->type != ZZJSON_OBJECT) return NULL; + + while (zzjson) { + char *string = zzjson->value.object.label; + + if (zzjson->type != ZZJSON_OBJECT) return NULL; + if (!string) return NULL; + + if (!strcmp(string, label)) + return zzjson->value.object.val; + zzjson = zzjson->next; + } + return NULL; +} + +ZZJSON *zzjson_object_find_labels(ZZJSON *zzjson, ...) { + va_list ap; + char *lbl; + + va_start(ap, zzjson); + lbl = va_arg(ap, char *); + while (lbl) { + zzjson = zzjson_object_find_label(zzjson, lbl); + if (!zzjson) break; + lbl = va_arg(ap, char *); + } + va_end(ap); + + return zzjson; +} + +unsigned int zzjson_object_count(ZZJSON *zzjson) { + unsigned int count = 1; + + if (zzjson->type != ZZJSON_OBJECT) return 0; + if (!zzjson->value.object.label) return 0; /* empty { } */ + + while ((zzjson = zzjson->next)) count++; + + return count; +} + +unsigned int zzjson_array_count(ZZJSON *zzjson) { + unsigned int count = 1; + + if (zzjson->type != ZZJSON_ARRAY) return 0; + if (!zzjson->value.array.val) return 0; /* empty [ ] */ + + while ((zzjson = zzjson->next)) count++; + + return count; +} + diff --git a/com32/hdt/Makefile b/com32/hdt/Makefile index 40ea3ac..f187346 100644 --- a/com32/hdt/Makefile +++ b/com32/hdt/Makefile @@ -16,11 +16,11 @@ ## topdir = ../.. -include ../MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/com32.mk -LIBS = ../cmenu/libmenu/libmenu.a ../libutil/libutil_com.a \ - ../lib/libcom32.a $(LIBGCC) -CFLAGS += -I$(com32)/cmenu/libmenu +LIBS = ../cmenu/libmenu/libmenu.a ../libupload/libcom32upload.a +CFLAGS += -I$(com32)/cmenu/libmenu -I$(com32) MODULES = hdt.c32 TESTFILES = @@ -28,7 +28,8 @@ TESTFILES = OBJS = $(patsubst %.c,%.o,$(wildcard *.c)) VERSION = $(shell $(SED) -n 's/\#define VERSION \"\(.*\)\"/\1/p' hdt.h) CODENAME = $(shell $(SED) -n 's/\#define CODENAME \"\(.*\)\"/\1/p' hdt.h) -VERSION_C32 = $(shell echo $(VERSION) | $(SED) -e 's/-/_/g' | $(SED) -e 's/\./_/g') +NODASH_VERSION = $(shell echo $(VERSION) | $(SED) -e 's/-/_/g' | $(SED) -e 's/\./_/g') +SUM_FILE = hdt-$(VERSION).checksums MEMTEST_URL = http://memtest.org/download/4.20/memtest86+-4.20.bin MEMTEST = memtest.bin @@ -44,6 +45,7 @@ FLOPPY_DIR ?= floppy PCI_IDS_FILE ?= $(PWD)/$(FLOPPY_DIR)/pci.ids GZ_PCI_IDS_FILE ?= $(PCI_IDS_FILE).gz MENU_COM32 ?= $(com32)/menu/menu.c32 +CHAIN_COM32 ?= $(com32)/modules/chain.c32 ART_DIR ?= art/ QEMU ?= qemu-kvm @@ -55,11 +57,11 @@ hdt.elf : $(OBJS) $(LIBS) $(C_LIBS) memtest: -[ ! -f $(FLOPPY_DIR)/$(MEMTEST) ] && $(WGET) $(MEMTEST_URL) -O $(FLOPPY_DIR)/$(MEMTEST) -hdt.img: hdt.c32 $(FLOPPY_DIR)/hdt.cfg $(FLOPPY_DIR)/mtools.conf $(topdir)/mtools/syslinux $(MENU_COM32) memtest +hdt.img: hdt.c32 $(FLOPPY_DIR)/hdt.cfg $(FLOPPY_DIR)/mtools.conf $(topdir)/mtools/syslinux $(MENU_COM32) memtest $(CHAIN_COM32) rm -f hdt*.img $(SED) -e 's/%VERSION%/$(VERSION)/g' $(FLOPPY_DIR)/hdt.cfg |\ $(SED) -e 's/%CODENAME%/$(CODENAME)/g' > $(FLOPPY_DIR)/syslinux.cfg - MTOOLSRC=$(PWD)/$(FLOPPY_DIR)/mtools.conf $(MFORMAT) -v HDT_$(VERSION) -f 1440 -C a: + MTOOLSRC=$(PWD)/$(FLOPPY_DIR)/mtools.conf $(MFORMAT) -v HDT_$(NODASH_VERSION) -f 1440 -C a: $(topdir)/mtools/syslinux hdt.img -[ ! -f $(GZ_PCI_IDS_FILE) ] && cp /usr/share/hwdata/pci.ids $(PCI_IDS_FILE) && $(GZIPPROG) $(PCI_IDS_FILE) -[ ! -f $(GZ_PCI_IDS_FILE) ] && cp /usr/share/pci.ids $(PCI_IDS_FILE) && $(GZIPPROG) $(PCI_IDS_FILE) @@ -67,6 +69,7 @@ hdt.img: hdt.c32 $(FLOPPY_DIR)/hdt.cfg $(FLOPPY_DIR)/mtools.conf $(topdir)/mtool -[ -f $(MODULES_PCIMAP_FILE) ] && cat $(MODULES_PCIMAP_FILE) | $(GZIPPROG) - -f | MTOOLSRC=$(PWD)/$(FLOPPY_DIR)/mtools.conf $(MCOPY) - a:modules.pcimap MTOOLSRC=$(PWD)/$(FLOPPY_DIR)/mtools.conf $(MCOPY) hdt.c32 a: MTOOLSRC=$(PWD)/$(FLOPPY_DIR)/mtools.conf $(MCOPY) $(MENU_COM32) a: + MTOOLSRC=$(PWD)/$(FLOPPY_DIR)/mtools.conf $(MCOPY) $(CHAIN_COM32) a: @ [ -f $(GZ_PCI_IDS_FILE) ] && MTOOLSRC=$(PWD)/$(FLOPPY_DIR)/mtools.conf $(MCOPY) $(GZ_PCI_IDS_FILE) a:pci.ids || printf "\nThe $(GZ_PCI_IDS_FILE) file is missing and can be downloaded from http://pciids.sourceforge.net and gzipped in\nthe ./com32/hdt/$(FLOPPY_DIR) directory of the extracted Syslinux source.\n\n" MTOOLSRC=$(PWD)/$(FLOPPY_DIR)/mtools.conf $(MCOPY) $(FLOPPY_DIR)/syslinux.cfg a: MTOOLSRC=$(PWD)/$(FLOPPY_DIR)/mtools.conf $(MCOPY) $(FLOPPY_DIR)/$(MEMTEST) a: @@ -89,6 +92,7 @@ hdt.iso: hdt.c32 $(topdir)/core/isolinux.bin $(FLOPPY_DIR)/hdt.cfg memtest cp hdt.c32 $(ISO_DIR)/$(ISOLINUX_DIR) cp $(FLOPPY_DIR)/$(MEMTEST) $(ISO_DIR)/$(ISOLINUX_DIR) cp $(MENU_COM32) $(ISO_DIR)/$(ISOLINUX_DIR) + cp $(CHAIN_COM32) $(ISO_DIR)/$(ISOLINUX_DIR) cp -av $(ART_DIR)/backgnd.png $(ISO_DIR)/$(ISOLINUX_DIR) -[ ! -f $(GZ_PCI_IDS_FILE) ] && cp /usr/share/hwdata/pci.ids $(PCI_IDS_FILE) && $(GZIPPROG) $(PCI_IDS_FILE) -[ ! -f $(GZ_PCI_IDS_FILE) ] && cp /usr/share/pci.ids $(PCI_IDS_FILE) && $(GZIPPROG) $(PCI_IDS_FILE) @@ -107,7 +111,11 @@ hdt.iso: hdt.c32 $(topdir)/core/isolinux.bin $(FLOPPY_DIR)/hdt.cfg memtest ln -sf hdt-$(VERSION).iso hdt.iso release: spotless hdt.c32 hdt.img hdt.img.gz hdt.iso - mv hdt.c32 hdt_$(VERSION_C32).c32 + mv hdt.c32 hdt_$(NODASH_VERSION).c32 + md5sum hdt_$(NODASH_VERSION).c32 >$(SUM_FILE) + md5sum hdt-$(VERSION).iso >>$(SUM_FILE) + md5sum hdt-$(VERSION).img >>$(SUM_FILE) + md5sum hdt-$(VERSION).img.gz >>$(SUM_FILE) test: hdt.img $(QEMU) -fda hdt.img @@ -123,6 +131,7 @@ spotless: clean rm -rf $(ISO_DIR) rm -rf $(FLOPPY_DIR)/$(MEMTEST) rm -rf $(FLOPPY_DIR)/pci.ids* + rm -rf hdt-*checksums rm -f *~ \#* install: diff --git a/com32/hdt/floppy/hdt.cfg b/com32/hdt/floppy/hdt.cfg index f72a213..c876d23 100644 --- a/com32/hdt/floppy/hdt.cfg +++ b/com32/hdt/floppy/hdt.cfg @@ -77,6 +77,15 @@ ENDTEXT COM32 hdt.c32 APPEND modules_pcimap=modules.pcimap modules_alias=modules.alias pciids=pci.ids verbose nomenu +LABEL dump +MENU LABEL Dump hardware config to TFTP server +TEXT HELP + Starts HDT using the Command Line Interface (CLI) and run 'dump' + VESA mode is enabled +ENDTEXT +COM32 hdt.c32 +APPEND modules_pcimap=modules.pcimap modules_alias=modules.alias pciids=pci.ids quiet vesa nomenu auto='dump' + MENU SEPARATOR LABEL memtest diff --git a/com32/hdt/hdt-cli-acpi.c b/com32/hdt/hdt-cli-acpi.c index 1b608c2..a978bb3 100644 --- a/com32/hdt/hdt-cli-acpi.c +++ b/com32/hdt/hdt-cli-acpi.c @@ -37,7 +37,7 @@ /* Print ACPI's table header in a defined formating */ static void show_header(void *address, s_acpi_description_header * h) { - more_printf("%-4s v%03x %-6s %-7s 0x%08x %-4s 0x%08x @ 0x%p\n", + more_printf("%-4s v%03x %-6s %-8s 0x%08x %-7s 0x%08x @ 0x%p\n", h->signature, h->revision, h->oem_id, h->oem_table_id, h->oem_revision, h->creator_id, h->creator_revision, address) } @@ -158,25 +158,6 @@ static void show_local_apic(s_madt * madt) } } -/* M1PS flags have to be interpreted as strings */ -static char *flags_to_string(char *buffer, uint16_t flags) -{ - memset(buffer, 0, sizeof(buffer)); - strcpy(buffer, "default"); - if ((flags & POLARITY_ACTIVE_HIGH) == POLARITY_ACTIVE_HIGH) - strcpy(buffer, "high"); - else if ((flags & POLARITY_ACTIVE_LOW) == POLARITY_ACTIVE_LOW) - strcpy(buffer, "low"); - if ((flags & TRIGGER_EDGE) == TRIGGER_EDGE) - strncat(buffer, " edge", 5); - else if ((flags & TRIGGER_LEVEL) == TRIGGER_LEVEL) - strncat(buffer, " level", 6); - else - strncat(buffer, " default", 8); - - return buffer; -} - /* Display the local apic NMI configuration */ static void show_local_apic_nmi(s_madt * madt) { @@ -225,7 +206,7 @@ static void show_io_apic(s_madt * madt) break; } - more_printf("IO_APIC[%d] : apic_id[0x%02x] adress[0x%08x] %s\n", + more_printf("IO_APIC[%d] : apic_id[0x%02x] address[0x%08x] %s\n", i, sio->io_apic_id, sio->io_apic_address, buffer); } } diff --git a/com32/hdt/hdt-cli-hdt.c b/com32/hdt/hdt-cli-hdt.c index 6506823..e975261 100644 --- a/com32/hdt/hdt-cli-hdt.c +++ b/com32/hdt/hdt-cli-hdt.c @@ -250,6 +250,15 @@ static void do_reboot(int argc __unused, char **argv __unused, syslinux_reboot(1); } +/** + * do_dump - dump info + **/ +static void do_dump(int argc __unused, char **argv __unused, + struct s_hardware *hardware) +{ + dump(hardware); +} + /* Default hdt mode */ struct cli_callback_descr list_hdt_default_modules[] = { { @@ -277,6 +286,10 @@ struct cli_callback_descr list_hdt_default_modules[] = { .exec = print_history, }, { + .name = CLI_DUMP, + .exec = do_dump, + }, + { .name = NULL, .exec = NULL}, }; diff --git a/com32/hdt/hdt-cli.c b/com32/hdt/hdt-cli.c index 8b5335e..330f93c 100644 --- a/com32/hdt/hdt-cli.c +++ b/com32/hdt/hdt-cli.c @@ -738,8 +738,7 @@ void start_auto_mode(struct s_hardware *hardware) int nb_commands = 0; char *commands[MAX_NB_AUTO_COMMANDS]; - if (!quiet) - more_printf("\nEntering Auto mode\n"); + more_printf("\nEntering Auto mode\n"); /* Protecting the auto_label from the strtok modifications */ char *temp = strdup(hardware->auto_label); diff --git a/com32/hdt/hdt-cli.h b/com32/hdt/hdt-cli.h index 1329109..68b3315 100644 --- a/com32/hdt/hdt-cli.h +++ b/com32/hdt/hdt-cli.h @@ -65,6 +65,7 @@ #define CLI_ACPI "acpi" #define CLI_ENABLE "enable" #define CLI_DISABLE "disable" +#define CLI_DUMP "dump" typedef enum { INVALID_MODE, diff --git a/com32/hdt/hdt-common.c b/com32/hdt/hdt-common.c index f1557b8..aac50eb 100644 --- a/com32/hdt/hdt-common.c +++ b/com32/hdt/hdt-common.c @@ -106,6 +106,12 @@ void detect_parameters(const int argc, const char *argv[], max_console_lines = MAX_CLI_LINES; } else if (!strncmp(argv[i], "nomenu", 6)) { menumode = false; + } else if (!strncmp(argv[i], "dump_path=", 10)) { + strlcpy(hardware->dump_path, argv[i] + 10, + sizeof(hardware->dump_path)); + } else if (!strncmp(argv[i], "tftp_ip=", 8)) { + strlcpy(hardware->tftp_ip, argv[i] + 8, + sizeof(hardware->tftp_ip)); } else if (!strncmp(argv[i], "auto=", 5)) { /* The auto= parameter is separated in several argv[] * as it can contains spaces. @@ -115,25 +121,19 @@ void detect_parameters(const int argc, const char *argv[], */ automode=true; + char *argument = (char*)argv[i]+6; /* Extracting the first parameter */ - strcpy(hardware->auto_label, argv[i] + 6); - strcat(hardware->auto_label, " "); - char *pos; - i++; + strcpy(hardware->auto_label, argument); /* While we can't find the other AUTO_DELIMITER, let's process the argv[] */ - while (((pos = strstr(argv[i], AUTO_DELIMITER)) == NULL) - && (i < argc)) { - strcat(hardware->auto_label, argv[i]); - strcat(hardware->auto_label, " "); + while ((strchr(argument, AUTO_DELIMITER) == NULL) && (i+1auto_label, " "); + strcat(hardware->auto_label, argument); + } - /* If we didn't reach the end of the line, let's grab the last item */ - if (i < argc) { - strcat(hardware->auto_label, argv[i]); - hardware->auto_label[strlen(hardware->auto_label) - 1] = 0; - } + hardware->auto_label[strlen(hardware->auto_label) - 1] = 0; } } } @@ -203,7 +203,10 @@ void init_hardware(struct s_hardware *hardware) sizeof hardware->modules_alias_path); memset(hardware->memtest_label, 0, sizeof hardware->memtest_label); memset(hardware->auto_label, 0, sizeof hardware->auto_label); + memset(hardware->dump_path, 0, sizeof hardware->dump_path); memset(hardware->vesa_background, 0, sizeof hardware->vesa_background); + memset(hardware->tftp_ip, 0, sizeof hardware->tftp_ip); + strcat(hardware->dump_path, "hdt"); strcat(hardware->pciids_path, "pci.ids"); strcat(hardware->modules_pcimap_path, "modules.pcimap"); strcat(hardware->modules_alias_path, "modules.alias"); @@ -652,7 +655,7 @@ char *del_multi_spaces(char *p) * As we search for a double spacing * we have to be sure then string is * long enough to be processed */ - while (*p && *p + 1) { + while (*p && *(p + 1)) { /* If we have two consecutive spaces */ if ((*p == ' ') && (*(p + 1) == ' ')) { diff --git a/com32/hdt/hdt-common.h b/com32/hdt/hdt-common.h index df7d2c9..d37fcc8 100644 --- a/com32/hdt/hdt-common.h +++ b/com32/hdt/hdt-common.h @@ -48,16 +48,18 @@ #include "cpuid.h" #include "dmi/dmi.h" #include "hdt-ata.h" -#include "../lib/sys/vesa/vesa.h" +#include #include #include #include +#include /* Declare a variable or data structure as unused. */ #define __unused __attribute__ (( unused )) /* This two values are used for switching for the menu to the CLI mode */ #define HDT_SWITCH_TO_CLI "hdt_switch_to_cli" +#define HDT_DUMP "hdt_dump" #define HDT_RETURN_TO_CLI 100 #define MAX_VESA_MODES 255 @@ -71,7 +73,7 @@ /* The char that separate two commands */ #define AUTO_SEPARATOR ";" /* The char that surround the list of commands */ -#define AUTO_DELIMITER "'" +#define AUTO_DELIMITER '\'' /* Graphic to load in background when using the vesa mode */ #define CLI_DEFAULT_BACKGROUND "backgnd.png" @@ -80,6 +82,8 @@ #define MAX_CLI_LINES 20 #define MAX_VESA_CLI_LINES 24 +struct upload_backend *upload; + /* Defines if the cli is quiet*/ bool quiet; @@ -209,6 +213,8 @@ struct s_hardware { char modules_pcimap_path[255]; char modules_alias_path[255]; char pciids_path[255]; + char dump_path[255]; /* Dump path on the tftp server */ + char tftp_ip[255]; /* IP address of tftp server (dump mode) */ char memtest_label[255]; char auto_label[AUTO_COMMAND_SIZE]; char vesa_background[255]; @@ -236,4 +242,5 @@ int detect_vesa(struct s_hardware *hardware); void detect_memory(struct s_hardware *hardware); void init_console(struct s_hardware *hardware); void detect_hardware(struct s_hardware *hardware); +void dump(struct s_hardware *hardware); #endif diff --git a/com32/hdt/hdt-dump-acpi.c b/com32/hdt/hdt-dump-acpi.c new file mode 100644 index 0000000..4cbaf66 --- /dev/null +++ b/com32/hdt/hdt-dump-acpi.c @@ -0,0 +1,600 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" + +void show_header(char *name, void *address, s_acpi_description_header *h, ZZJSON_CONFIG *config, ZZJSON **item) +{ + char signature[10]={0}; + char revision[10]={0}; + char s_address[16]={0}; + char oem_id[16]={0}; + char oem_table_id[16]={0}; + char oem_revision[16]={0}; + char creator_revision[16]={0}; + char creator_id[16]={0}; + snprintf(signature,sizeof(signature),"%s",h->signature); + snprintf(revision,sizeof(revision),"0x%03x",h->revision); + snprintf(oem_id,sizeof(oem_id),"%s",h->oem_id); + snprintf(oem_table_id,sizeof(oem_table_id),"%s",h->oem_table_id); + snprintf(creator_id,sizeof(creator_id),"%s",h->creator_id); + snprintf(oem_revision,sizeof(oem_revision),"0x%08x",h->oem_revision); + snprintf(creator_revision,sizeof(creator_revision),"0x%08x",h->creator_revision); + snprintf(s_address,sizeof(s_address),"%p",address); + + char address_name[32]={0}; + char signature_name[32]={0}; + char revision_name[32]={0}; + char oem_id_name[32]={0}; + char oem_table_id_name[32]={0}; + char oem_revision_name[32]={0}; + char creator_revision_name[32]={0}; + char creator_id_name[32]={0}; + snprintf(signature_name,sizeof(signature_name),"acpi.%s.signature",name); + snprintf(revision_name,sizeof(revision_name),"acpi.%s.revision",name); + snprintf(address_name,sizeof(address_name),"acpi.%s.address",name); + snprintf(oem_id_name,sizeof(oem_id_name),"acpi.%s.oem_id",name); + snprintf(oem_table_id_name,sizeof(oem_table_id_name),"acpi.%s.oem_table_id",name); + snprintf(oem_revision_name,sizeof(oem_revision_name),"acpi.%s.oem_revision",name); + snprintf(creator_revision_name,sizeof(creator_revision_name),"acpi.%s.creator_revision",name); + snprintf(creator_id_name,sizeof(creator_id_name),"acpi.%s.creator_id",name); + + APPEND_ARRAY + add_as(signature_name,signature) + add_as(revision_name,revision) + add_as(oem_id_name,oem_id) + add_as(oem_table_id_name,oem_table_id) + add_as(oem_revision_name,oem_revision) + add_as(creator_id_name,creator_id) + add_as(creator_revision_name,creator_revision) + add_as(address_name,s_address) + END_OF_APPEND; + + FLUSH_OBJECT; + +} + +void dump_rsdt(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->rsdt.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","rsdt") + add_as("acpi.rsdt.is_valid",valid) + END_OF_ARRAY; + + if (acpi->rsdt.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("rsdt",acpi->rsdt.address, &acpi->rsdt.header, config, item); +} + +void dump_xsdt(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->xsdt.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","xsdt") + add_as("acpi.xsdt.is_valid",valid) + END_OF_ARRAY; + + if (acpi->xsdt.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("xsdt",acpi->xsdt.address, &acpi->xsdt.header, config, item); +} + +void dump_fadt(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->rsdt.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","fadt") + add_as("acpi.fadt.is_valid",valid) + END_OF_ARRAY; + + if (acpi->fadt.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("fadt",acpi->fadt.address, &acpi->fadt.header, config, item); +} + +void dump_dsdt(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->dsdt.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","dsdt") + add_as("acpi.dsdt.is_valid",valid) + END_OF_ARRAY; + + if (acpi->dsdt.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("dsdt",acpi->dsdt.address, &acpi->dsdt.header, config, item); +} + +void dump_sbst(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->sbst.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","sbst") + add_as("acpi.sbst.is_valid",valid) + END_OF_ARRAY; + + if (acpi->sbst.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("sbst",acpi->sbst.address, &acpi->sbst.header, config, item); +} + +void dump_ecdt(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->ecdt.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","ecdt") + add_as("acpi.ecdt.is_valid",valid) + END_OF_ARRAY; + + if (acpi->ecdt.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("ecdt",acpi->ecdt.address, &acpi->ecdt.header, config, item); +} + +void dump_hpet(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->hpet.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","hpet") + add_as("acpi.hpet.is_valid",valid) + END_OF_ARRAY; + + if (acpi->hpet.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("hpet",acpi->hpet.address, &acpi->hpet.header, config, item); +} + +void dump_tcpa(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->tcpa.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","tcpa") + add_as("acpi.tcpa.is_valid",valid) + END_OF_ARRAY; + + if (acpi->tcpa.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("tcpa",acpi->tcpa.address, &acpi->tcpa.header, config, item); +} + +void dump_mcfg(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->mcfg.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","mcfg") + add_as("acpi.mcfg.is_valid",valid) + END_OF_ARRAY; + + if (acpi->mcfg.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("mcfg",acpi->mcfg.address, &acpi->mcfg.header, config, item); +} + +void dump_slic(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->slic.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","slic") + add_as("acpi.slic.is_valid",valid) + END_OF_ARRAY; + + if (acpi->slic.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("slic",acpi->slic.address, &acpi->slic.header, config, item); +} + + +void dump_boot(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->boot.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","boot") + add_as("acpi.boot.is_valid",valid) + END_OF_ARRAY; + + if (acpi->boot.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("boot",acpi->boot.address, &acpi->boot.header, config, item); +} + +void dump_madt(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->madt.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","madt") + add_as("acpi.madt.is_valid",valid) + END_OF_ARRAY; + + if (acpi->madt.valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("madt",acpi->madt.address, &acpi->madt.header, config, item); +} + +void dump_ssdt(s_ssdt *ssdt, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (ssdt->valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","ssdt") + add_as("acpi.ssdt.is_valid",valid) + END_OF_ARRAY; + + if (ssdt->valid==false) { + FLUSH_OBJECT; + return; + } + + show_header("ssdt",ssdt->address, &ssdt->header, config, item); +} + +void dump_rsdp(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->rsdp.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","rsdp") + add_as("acpi.rsdp.is_valid",valid) + END_OF_ARRAY; + + if (acpi->rsdp.valid==false) { + FLUSH_OBJECT; + return; + } + + s_rsdp *r = &acpi->rsdp; + char revision[10]={0}; + char address[16]={0}; + char oem_id[16]={0}; + snprintf(revision,sizeof(revision),"0x%03x",r->revision); + snprintf(address,sizeof(address),"%p",r->address); + snprintf(oem_id,sizeof(oem_id),"%s",r->oem_id); + APPEND_ARRAY + add_as("acpi.rsdp.revision",revision) + add_as("acpi.rsdp.oem_id",oem_id) + add_as("acpi.rsdp.address",address) + END_OF_APPEND; + + FLUSH_OBJECT; + +} + +void dump_facs(s_acpi * acpi, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char valid[8]={0}; + snprintf(valid,sizeof(valid),"%s","false"); + if (acpi->facs.valid) { + snprintf(valid,sizeof(valid),"%s","true"); + } + CREATE_ARRAY + add_as("acpi.item","facs") + add_as("acpi.facs.is_valid",valid) + END_OF_ARRAY; + + if (acpi->facs.valid==false) { + FLUSH_OBJECT; + return; + } + + s_facs *fa = &acpi->facs; + char address[16]={0}; + snprintf(address,sizeof(address),"%p",fa->address); + APPEND_ARRAY + add_as("acpi.facs.address",address) + END_OF_APPEND; + + FLUSH_OBJECT; + +} + +void dump_interrupt_source_override(s_madt * madt, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + CREATE_ARRAY + add_as("acpi.item","interrupt_source_override") + add_ai("acpi.interrupt_source_override.count", madt->interrupt_source_override_count) + END_OF_ARRAY; + + if (madt->interrupt_source_override_count == 0) { + FLUSH_OBJECT; + return; + } + + /* Let's process each interrupt source override */ + for (int i = 0; i < madt->interrupt_source_override_count; i++) { + s_interrupt_source_override *siso = &madt->interrupt_source_override[i]; + char buffer[20] = {0}; + char bus_type[10]= {0}; + + /* Spec report bus type 0 as ISA */ + if (siso->bus == 0) + strcpy(bus_type, "ISA"); + else + strcpy(bus_type, "unknown"); + + APPEND_ARRAY + add_as("acpi.interrupt_source_override.bus_type",bus_type) + add_ai("acpi.interrupt_source_override.bus",siso->bus) + add_ai("acpi.interrupt_source_override.bus_irq",siso->source) + add_ai("acpi.interrupt_source_override.global_irq",siso->global_system_interrupt) + add_as("acpi.interrupt_source_override.flags",flags_to_string(buffer,siso->flags)) + END_OF_APPEND; + } + FLUSH_OBJECT; +} + +void dump_io_apic(s_madt * madt, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + CREATE_ARRAY + add_as("acpi.item","io_apic") + add_ai("acpi.io_apic.count", madt->io_apic_count) + END_OF_ARRAY; + + if (madt->io_apic_count == 0) { + FLUSH_OBJECT; + return; + } + + /* For all IO APICS */ + for (int i = 0; i < madt->io_apic_count; i++) { + s_io_apic *sio = &madt->io_apic[i]; + char buffer[15]={0}; + memset(buffer, 0, sizeof(buffer)); + /* GSI base reports the GSI configuration + * Let's interpret it as string */ + switch (sio->global_system_interrupt_base) { + case 0: + strcpy(buffer, "0-23"); + break; + case 24: + strcpy(buffer,"24-39"); + break; + case 40: + strcpy(buffer, "40-55"); + break; + default: + strcpy(buffer,"Unknown"); + break; + } + + char apic_id[16] = { 0 }; + char address[16] = { 0 }; + snprintf(apic_id,sizeof(apic_id),"0x%02x",sio->io_apic_id); + snprintf(address,sizeof(address),"0x%08x",sio->io_apic_address); + APPEND_ARRAY + add_ai("acpi.io_apic.number",i) + add_as("acpi.io_apic.apic_id",apic_id) + add_as("acpi.io_apic.adress",address) + add_as("acpi.io_apic.gsi",buffer) + END_OF_APPEND; + } + FLUSH_OBJECT; +} + +void dump_local_apic_nmi(s_madt * madt, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + CREATE_ARRAY + add_as("acpi.item","local_apic_nmi") + add_ai("acpi.local_apic_nmi.count", madt->local_apic_nmi_count) + END_OF_ARRAY; + + if (madt->local_apic_nmi_count == 0) { + FLUSH_OBJECT; + return; + } + + for (int i = 0; i < madt->local_apic_nmi_count; i++) { + s_local_apic_nmi *slan = &madt->local_apic_nmi[i]; + char buffer[20]={0}; + char acpi_id[16] = { 0 }; + char local_apic_lint[16] = { 0 }; + snprintf(acpi_id, sizeof(acpi_id), "0x%02x", slan->acpi_processor_id); + snprintf(local_apic_lint, sizeof(local_apic_lint), "0x%02x", slan->local_apic_lint); + APPEND_ARRAY + add_as("acpi.processor_id", acpi_id) + add_as("acpi.local_apic_nmi.flags", flags_to_string(buffer,slan->flags)) + add_as("acpi.local_apic_nmi.lint",local_apic_lint) + END_OF_APPEND; + } + + FLUSH_OBJECT; +} + +void dump_local_apic(s_madt * madt, ZZJSON_CONFIG * config, ZZJSON ** item) +{ + char buffer[16] = { 0 }; + snprintf(buffer, sizeof(buffer), "0x%08x", madt->local_apic_address); + + CREATE_ARRAY + add_as("acpi.item","local_apic") + add_as("acpi.local_apic.address", buffer) + add_ai("acpi.processor_local_apic.count", madt->processor_local_apic_count) + END_OF_ARRAY; + + if (madt->processor_local_apic_count ==0) { + FLUSH_OBJECT; + return; + } + + /* For all detected logical CPU */ + for (int i = 0; i < madt->processor_local_apic_count; i++) { + s_processor_local_apic *sla = &madt->processor_local_apic[i]; + char lapic_status[16] = { 0 }; + char acpi_id[16] = { 0 }; + char apic_id[16] = { 0 }; + + snprintf(lapic_status,sizeof(lapic_status),"%s","disabled"); + /* Let's check if the flags reports the cpu as enabled */ + if ((sla->flags & PROCESSOR_LOCAL_APIC_ENABLE) == + PROCESSOR_LOCAL_APIC_ENABLE) + snprintf(lapic_status,sizeof(lapic_status),"%s","enabled"); + snprintf(acpi_id, sizeof(acpi_id), "0x%02x", sla->acpi_id); + snprintf(apic_id, sizeof(apic_id), "0x%02x", sla->apic_id); + APPEND_ARRAY + add_ai("acpi.cpu.apic_id", sla->apic_id) + add_as("acpi.cpu.apic_id (hex)", apic_id) + add_as("acpi.cpu.acpi_id (hex)", acpi_id) + add_as("acpi.lapic.enabled", lapic_status) + END_OF_APPEND; + } + FLUSH_OBJECT; +} + +void dump_acpi(struct s_hardware *hardware, ZZJSON_CONFIG * config, + ZZJSON ** item) +{ + CREATE_NEW_OBJECT; + add_hb(is_acpi_valid); + if (hardware->is_acpi_valid == false) + goto exit; + + s_madt *madt = &hardware->acpi.madt; + add_b("acpi.apic.detected", madt->valid); + if (madt->valid == false) { + goto exit; + } + + FLUSH_OBJECT; + + dump_local_apic(madt, config, item); + dump_local_apic_nmi(madt, config, item); + dump_io_apic(madt, config, item); + dump_interrupt_source_override(madt, config, item); + + dump_rsdp(&hardware->acpi,config,item); + dump_rsdt(&hardware->acpi,config,item); + dump_xsdt(&hardware->acpi,config,item); + dump_fadt(&hardware->acpi,config,item); + dump_dsdt(&hardware->acpi,config,item); + dump_sbst(&hardware->acpi,config,item); + dump_ecdt(&hardware->acpi,config,item); + dump_hpet(&hardware->acpi,config,item); + dump_tcpa(&hardware->acpi,config,item); + dump_mcfg(&hardware->acpi,config,item); + dump_slic(&hardware->acpi,config,item); + dump_boot(&hardware->acpi,config,item); + dump_madt(&hardware->acpi,config,item); + for (int i = 0; i < hardware->acpi.ssdt_count; i++) { + if ((hardware->acpi.ssdt[i] != NULL) && (hardware->acpi.ssdt[i]->valid)) + dump_ssdt(hardware->acpi.ssdt[i], config, item); + } + dump_facs(&hardware->acpi,config,item); + +exit: + to_cpio("acpi"); +} diff --git a/com32/hdt/hdt-dump-cpu.c b/com32/hdt/hdt-dump-cpu.c new file mode 100644 index 0000000..33d561c --- /dev/null +++ b/com32/hdt/hdt-dump-cpu.c @@ -0,0 +1,53 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" + +void dump_cpu(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + CREATE_NEW_OBJECT; + add_hs(cpu.vendor); + add_hs(cpu.model); + add_hi(cpu.vendor_id); + add_hi(cpu.family); + add_hi(cpu.model_id); + add_hi(cpu.stepping); + add_hi(cpu.num_cores); + add_hi(cpu.l1_data_cache_size); + add_hi(cpu.l1_instruction_cache_size); + add_hi(cpu.l2_cache_size); + size_t i; + for (i = 0; i < cpu_flags_count; i++) { + char temp[128]={0}; + snprintf(temp,sizeof(temp),"cpu.flags.%s",cpu_flags_names[i]); + add_b(temp,get_cpu_flag_value_from_name(&hardware->cpu,cpu_flags_names[i])); + } + FLUSH_OBJECT; + to_cpio("cpu"); +} diff --git a/com32/hdt/hdt-dump-disks.c b/com32/hdt/hdt-dump-disks.c new file mode 100644 index 0000000..dcbcaa9 --- /dev/null +++ b/com32/hdt/hdt-dump-disks.c @@ -0,0 +1,137 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" +#include "hdt-util.h" + +ZZJSON_CONFIG *config; +ZZJSON **item; + +static void show_partition_information(struct driveinfo *drive_info, + struct part_entry *ptab, + int partition_offset, + int nb_partitions_seen) { + char size[11] = {0}; + char bootloader_name[9] = {0}; + char ostype[64]={0}; + char *parttype; + unsigned int start, end; + + int i = nb_partitions_seen; + start = partition_offset; + end = start + ptab->length - 1; + + if (ptab->length > 0) + sectors_to_size(ptab->length, size); + + get_label(ptab->ostype, &parttype); + get_bootloader_string(drive_info, ptab, bootloader_name, 9); + + snprintf(ostype,sizeof(ostype),"%02X",ptab->ostype); + + APPEND_ARRAY + add_ai("partition->number",i) + add_ai("partition->sector_start",start) + add_ai("partition->sector_end",end) + add_as("partition->size",size) + add_as("partition->type",parttype) + add_as("partition->os_type",ostype) + END_OF_APPEND; + free(parttype); +} + + + +void show_disk(struct s_hardware *hardware, ZZJSON_CONFIG *conf, ZZJSON **it, int drive) { + config=conf; + item=it; + int i = drive - 0x80; + struct driveinfo *d = &hardware->disk_info[i]; + char mbr_name[50]={0}; + char disk_size[11]={0}; + + get_mbr_string(hardware->mbr_ids[i], &mbr_name,sizeof(mbr_name)); + if ((int)d->edd_params.sectors > 0) + sectors_to_size((int)d->edd_params.sectors, disk_size); + + char disk[5]={0}; + char edd_version[5]={0}; + snprintf(disk,sizeof(disk),"0x%X",d->disk); + snprintf(edd_version,sizeof(edd_version),"%X",d->edd_version); + zzjson_print(config, *item); + zzjson_free(config, *item); + + CREATE_ARRAY + add_as("disk->number",disk) + add_ai("disk->cylinders",d->legacy_max_cylinder +1) + add_ai("disk->heads",d->legacy_max_head +1) + add_ai("disk->sectors_per_track",d->legacy_sectors_per_track) + add_as("disk->edd_version",edd_version) + add_as("disk->size",disk_size) + add_ai("disk->bytes_per_sector",(int)d->edd_params.bytes_per_sector) + add_ai("disk->sectors_per_track",(int)d->edd_params.sectors_per_track) + add_as("disk->host_bus",remove_spaces((char *)d->edd_params.host_bus_type)) + add_as("disk->interface_type",remove_spaces((char *)d->edd_params.interface_type)) + add_as("disk->mbr_name",mbr_name) + add_ai("disk->mbr_id",hardware->mbr_ids[i]) + END_OF_ARRAY; + + if (parse_partition_table(d, &show_partition_information)) { + if (errno_disk) { + APPEND_ARRAY + add_as("disk->error", "IO Error") + END_OF_APPEND; + } else { + APPEND_ARRAY + add_as("disk->error", "Unrecognized Partition Layout") + END_OF_APPEND; + } + } +} + +void dump_disks(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + bool found=false; + for (int drive = 0x80; drive < 0xff; drive++) { + if (hardware->disk_info[drive - 0x80].cbios) { + if (found==false) { + CREATE_NEW_OBJECT; + add_b("disks->is_valid",true); + found=true; + } + show_disk(hardware, config, item, drive); + } + } + + if (found==false) { + CREATE_NEW_OBJECT; + add_b("disks->is_valid",false); + FLUSH_OBJECT; + } + to_cpio("disks"); +} diff --git a/com32/hdt/hdt-dump-dmi.c b/com32/hdt/hdt-dump-dmi.c new file mode 100644 index 0000000..6e5c1ce --- /dev/null +++ b/com32/hdt/hdt-dump-dmi.c @@ -0,0 +1,447 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" + +void dump_hardware_security(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + if (!hardware->dmi.hardware_security.filled) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","No hardware security structure found"); + FLUSH_OBJECT; + return; + } + + CREATE_NEW_OBJECT; + add_s("dmi.item","hardware_security"); + add_hs(dmi.hardware_security.power_on_passwd_status); + add_hs(dmi.hardware_security.keyboard_passwd_status); + add_hs(dmi.hardware_security.administrator_passwd_status); + add_hs(dmi.hardware_security.front_panel_reset_status); + FLUSH_OBJECT; +} + +void dump_oem_strings(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + if (strlen(hardware->dmi.oem_strings) == 0) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","No OEM structure found"); + FLUSH_OBJECT; + return; + } + CREATE_NEW_OBJECT; + add_s("dmi.item","OEM"); + add_hs(dmi.oem_strings); + FLUSH_OBJECT; +} + +void dump_memory_size(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + CREATE_NEW_OBJECT; + add_s("dmi.item","memory size"); + add_i("dmi.memory_size (KB)",hardware->detected_memory_size); + add_i("dmi.memory_size (MB)",(hardware->detected_memory_size + (1 << 9)) >> 10); + FLUSH_OBJECT; +} + +void dump_memory_modules(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + if (hardware->dmi.memory_module_count == 0) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","No memory module structure found"); + FLUSH_OBJECT; + return; + } + + for (int module=0; moduledmi.memory_module_count;module++) { + if (hardware->dmi.memory_module[module].filled == false) { + char msg[64]={0}; + snprintf(msg,sizeof(msg),"Module %d doesn't contain any information", module); + + CREATE_NEW_OBJECT; + add_s("dmi.warning",msg); + FLUSH_OBJECT; + continue; + } + + CREATE_NEW_OBJECT; + add_i("Memory module", module); + add_s("dmi.memory_module.socket_designation", hardware->dmi.memory_module[module].socket_designation); + add_s("dmi.memory_module.bank_connections", hardware->dmi.memory_module[module].bank_connections); + add_s("dmi.memory_module.speed", hardware->dmi.memory_module[module].speed); + add_s("dmi.memory_module.type", hardware->dmi.memory_module[module].type); + add_s("dmi.memory_module.installed_size", hardware->dmi.memory_module[module].installed_size); + add_s("dmi.memory_module.enabled_size", hardware->dmi.memory_module[module].enabled_size); + add_s("dmi.memory_module.error_status", hardware->dmi.memory_module[module].error_status); + FLUSH_OBJECT; + } +} + +void dump_cache(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + if (hardware->dmi.cache_count == 0) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","No cache structure found"); + FLUSH_OBJECT; + return; + } + + for (int cache=0; cachedmi.cache_count;cache++) { + CREATE_NEW_OBJECT; + add_i("Cache", cache); + add_s("dmi.cache.socket_designation", hardware->dmi.cache[cache].socket_designation); + add_s("dmi.cache.configuration", hardware->dmi.cache[cache].configuration); + add_s("dmi.cache.mode", hardware->dmi.cache[cache].mode); + add_s("dmi.cache.location", hardware->dmi.cache[cache].location); + add_i("dmi.cache.installed_size (KB)", hardware->dmi.cache[cache].installed_size); + add_i("dmi.cache.max_size (KB)", hardware->dmi.cache[cache].max_size); + add_s("dmi.cache.supported_sram_types", hardware->dmi.cache[cache].supported_sram_types); + add_s("dmi.cache.installed_sram_types", hardware->dmi.cache[cache].installed_sram_types); + add_i("dmi.cache.speed (ns)", hardware->dmi.cache[cache].speed); + add_s("dmi.cache.error_correction_type", hardware->dmi.cache[cache].error_correction_type); + add_s("dmi.cache.system_type", hardware->dmi.cache[cache].system_type); + add_s("dmi.cache.associativity", hardware->dmi.cache[cache].associativity); + FLUSH_OBJECT; + } +} +void dump_memory_banks(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + if (hardware->dmi.memory_count == 0) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","No memory bank structure found"); + FLUSH_OBJECT; + return; + } + + for (int bank=0; bankdmi.memory_count;bank++) { + + if (hardware->dmi.memory[bank].filled == false) { + char msg[64]={0}; + snprintf(msg,sizeof(msg),"Bank %d doesn't contain any information", bank); + + CREATE_NEW_OBJECT; + add_s("dmi.warning",msg); + FLUSH_OBJECT; + continue; + } + + CREATE_NEW_OBJECT; + add_i("Memory Bank", bank); + add_s("dmi.memory.form_factor", hardware->dmi.memory[bank].form_factor); + add_s("dmi.memory.type", hardware->dmi.memory[bank].type); + add_s("dmi.memory.type_detail", hardware->dmi.memory[bank].type_detail); + add_s("dmi.memory.speed", hardware->dmi.memory[bank].speed); + add_s("dmi.memory.size", hardware->dmi.memory[bank].size); + add_s("dmi.memory.device_set", hardware->dmi.memory[bank].device_set); + add_s("dmi.memory.device_locator", hardware->dmi.memory[bank].device_locator); + add_s("dmi.memory.bank_locator", hardware->dmi.memory[bank].bank_locator); + add_s("dmi.memory.total_width", hardware->dmi.memory[bank].total_width); + add_s("dmi.memory.data_width", hardware->dmi.memory[bank].data_width); + add_s("dmi.memory.error", hardware->dmi.memory[bank].error); + add_s("dmi.memory.vendor", hardware->dmi.memory[bank].manufacturer); + add_s("dmi.memory.serial", hardware->dmi.memory[bank].serial); + add_s("dmi.memory.asset_tag", hardware->dmi.memory[bank].asset_tag); + add_s("dmi.memory.part_number", hardware->dmi.memory[bank].part_number); + FLUSH_OBJECT; + } +} + +void dump_processor(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + if (hardware->dmi.processor.filled == false) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","no processor structure found"); + FLUSH_OBJECT; + return; + } + + char voltage[16]={0}; + snprintf(voltage,sizeof(voltage),"%d.%02d", + hardware->dmi.processor.voltage_mv / 1000, + hardware->dmi.processor.voltage_mv - ((hardware->dmi.processor.voltage_mv / 1000) * 1000)); + + CREATE_NEW_OBJECT; + add_s("dmi.item","processor"); + add_hs(dmi.processor.socket_designation); + add_hs(dmi.processor.type); + add_hs(dmi.processor.family); + add_hs(dmi.processor.manufacturer); + add_hs(dmi.processor.version); + add_hi(dmi.processor.external_clock); + add_hi(dmi.processor.max_speed); + add_hi(dmi.processor.current_speed); + add_hi(dmi.processor.signature.type); + add_hi(dmi.processor.signature.family); + add_hi(dmi.processor.signature.model); + add_hi(dmi.processor.signature.stepping); + add_hi(dmi.processor.signature.minor_stepping); + add_s("dmi.processor.voltage",voltage); + add_hs(dmi.processor.status); + add_hs(dmi.processor.upgrade); + add_hs(dmi.processor.cache1); + add_hs(dmi.processor.cache2); + add_hs(dmi.processor.cache3); + add_hs(dmi.processor.serial); + add_hs(dmi.processor.part_number); + add_hi(dmi.processor.core_count); + add_hi(dmi.processor.core_enabled); + add_hi(dmi.processor.thread_count); + add_hs(dmi.processor.id); + for (int i = 0; i < PROCESSOR_FLAGS_ELEMENTS; i++) { + if (((bool *) (&hardware->dmi.processor.cpu_flags))[i] == true) { + add_s("dmi.processor.flag",(char *)cpu_flags_strings[i]); + } + } + FLUSH_OBJECT; +} + +void dump_battery(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + if (hardware->dmi.battery.filled == false) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","no battery structure found"); + FLUSH_OBJECT; + return; + } + + CREATE_NEW_OBJECT; + add_s("dmi.item","battery"); + add_hs(dmi.battery.manufacturer); + add_hs(dmi.battery.manufacture_date); + add_hs(dmi.battery.serial); + add_hs(dmi.battery.name); + add_hs(dmi.battery.chemistry); + add_hs(dmi.battery.design_capacity); + add_hs(dmi.battery.design_voltage); + add_hs(dmi.battery.sbds); + add_hs(dmi.battery.sbds_manufacture_date); + add_hs(dmi.battery.sbds_chemistry); + add_hs(dmi.battery.maximum_error); + add_hs(dmi.battery.oem_info); + FLUSH_OBJECT; +} + +void dump_ipmi(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + if (hardware->dmi.ipmi.filled == false) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","no IPMI structure found"); + FLUSH_OBJECT; + return; + } + + char spec_ver[16]={0}; + char i2c[16]={0}; + char base[16]={0}; + snprintf(spec_ver,sizeof(spec_ver),"%u.%u", + hardware->dmi.ipmi.major_specification_version, + hardware->dmi.ipmi.minor_specification_version); + + snprintf(i2c,sizeof(i2c),"0x%02x", hardware->dmi.ipmi.I2C_slave_address); + snprintf(base,sizeof(base),"%08X%08X", + (uint32_t)(hardware->dmi.ipmi.base_address >> 32), + (uint32_t)((hardware->dmi.ipmi.base_address & 0xFFFF) & ~1)); + + CREATE_NEW_OBJECT; + add_s("dmi.item","ipmi"); + add_hs(dmi.ipmi.interface_type); + add_s("dmi.ipmi.spec_version",spec_ver); + add_hi(dmi.ipmi.I2C_slave_address); + add_hi(dmi.ipmi.nv_address); + add_s("dmi.ipmi.base_address",base); + add_hi(dmi.ipmi.irq); + FLUSH_OBJECT; +} + +void dump_chassis(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + if (hardware->dmi.chassis.filled == false) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","no chassis structure found"); + FLUSH_OBJECT; + return; + } + + CREATE_NEW_OBJECT; + add_s("dmi.item","bios"); + add_hs(dmi.chassis.manufacturer); + add_hs(dmi.chassis.type); + add_hs(dmi.chassis.lock); + add_hs(dmi.chassis.version); + add_hs(dmi.chassis.serial); + add_s("dmi.chassis.asset_tag",del_multi_spaces(hardware->dmi.chassis.asset_tag)); + add_hs(dmi.chassis.boot_up_state); + add_hs(dmi.chassis.power_supply_state); + add_hs(dmi.chassis.thermal_state); + add_hs(dmi.chassis.security_status); + add_hs(dmi.chassis.oem_information); + add_hi(dmi.chassis.height); + add_hi(dmi.chassis.nb_power_cords); + FLUSH_OBJECT; +} + +void dump_bios(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + if (hardware->dmi.bios.filled == false) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","no bios structure found"); + FLUSH_OBJECT; + return; + } + char address[16]={0}; + char runtime[16]={0}; + char rom[16]={0}; + snprintf(address,sizeof(address),"0x%04X0",hardware->dmi.bios.address); + snprintf(runtime,sizeof(runtime),"%u %s",hardware->dmi.bios.runtime_size, hardware->dmi.bios.runtime_size_unit); + snprintf(rom,sizeof(rom),"%u %s",hardware->dmi.bios.rom_size, hardware->dmi.bios.rom_size_unit); + + CREATE_NEW_OBJECT; + add_s("dmi.item","bios"); + add_hs(dmi.bios.vendor); + add_hs(dmi.bios.version); + add_hs(dmi.bios.release_date); + add_hs(dmi.bios.bios_revision); + add_hs(dmi.bios.firmware_revision); + add_s("dmi.bios.address",address); + add_s("dmi.bios.runtime_size",runtime); + add_s("dmi.bios.rom_size",rom); + for (int i = 0; i < BIOS_CHAR_NB_ELEMENTS; i++) { + if (((bool *) (&hardware->dmi.bios.characteristics))[i] == true) { + add_s("dmi.bios.characteristics",(char *)bios_charac_strings[i]); + } + } + + for (int i = 0; i < BIOS_CHAR_X1_NB_ELEMENTS; i++) { + if (((bool *) (&hardware->dmi.bios.characteristics_x1))[i] == true) { + add_s("dmi.bios.characteristics",(char *)bios_charac_x1_strings[i]); + } + } + + for (int i = 0; i < BIOS_CHAR_X2_NB_ELEMENTS; i++) { + if (((bool *) (&hardware->dmi.bios.characteristics_x2))[i] == true) { + add_s("dmi.bios.characteristics",(char *)bios_charac_x2_strings[i]); + } + } + FLUSH_OBJECT; +} + +void dump_system(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + if (hardware->dmi.system.filled == false) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","no system structure found"); + FLUSH_OBJECT; + return; + } + char system_reset_status[10]={0}; + char watchdog_timer[15]={0}; + snprintf(system_reset_status,sizeof(system_reset_status),"%s", (hardware->dmi.system.system_reset.status ? "Enabled" :"Disabled")); + snprintf(watchdog_timer,sizeof(watchdog_timer),"%s", (hardware->dmi.system.system_reset.watchdog ? "Present" :"Not Present")); + + CREATE_NEW_OBJECT; + add_s("dmi.item","system"); + add_hs(dmi.system.manufacturer); + add_hs(dmi.system.product_name); + add_hs(dmi.system.version); + add_hs(dmi.system.serial); + add_hs(dmi.system.uuid); + add_hs(dmi.system.wakeup_type); + add_hs(dmi.system.sku_number); + add_hs(dmi.system.family); + add_hs(dmi.system.configuration_options); + add_s("dmi.system.system_reset.status",system_reset_status); + add_s("dmi.system.system_reset.watchdog",watchdog_timer); + add_hs(dmi.system.system_reset.boot_option); + add_hs(dmi.system.system_reset.boot_option_on_limit); + add_hs(dmi.system.system_reset.reset_count); + add_hs(dmi.system.system_reset.reset_limit); + add_hs(dmi.system.system_reset.timer_interval); + add_hs(dmi.system.system_reset.timeout); + add_hs(dmi.system.system_boot_status); + FLUSH_OBJECT; +} + +void dump_base_board(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + if (hardware->dmi.base_board.filled == false) { + CREATE_NEW_OBJECT; + add_s("dmi.warning","no base_board structure found"); + FLUSH_OBJECT; + return; + } + + CREATE_NEW_OBJECT; + add_s("dmi.item","base_board"); + add_hs(dmi.base_board.manufacturer); + add_hs(dmi.base_board.product_name); + add_hs(dmi.base_board.version); + add_hs(dmi.base_board.serial); + add_hs(dmi.base_board.asset_tag); + add_hs(dmi.base_board.location); + add_hs(dmi.base_board.type); + for (int i = 0; i < BASE_BOARD_NB_ELEMENTS; i++) { + if (((bool *) (&hardware->dmi.base_board.features))[i] == true) { + add_s("dmi.base_board.features",(char *)base_board_features_strings[i]); + } + } + + for (unsigned int i = 0; i < sizeof hardware->dmi.base_board.devices_information / + sizeof *hardware->dmi.base_board.devices_information; i++) { + if (strlen(hardware->dmi.base_board.devices_information[i].type)) { + add_s("dmi.base_board.devices_information.type", hardware->dmi.base_board.devices_information[i].type); + add_i("dmi.base_board.devices_information.status", hardware->dmi.base_board.devices_information[i].status); + add_s("dmi.base_board.devices_information.description", hardware->dmi.base_board.devices_information[i].description); + } + } + FLUSH_OBJECT; +} + +void dump_dmi(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + CREATE_NEW_OBJECT; + add_hb(is_dmi_valid); + + if (hardware->is_dmi_valid == false) { + FLUSH_OBJECT; + goto exit; + } else { + char buffer[8]={0}; + snprintf(buffer,sizeof(buffer),"%d.%d",hardware->dmi.dmitable.major_version, hardware->dmi.dmitable.minor_version); + add_s("dmi.version",buffer); + FLUSH_OBJECT; + } + + dump_base_board(hardware,config,item); + dump_system(hardware,config,item); + dump_bios(hardware,config,item); + dump_chassis(hardware,config,item); + dump_ipmi(hardware,config,item); + dump_battery(hardware,config,item); + dump_processor(hardware,config,item); + dump_cache(hardware,config,item); + dump_memory_banks(hardware,config,item); + dump_memory_modules(hardware,config,item); + dump_memory_size(hardware,config,item); + dump_oem_strings(hardware,config,item); + dump_hardware_security(hardware,config,item); +exit: + to_cpio("dmi"); +} diff --git a/com32/hdt/hdt-dump-hdt.c b/com32/hdt/hdt-dump-hdt.c new file mode 100644 index 0000000..d081ebd --- /dev/null +++ b/com32/hdt/hdt-dump-hdt.c @@ -0,0 +1,50 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" +#include + +void dump_hdt(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + (void) hardware; + CREATE_NEW_OBJECT; + add_s("hdt.product_name",PRODUCT_NAME); + add_s("hdt.version",VERSION); + add_s("hdt.code_name",CODENAME); + add_s("hdt.author", AUTHOR); + add_s("hdt.core_developer", CORE_DEVELOPER); + char *contributors[NB_CONTRIBUTORS] = CONTRIBUTORS; + for (int c = 0; c < NB_CONTRIBUTORS; c++) { + add_s("hdt.contributor", contributors[c]); + } + add_s("hdt.website",WEBSITE_URL); + add_s("hdt.irc_channel",IRC_CHANNEL); + FLUSH_OBJECT + to_cpio("hdt"); +} diff --git a/com32/hdt/hdt-dump-kernel.c b/com32/hdt/hdt-dump-kernel.c new file mode 100644 index 0000000..e0df832 --- /dev/null +++ b/com32/hdt/hdt-dump-kernel.c @@ -0,0 +1,69 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" + +void dump_kernel(struct s_hardware *hardware, ZZJSON_CONFIG * config, + ZZJSON ** item) +{ + struct pci_device *pci_device = NULL; + CREATE_ARRAY + add_as("Linux Kernel modules", "") + END_OF_ARRAY; + + if (hardware->pci_ids_return_code == -ENOPCIIDS) { + APPEND_ARRAY + add_as("Error", "No pci.ids file") + END_OF_APPEND FLUSH_OBJECT; + return; + } + + if ((hardware->modules_pcimap_return_code == -ENOMODULESPCIMAP) + &&(hardware->modules_pcimap_return_code == -ENOMODULESALIAS)) { + APPEND_ARRAY + add_as("Error", "No modules.pcimap or modules.alias file") + END_OF_APPEND FLUSH_OBJECT; + return; + + } + + /* For every detected pci device, compute its submenu */ + for_each_pci_func(pci_device, hardware->pci_domain) { + if (pci_device == NULL) + continue; + for (int kmod = 0; + kmod < pci_device->dev_info->linux_kernel_module_count; kmod++) { + APPEND_ARRAY + add_as(pci_device->dev_info->category_name, pci_device->dev_info->linux_kernel_module[kmod]) + END_OF_APPEND; + } + } + FLUSH_OBJECT; + to_cpio("kernel"); +} diff --git a/com32/hdt/hdt-dump-memory.c b/com32/hdt/hdt-dump-memory.c new file mode 100644 index 0000000..5095d3c --- /dev/null +++ b/com32/hdt/hdt-dump-memory.c @@ -0,0 +1,133 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 +#include "hdt-common.h" +#include "hdt-dump.h" + +void dump_88(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + (void) hardware; + int mem_size = 0; + CREATE_NEW_OBJECT; + if (detect_memory_88(&mem_size)) { + add_s("memory.error","8800h memory configuration is invalid"); + FLUSH_OBJECT + return; + } + + add_s("dmi.item","memory via 88"); + add_i("memory.size (KiB)", mem_size); + add_i("memory.size (MiB)", mem_size >> 10); + FLUSH_OBJECT; +} + +void dump_e801(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + (void) hardware; + int mem_low, mem_high = 0; + CREATE_NEW_OBJECT; + if (detect_memory_e801(&mem_low,&mem_high)) { + add_s("memory.error","e801 memory configuration is invalid"); + FLUSH_OBJECT; + return; + } + + add_s("dmi.item","memory via e801"); + add_i("memory.total.size (KiB)", mem_low + (mem_high << 6)); + add_i("memory.total.size (MiB)", (mem_low >> 10) + (mem_high >> 4)); + add_i("memory.low.size (KiB)", mem_low ); + add_i("memory.low.size (MiB)", mem_low >> 10); + add_i("memory.high.size (KiB)", mem_high << 6); + add_i("memory.high.size (MiB)", mem_high >> 4); + FLUSH_OBJECT; + +} +void dump_e820(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + (void) hardware; + struct e820entry map[E820MAX]; + struct e820entry nm[E820MAX]; + unsigned long memsize = 0; + int count = 0; + char type[14] = {0}; + + detect_memory_e820(map, E820MAX, &count); + memsize = memsize_e820(map, count); + + CREATE_NEW_OBJECT; + add_s("dmi.item","memory via e820"); + add_i("memory.total.size (KiB)", memsize); + add_i("memory.total.size (MiB)", (memsize + (1 << 9)) >> 10); + FLUSH_OBJECT; + + for (int i = 0; i < count; i++) { + get_type(map[i].type, type, sizeof(type)); + char begin[24]={0}; + char size[24]={0}; + char end[24]={0}; + snprintf(begin,sizeof(begin),"0x%016llx",map[i].addr); + snprintf(size,sizeof(size),"0x%016llx",map[i].size); + snprintf(end,sizeof(end),"0x%016llx",map[i].addr+map[i].size); + CREATE_NEW_OBJECT; + add_s("memory.segment.start",begin); + add_s("memory.segment.size ",size); + add_s("memory.segment.end ",end); + add_s("memory.segment.type ",remove_spaces(type)); + FLUSH_OBJECT; + } + + int nr = sanitize_e820_map(map, nm, count); + for (int i = 0; i < nr; i++) { + get_type(nm[i].type, type, sizeof(type)); + char begin[24]={0}; + char size[24]={0}; + char end[24]={0}; + snprintf(begin,sizeof(begin),"0x%016llx",nm[i].addr); + snprintf(size,sizeof(size),"0x%016llx",nm[i].size); + snprintf(end,sizeof(end),"0x%016llx",nm[i].addr+nm[i].size); + CREATE_NEW_OBJECT; + add_s("sanitized_memory.segment.start",begin); + add_s("sanitized_memory.segment.size ",size); + add_s("sanitized_memory.segment.end ",end); + add_s("sanitized_memory.segment.type ",remove_spaces(type)); + FLUSH_OBJECT; + } +} + +void dump_memory(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + CREATE_NEW_OBJECT; + add_s("Memory configuration","true"); + FLUSH_OBJECT; + + dump_88(hardware,config,item); + dump_e801(hardware,config,item); + dump_e820(hardware,config,item); + to_cpio("memory"); +} diff --git a/com32/hdt/hdt-dump-pci.c b/com32/hdt/hdt-dump-pci.c new file mode 100644 index 0000000..b1f18fd --- /dev/null +++ b/com32/hdt/hdt-dump-pci.c @@ -0,0 +1,136 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" + +void dump_pci(struct s_hardware *hardware, ZZJSON_CONFIG * config, + ZZJSON ** item) +{ + int i = 1; + struct pci_device *pci_device=NULL; + char kernel_modules[LINUX_KERNEL_MODULE_SIZE * + MAX_KERNEL_MODULES_PER_PCI_DEVICE]; + bool nopciids = false; + bool nomodulespcimap = false; + bool nomodulesalias = false; + bool nomodulesfile = false; + int bus = 0, slot = 0, func = 0; + + if (hardware->pci_ids_return_code == -ENOPCIIDS) { + nopciids = true; + } + if (hardware->modules_pcimap_return_code == -ENOMODULESPCIMAP) { + nomodulespcimap = true; + } + if (hardware->modules_pcimap_return_code == -ENOMODULESALIAS) { + nomodulesalias = true; + } + + nomodulesfile = nomodulespcimap && nomodulesalias; + + CREATE_NEW_OBJECT; + + add_i("pci_device.count", hardware->nb_pci_devices); + + FLUSH_OBJECT; + /* For every detected pci device, compute its submenu */ + for_each_pci_func(pci_device, hardware->pci_domain) { + if (pci_device == NULL) + continue; + char v[10] = { 0 }; + char sv[10] = { 0 }; + char p[10] = { 0 }; + char sp[10] = { 0 }; + char c[10] = { 0 }; + char r[10] = { 0 }; + + CREATE_NEW_OBJECT; + bus = __pci_bus; + slot = __pci_slot; + func = __pci_func; + + memset(kernel_modules, 0, sizeof kernel_modules); + for (int kmod = 0; + kmod < pci_device->dev_info->linux_kernel_module_count; kmod++) { + if (kmod > 0) { + strncat(kernel_modules, " | ", 3); + } + strncat(kernel_modules, + pci_device->dev_info->linux_kernel_module[kmod], + LINUX_KERNEL_MODULE_SIZE - 1); + } + if (pci_device->dev_info->linux_kernel_module_count == 0) + strlcpy(kernel_modules, "unknown", 7); + + add_i("pci_device.number", i); + if (nopciids == false) { + add_s("pci_device.vendor_name", pci_device->dev_info->vendor_name); + add_s("pci_device.product_name", + pci_device->dev_info->product_name); + } + if (nomodulesfile == false) { + add_s("pci_device.class_name", pci_device->dev_info->class_name); + add_s("pci_device.kernel_module", kernel_modules); + } + + snprintf(v, sizeof(v), "%04x", pci_device->vendor); + snprintf(p, sizeof(p), "%04x", pci_device->product); + snprintf(sv, sizeof(sv), "%04x", pci_device->sub_vendor); + snprintf(sp, sizeof(sp), "%04x", pci_device->sub_product); + snprintf(c, sizeof(c), "%02x.%02x.%02x", + pci_device->class[2], + pci_device->class[1], pci_device->class[0]); + snprintf(r, sizeof(r), "%02x", pci_device->revision); + add_s("pci_device.vendor_id", v); + add_s("pci_device.product_id", p); + add_s("pci_device.sub_vendor_id", sv); + add_s("pci_device.sub_product_id", sp); + add_s("pci_device.class_id", c); + add_s("pci_device.revision", r); + if ((pci_device->dev_info->irq > 0) + && (pci_device->dev_info->irq < 255)) + add_i("pci_device.irq", pci_device->dev_info->irq); + + add_i("pci_device.latency", pci_device->dev_info->latency); + add_i("pci_device.bus", bus); + add_i("pci_device.slot", slot); + add_i("pci_device.func", func); + + if (hardware->is_pxe_valid == true) { + if ((hardware->pxe.pci_device != NULL) + && (hardware->pxe.pci_device == pci_device)) { + add_hs(pxe.mac_addr); + add_s("pxe", "Current boot device"); + } + } + i++; + FLUSH_OBJECT; + } + to_cpio("pci"); +} diff --git a/com32/hdt/hdt-dump-pxe.c b/com32/hdt/hdt-dump-pxe.c new file mode 100644 index 0000000..4e25c94 --- /dev/null +++ b/com32/hdt/hdt-dump-pxe.c @@ -0,0 +1,80 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" +#include +#include + +void dump_pxe(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + struct in_addr in; + + CREATE_NEW_OBJECT; + add_hb(is_pxe_valid); + if (hardware->is_pxe_valid) { + char buffer[32] = {0}; + snprintf(buffer,sizeof(buffer),"0x%x",hardware->pxe.vendor_id); + add_s("pxe.vendor_id",buffer); + snprintf(buffer,sizeof(buffer),"0x%x",hardware->pxe.product_id); + add_s("pxe.product_id",buffer); + snprintf(buffer,sizeof(buffer),"0x%x",hardware->pxe.subvendor_id); + add_s("pxe.subvendor_id",buffer); + snprintf(buffer,sizeof(buffer),"0x%x",hardware->pxe.subproduct_id); + add_s("pxe.subproduct_id",buffer); + + if (hardware->pci_ids_return_code == -ENOPCIIDS || (hardware->pxe.pci_device == NULL)) { + add_s("Manufacturer_name","no_pci_ids_file or no device found"); + add_s("Product_name","no_pci_ids_file or no device found"); + } else { + add_s("Manufacturer_name", hardware->pxe.pci_device->dev_info->vendor_name); + add_s("Product_name", hardware->pxe.pci_device->dev_info->product_name); + } + + add_hi(pxe.rev); + add_hi(pxe.pci_bus); + add_hi(pxe.pci_dev); + add_hi(pxe.pci_func); + add_hi(pxe.base_class); + add_hi(pxe.sub_class); + add_hi(pxe.prog_intf); + add_hi(pxe.nictype); + add_hs(pxe.mac_addr); + + in.s_addr = hardware->pxe.dhcpdata.cip; + add_s("pxe.client_ip", inet_ntoa(in)); + in.s_addr = hardware->pxe.dhcpdata.sip; + add_s("pxe.next_server_ip",inet_ntoa(in)); + in.s_addr = hardware->pxe.dhcpdata.gip; + add_s("pxe.relay_agent_ip",inet_ntoa(in)); + memcpy(&in, hardware->pxe.ip_addr, sizeof in); + add_s("pxe.ipaddr",inet_ntoa(in)); + add_b("gpxe_detected",is_gpxe()); + } + FLUSH_OBJECT; + to_cpio("pxe"); +} diff --git a/com32/hdt/hdt-dump-syslinux.c b/com32/hdt/hdt-dump-syslinux.c new file mode 100644 index 0000000..7cef925 --- /dev/null +++ b/com32/hdt/hdt-dump-syslinux.c @@ -0,0 +1,43 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" +#include + +void dump_syslinux(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + CREATE_NEW_OBJECT; + add_hs(syslinux_fs); + add_hs(sv->version_string); + add_hi(sv->version); + add_hi(sv->max_api); + add_hs(sv->copyright_string); + FLUSH_OBJECT + to_cpio("syslinux"); +} diff --git a/com32/hdt/hdt-dump-vesa.c b/com32/hdt/hdt-dump-vesa.c new file mode 100644 index 0000000..97d56c9 --- /dev/null +++ b/com32/hdt/hdt-dump-vesa.c @@ -0,0 +1,67 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" +#include + +void dump_vesa(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + CREATE_NEW_OBJECT; + add_hb(is_vesa_valid); + if (hardware->is_vesa_valid) { + char buffer[64]={0}; + snprintf(buffer,sizeof(buffer),"%d.%d", hardware->vesa.major_version, hardware->vesa.minor_version); + add_s("vesa.version",buffer); + add_hs(vesa.vendor); + add_hs(vesa.product); + add_hs(vesa.product_revision); + add_hi(vesa.software_rev); + memset(buffer,0,sizeof(buffer)); + snprintf(buffer,sizeof(buffer),"%d KB",hardware->vesa.total_memory*64); + add_s("vesa.memory",buffer); + add_i("vesa.modes",hardware->vesa.vmi_count); + FLUSH_OBJECT; + for (int i = 0; i < hardware->vesa.vmi_count; i++) { + struct vesa_mode_info *mi = &hardware->vesa.vmi[i].mi; + if ((mi->h_res == 0) || (mi->v_res == 0)) + continue; + CREATE_NEW_OBJECT; + memset(buffer,0,sizeof(buffer)); + snprintf(buffer,sizeof(buffer),"0x%04x",hardware->vesa.vmi[i].mode + 0x200); + add_s("vesa.kernel_mode",buffer); + add_i("vesa.hres",mi->h_res); + add_i("vesa.vres",mi->v_res); + add_i("vesa.bpp",mi->bpp); + FLUSH_OBJECT; + } + } else { + FLUSH_OBJECT; + } + to_cpio("vesa"); +} diff --git a/com32/hdt/hdt-dump-vpd.c b/com32/hdt/hdt-dump-vpd.c new file mode 100644 index 0000000..36451c8 --- /dev/null +++ b/com32/hdt/hdt-dump-vpd.c @@ -0,0 +1,47 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 "hdt-common.h" +#include "hdt-dump.h" + +void dump_vpd(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item) { + + CREATE_NEW_OBJECT; + add_hb(is_vpd_valid); + if (hardware->is_vpd_valid) { + add_hs(vpd.bios_build_id); + add_hs(vpd.bios_release_date); + add_hs(vpd.bios_version); + add_hs(vpd.default_flash_filename); + add_hs(vpd.box_serial_number); + add_hs(vpd.motherboard_serial_number); + add_hs(vpd.machine_type_model); + } + FLUSH_OBJECT; + to_cpio("vpd"); +} diff --git a/com32/hdt/hdt-dump.c b/com32/hdt/hdt-dump.c new file mode 100644 index 0000000..8c22140 --- /dev/null +++ b/com32/hdt/hdt-dump.c @@ -0,0 +1,169 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 +#include +#include +#include +#include +#include +#include "hdt-common.h" +#include "hdt-dump.h" + +struct print_buf p_buf; + +void compute_filename(struct s_hardware *hardware, char *filename, int size) { + + snprintf(filename,size,"%s/",hardware->dump_path); + + if (hardware->is_pxe_valid) { + strncat(filename, hardware->pxe.mac_addr, sizeof(hardware->pxe.mac_addr)); + strncat(filename, "+", 1); + } + + if (hardware->is_dmi_valid) { + strncat(filename, remove_spaces(hardware->dmi.system.product_name), sizeof(hardware->dmi.system.manufacturer)); + strncat(filename, "+", 1); + strncat(filename, remove_spaces(hardware->dmi.system.manufacturer), sizeof(hardware->dmi.system.product_name)); + } + + /* We replace the ":" in the filename by some "-" + * This will avoid Microsoft FS turning crazy */ + chrreplace(filename,':','-'); + + /* Avoid space to make filename easier to manipulate */ + chrreplace(filename,' ','_'); + +} + +int dumpprintf(FILE *p, const char *format, ...) { + va_list ap; + int rv; + + (void) p; + va_start(ap, format); + rv = vbufprintf(&p_buf,format, ap); + va_end(ap); + return rv; +} + +void to_cpio(char *filename) { + cpio_writefile(upload,filename,p_buf.buf,p_buf.len); + if ((p_buf.buf) && (p_buf.len > 0)){ + memset(p_buf.buf,0,p_buf.len); + free(p_buf.buf); + p_buf.buf=NULL; + p_buf.size=0; + p_buf.len=0; + } +} + +void flush (ZZJSON_CONFIG *config, ZZJSON ** item) { + zzjson_print(config, *item); + zzjson_free(config, *item); + *item=NULL; +} + +/** + * dump - dump info + **/ +void dump(struct s_hardware *hardware) +{ + if (hardware->is_pxe_valid==false) { + printf("PXE stack was not detected, Dump feature is not available\n"); + return; + } + + const union syslinux_derivative_info *sdi = syslinux_derivative_info(); + int err=0; + ZZJSON *json = NULL; + ZZJSON_CONFIG config = { ZZJSON_VERY_STRICT, NULL, + (int(*)(void*)) fgetc, + NULL, + malloc, calloc, free, realloc, + stderr, NULL, stdout, + (int(*)(void *,const char*,...)) dumpprintf, + (int(*)(int,void*)) fputc + }; + + memset(&p_buf,0,sizeof(p_buf)); + + /* By now, we only support TFTP reporting */ + upload=&upload_tftp; + upload->name="tftp"; + + /* The following defines the behavior of the reporting */ + char *arg[64]; + char filename[512]={0}; + compute_filename(hardware, filename, sizeof(filename)); + + /* The filename */ + arg[0] = filename; + /* The server to upload the file */ + if (strlen(hardware->tftp_ip) != 0) { + arg[1] = hardware->tftp_ip; + arg[2] = NULL; + } else { + arg[1] = NULL; + snprintf(hardware->tftp_ip, sizeof(hardware->tftp_ip), + "%u.%u.%u.%u", + ((uint8_t *)&sdi->pxe.ipinfo->serverip)[0], + ((uint8_t *)&sdi->pxe.ipinfo->serverip)[1], + ((uint8_t *)&sdi->pxe.ipinfo->serverip)[2], + ((uint8_t *)&sdi->pxe.ipinfo->serverip)[3]); + + } + + /* We initiate the cpio to send */ + cpio_init(upload,(const char **)arg); + + dump_cpu(hardware, &config, &json); + dump_pxe(hardware, &config, &json); + dump_syslinux(hardware, &config, &json); + dump_vpd(hardware, &config, &json); + dump_vesa(hardware, &config, &json); + dump_disks(hardware, &config, &json); + dump_dmi(hardware, &config, &json); + dump_memory(hardware, &config, &json); + dump_pci(hardware, &config, &json); + dump_acpi(hardware, &config, &json); + dump_kernel(hardware, &config, &json); + dump_hdt(hardware, &config, &json); + + /* We close & flush the file to send */ + cpio_close(upload); + + if ((err=flush_data(upload)) != TFTP_OK) { + /* As we manage a tftp connection, let's display the associated error message */ + more_printf("Dump failed !\n"); + more_printf("TFTP ERROR on : %s:/%s \n",hardware->tftp_ip, filename); + more_printf("TFTP ERROR msg : %s \n",tftp_string_error_message[-err]); + } else { + more_printf("Dump file sent at %s:/%s\n",hardware->tftp_ip, filename); + } +} diff --git a/com32/hdt/hdt-dump.h b/com32/hdt/hdt-dump.h new file mode 100644 index 0000000..f9669da --- /dev/null +++ b/com32/hdt/hdt-dump.h @@ -0,0 +1,85 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 20011 Erwan Velu - 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 +#include +#include +#include +#include +#include +#include "hdt-common.h" + +// Macros to manipulate Arrays +#define APPEND_ARRAY ZZJSON *temp_array; temp_array = zzjson_array_append(config, *item, zzjson_create_object(config, +#define APPEND_OBJECT_ARRAY(value) ZZJSON *temp_ar; temp_ar = zzjson_array_append(config, *item, value); *item=temp_ar; +#define CREATE_ARRAY *item = zzjson_create_array(config, zzjson_create_object(config, +#define add_ai(name,value) name,zzjson_create_number_i(config,value), +#define add_ahi(value) add_ai(#value,hardware->value) +#define add_as(name,value) name,zzjson_create_string(config,value), +#define add_ahs(value) add_as(#value,hardware->value) +#define END_OF_ARRAY NULL),NULL) +#define END_OF_APPEND NULL)); *item=temp_array; + +// Macros to manipulate objects +#define CREATE_NEW_OBJECT *item = zzjson_create_object(config, NULL); +#define FLUSH_OBJECT flush(config, item); + +// Macros to manipulate integers as objects +#define add_i(name,value) *item = zzjson_object_append(config, *item, name, zzjson_create_number_i(config, value)) +#define add_hi(value) add_i(#value,hardware->value) + +// Macros to manipulate strings as objects +#define add_s(name,value) *item = zzjson_object_append(config, *item, name, zzjson_create_string(config, value)) +#define add_hs(value) add_s(#value,(char *)hardware->value) + +// Macros to manipulate bool as objects +#define add_bool_true(name) *item = zzjson_object_append(config, *item, (char *)name, zzjson_create_true(config)) +#define add_bool_false(name) *item = zzjson_object_append(config, *item, (char*)name, zzjson_create_false(config)) +#define add_b(name,value) if (value==true) {add_bool_true(name);} else {add_bool_false(name);} +#define add_hb(value) add_b(#value,hardware->value) + +extern struct print_buf p_buf; + +void print_and_flush(ZZJSON_CONFIG *config, ZZJSON **item); +int dumpprintf(FILE *p, const char *format, ...); +void flush (ZZJSON_CONFIG *config, ZZJSON ** item); +void to_cpio(char *filename); + +void dump_cpu(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_pxe(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_syslinux(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_vpd(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_vesa(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_disks(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_dmi(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_memory(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_pci(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_acpi(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_kernel(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump_hdt(struct s_hardware *hardware, ZZJSON_CONFIG *config, ZZJSON **item); +void dump(struct s_hardware *hardware); diff --git a/com32/hdt/hdt-menu-acpi.c b/com32/hdt/hdt-menu-acpi.c index 16bcf73..8e0ba18 100644 --- a/com32/hdt/hdt-menu-acpi.c +++ b/com32/hdt/hdt-menu-acpi.c @@ -32,7 +32,7 @@ void compute_table(struct s_my_menu *menu, void *address, s_acpi_description_hea char buffer[SUBMENULEN + 1] = { 0 }; char statbuffer[STATLEN + 1] = { 0 }; - snprintf(buffer, sizeof buffer, "%-4s v%03x %-6s %-7s %-7s %08x", + snprintf(buffer, sizeof buffer, "%-4s v%03x %-6s %-8s %-7s %08x", h->signature, h->revision, h->oem_id, h->oem_table_id, h->creator_id, h->creator_revision); snprintf(statbuffer, sizeof statbuffer, "%-4s v%03x %-6s %-7s 0x%08x %-4s 0x%08x @ 0x%p", h->signature, h->revision, h->oem_id, h->oem_table_id, @@ -52,7 +52,7 @@ static void compute_acpi_tables(struct s_my_menu *menu, char buffer[SUBMENULEN + 1] = { 0 }; - snprintf(buffer, sizeof buffer, "%-4s %-4s %-6s %-7s %-7s %-8s", + snprintf(buffer, sizeof buffer, "%-4s %-4s %-6s %-8s %-7s %-8s", "ACPI", "rev", "oem", "table_id", "creator", "creator_rev"); add_item(buffer, "Description", OPT_INACTIVE, NULL, 0); menu->items_count++; diff --git a/com32/hdt/hdt-menu-disk.c b/com32/hdt/hdt-menu-disk.c index b0b4a5a..0716b43 100644 --- a/com32/hdt/hdt-menu-disk.c +++ b/com32/hdt/hdt-menu-disk.c @@ -120,9 +120,9 @@ static void compute_partition_information(struct driveinfo *drive_info, add_item(buffer, statbuffer, OPT_INACTIVE, NULL, 0); } - snprintf(buffer, sizeof buffer, "Bootable : %s", + snprintf(buffer, sizeof buffer, "Boot Flag : %s", (ptab->active_flag == 0x80) ? "Yes" : "No"); - snprintf(statbuffer, sizeof statbuffer, "Bootable: %s", + snprintf(statbuffer, sizeof statbuffer, "Boot Flag: %s", (ptab->active_flag == 0x80) ? "Yes" : "No"); add_item(buffer, statbuffer, OPT_INACTIVE, NULL, 0); @@ -243,12 +243,12 @@ void compute_disks(struct s_hdt_menu *menu, struct s_hardware *hardware) if (hardware->disks_count == 0) return; - for (int i = 0; i < hardware->disks_count; i++) { - if (!hardware->disk_info[i].cbios) + for (int drive = 0x80; drive < 0xff; drive++) { + if (!hardware->disk_info[drive - 0x80].cbios) continue; /* Invalid geometry */ compute_disk_module ((struct s_my_menu *)&(menu->disk_sub_menu), nb_sub_disk_menu, - hardware, i); + hardware, drive - 0x80); nb_sub_disk_menu++; } diff --git a/com32/hdt/hdt-menu-pxe.c b/com32/hdt/hdt-menu-pxe.c index 426bfe0..12d8b11 100644 --- a/com32/hdt/hdt-menu-pxe.c +++ b/com32/hdt/hdt-menu-pxe.c @@ -34,7 +34,7 @@ void compute_PXE(struct s_my_menu *menu, struct s_hardware *hardware) { char buffer[SUBMENULEN + 1]; char infobar[STATLEN + 1]; - char gpxe[4]; + char gpxe[4]={0}; if (hardware->is_pxe_valid == false) return; @@ -113,8 +113,8 @@ void compute_PXE(struct s_my_menu *menu, struct s_hardware *hardware) add_item(buffer, infobar, OPT_INACTIVE, NULL, 0); menu->items_count++; - if (is_gpxe()) strcat(gpxe,"Yes"); - else strcat (gpxe,"No"); + if (is_gpxe()) snprintf(gpxe,sizeof(gpxe),"%s","Yes"); + else snprintf (gpxe, sizeof(gpxe), "%s", "No"); snprintf(buffer, sizeof buffer, "gPXE Detected: %s", gpxe); snprintf(infobar, sizeof infobar, "gPXE Detected: %s", gpxe); diff --git a/com32/hdt/hdt-menu.c b/com32/hdt/hdt-menu.c index 0fdee03..50b3eaa 100644 --- a/com32/hdt/hdt-menu.c +++ b/com32/hdt/hdt-menu.c @@ -62,6 +62,12 @@ int start_menu_mode(struct s_hardware *hardware, char *version_string) (curr->data, HDT_SWITCH_TO_CLI, sizeof(HDT_SWITCH_TO_CLI))) { return HDT_RETURN_TO_CLI; } + /* Tweak, we want to start the dump mode */ + if (!strncmp + (curr->data, HDT_DUMP, sizeof(HDT_DUMP))) { + dump(hardware); + return 0; + } if (!strncmp (curr->data, HDT_REBOOT, sizeof(HDT_REBOOT))) { syslinux_reboot(1); @@ -289,6 +295,12 @@ void compute_main_menu(struct s_hdt_menu *hdt_menu, struct s_hardware *hardware) add_item("Sitch to CLI", "Switch to Command Line", OPT_RUN, HDT_SWITCH_TO_CLI, 0); + + if (hardware->is_pxe_valid == true) { + add_item("ump to tftp", "Dump to tftp", OPT_RUN, + HDT_DUMP, 0); + } + add_item("bout", "About Menu", OPT_SUBMENU, NULL, hdt_menu->about_menu.menu); add_item("eboot", "Reboot", OPT_RUN, HDT_REBOOT, 0); diff --git a/com32/hdt/hdt.c32 b/com32/hdt/hdt.c32 index ca3835defeb4680d12a2c9f1a01d500359c61a4a..dd9f801e63ff1a78bce552343ea3ac8a7ca67dd2 100755 GIT binary patch literal 342452 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⪼J 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ë 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 z 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 CA%S54 delta 122428 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

C(y9Q5 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 E0W#GzLjV8( diff --git a/com32/hdt/hdt.h b/com32/hdt/hdt.h index dd48948..7b35236 100644 --- a/com32/hdt/hdt.h +++ b/com32/hdt/hdt.h @@ -33,8 +33,8 @@ #define AUTHOR "Erwan Velu" #define CORE_DEVELOPER "Pierre-Alexandre Meyer" #define CONTACT "hdt@zytor.com" -#define VERSION "0.4.1" -#define CODENAME "chouffe" +#define VERSION "0.5.0" +#define CODENAME "Van De Keizer" #define NB_CONTRIBUTORS 3 #define CONTRIBUTORS {"Sebastien Gonzalve (Patches)", "Gert Hulselmans (Tests)", "Alexander Andino (Design)"} #define WEBSITE_URL "http://hdt-project.org" diff --git a/com32/include/bitsize/stddef.h b/com32/include/bitsize/stddef.h index caa5e72..213e8ab 100644 --- a/com32/include/bitsize/stddef.h +++ b/com32/include/bitsize/stddef.h @@ -6,13 +6,9 @@ #define _BITSIZE_STDDEF_H #define _SIZE_T -#if defined(__s390__) || defined(__hppa__) || defined(__cris__) -typedef unsigned long size_t; -#else typedef unsigned int size_t; -#endif #define _PTRDIFF_T -typedef signed int ptrdiff_t; +typedef signed long ptrdiff_t; #endif /* _BITSIZE_STDDEF_H */ diff --git a/com32/include/bitsize/stdint.h b/com32/include/bitsize/stdint.h index 8cbfc5d..8e444b6 100644 --- a/com32/include/bitsize/stdint.h +++ b/com32/include/bitsize/stdint.h @@ -5,24 +5,24 @@ #ifndef _BITSIZE_STDINT_H #define _BITSIZE_STDINT_H -typedef signed char int8_t; -typedef short int int16_t; -typedef int int32_t; -typedef long long int int64_t; +typedef signed char int8_t; +typedef short int int16_t; +typedef int int32_t; +typedef long long int int64_t; -typedef unsigned char uint8_t; -typedef unsigned short int uint16_t; -typedef unsigned int uint32_t; -typedef unsigned long long int uint64_t; +typedef unsigned char uint8_t; +typedef unsigned short int uint16_t; +typedef unsigned int uint32_t; +typedef unsigned long long int uint64_t; -typedef int int_fast16_t; -typedef int int_fast32_t; +typedef int int_fast16_t; +typedef int int_fast32_t; -typedef unsigned int uint_fast16_t; -typedef unsigned int uint_fast32_t; +typedef unsigned int uint_fast16_t; +typedef unsigned int uint_fast32_t; -typedef int intptr_t; -typedef unsigned int uintptr_t; +typedef int intptr_t; +typedef unsigned int uintptr_t; #define __INT64_C(c) c ## LL #define __UINT64_C(c) c ## ULL @@ -31,4 +31,4 @@ typedef unsigned int uintptr_t; #define __PRIFAST_RANK "" #define __PRIPTR_RANK "" -#endif /* _BITSIZE_STDINT_H */ +#endif /* _BITSIZE_STDINT_H */ diff --git a/com32/include/bitsize/stdintconst.h b/com32/include/bitsize/stdintconst.h index 8157dd0..7db63bd 100644 --- a/com32/include/bitsize/stdintconst.h +++ b/com32/include/bitsize/stdintconst.h @@ -15,4 +15,4 @@ #define UINTPTR_C(c) UINT32_C(c) #define PTRDIFF_C(c) INT32_C(c) -#endif /* _BITSIZE_STDINTCONST_H */ +#endif /* _BITSIZE_STDINTCONST_H */ diff --git a/com32/include/bitsize/stdintlimits.h b/com32/include/bitsize/stdintlimits.h index b44fe01..d85094d 100644 --- a/com32/include/bitsize/stdintlimits.h +++ b/com32/include/bitsize/stdintlimits.h @@ -19,4 +19,4 @@ #define PTRDIFF_MIN INT32_MIN #define PTRDIFF_MAX INT32_MAX -#endif /* _BITSIZE_STDINTLIMITS_H */ +#endif /* _BITSIZE_STDINTLIMITS_H */ diff --git a/com32/include/bufprintf.h b/com32/include/bufprintf.h new file mode 100644 index 0000000..5cbeaa4 --- /dev/null +++ b/com32/include/bufprintf.h @@ -0,0 +1,10 @@ +#define BUFPAD 4096 + +struct print_buf { + char *buf; + size_t len; + size_t size; +}; + +int vbufprintf(struct print_buf *buf, const char *format, va_list ap); +int bufprintf(struct print_buf *buf, const char *format, ...); diff --git a/com32/include/cpufeature.h b/com32/include/cpufeature.h index df9dd3d..83263c2 100644 --- a/com32/include/cpufeature.h +++ b/com32/include/cpufeature.h @@ -7,7 +7,7 @@ #ifndef __ASM_I386_CPUFEATURE_H #define __ASM_I386_CPUFEATURE_H -#define NCAPINTS 7 /* N 32-bit words worth of info */ +#define NCAPINTS 9 /* N 32-bit words worth of info */ /* Intel-defined CPU features, CPUID level 0x00000001 (edx), word 0 */ #define X86_FEATURE_FPU (0*32+ 0) /* Onboard FPU */ diff --git a/com32/include/ctype.h b/com32/include/ctype.h index 83bbda1..6e0645e 100644 --- a/com32/include/ctype.h +++ b/com32/include/ctype.h @@ -117,5 +117,6 @@ __ctype_inline int tolower(int __c) } __extern char *skipspace(const char *p); +__extern void chrreplace(char *source, char old, char new); #endif /* _CTYPE_H */ diff --git a/com32/include/dprintf.h b/com32/include/dprintf.h index 30a21ad..b8a3b84 100644 --- a/com32/include/dprintf.h +++ b/com32/include/dprintf.h @@ -7,16 +7,30 @@ #ifdef DEBUG -#include +# include +# ifdef DEBUG_STDIO +# define dprintf printf +# define vdprintf vprintf +# else void dprintf(const char *, ...); void vdprintf(const char *, va_list); +# endif #else -#define dprintf(fmt, ...) ((void)(0)) -#define vdprintf(fmt, ap) ((void)(0)) +# define dprintf(fmt, ...) ((void)(0)) +# define vdprintf(fmt, ap) ((void)(0)) #endif /* DEBUG */ +# if DEBUG >= 2 +/* Really verbose debugging... */ +# define dprintf2 dprintf +# define vdprintf2 vdprintf +# else +# define dprintf2(fmt, ...) ((void)(0)) +# define vdprintf2(fmt, ap) ((void)(0)) +# endif + #endif /* _DPRINTF_H */ diff --git a/com32/include/netinet/in.h b/com32/include/netinet/in.h index ccf0475..d2af351 100644 --- a/com32/include/netinet/in.h +++ b/com32/include/netinet/in.h @@ -5,6 +5,7 @@ #include #include +#include #define __htons_macro(v) ((uint16_t) \ (((uint16_t)(v) << 8) | \ @@ -53,4 +54,6 @@ struct in_addr { in_addr_t s_addr; }; +__extern char *inet_ntoa(struct in_addr); + #endif /* _NETINET_IN_H */ diff --git a/com32/include/stdint.h b/com32/include/stdint.h index a8391bf..f64f027 100644 --- a/com32/include/stdint.h +++ b/com32/include/stdint.h @@ -5,138 +5,112 @@ #ifndef _STDINT_H #define _STDINT_H -/* Exact types */ +#include -typedef signed char int8_t; -typedef signed short int16_t; -typedef signed int int32_t; -typedef signed long long int64_t; +typedef int8_t int_least8_t; +typedef int16_t int_least16_t; +typedef int32_t int_least32_t; +typedef int64_t int_least64_t; -typedef unsigned char uint8_t; -typedef unsigned short uint16_t; -typedef unsigned int uint32_t; -typedef unsigned long long uint64_t; +typedef uint8_t uint_least8_t; +typedef uint16_t uint_least16_t; +typedef uint32_t uint_least32_t; +typedef uint64_t uint_least64_t; -/* Small types */ +typedef int8_t int_fast8_t; +typedef int64_t int_fast64_t; -typedef signed char int_least8_t; -typedef signed short int_least16_t; -typedef signed int int_least32_t; -typedef signed long long int_least64_t; +typedef uint8_t uint_fast8_t; +typedef uint64_t uint_fast64_t; -typedef unsigned char uint_least8_t; -typedef unsigned short uint_least16_t; -typedef unsigned int uint_least32_t; -typedef unsigned long long uint_least64_t; +typedef int64_t intmax_t; +typedef uint64_t uintmax_t; -/* Fast types */ - -typedef signed char int_fast8_t; -typedef signed short int_fast16_t; -typedef signed int int_fast32_t; -typedef signed long long int_fast64_t; - -typedef unsigned char uint_fast8_t; -typedef unsigned short uint_fast16_t; -typedef unsigned int uint_fast32_t; -typedef unsigned long long uint_fast64_t; - -/* Pointer types */ - -typedef int32_t intptr_t; -typedef uint32_t uintptr_t; +#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) -/* Maximal types */ +#define INT8_MIN (-128) +#define INT16_MIN (-32768) +#define INT32_MIN (-2147483647-1) +#define INT64_MIN (__INT64_C(-9223372036854775807)-1) -typedef int64_t intmax_t; -typedef uint64_t uintmax_t; +#define INT8_MAX (127) +#define INT16_MAX (32767) +#define INT32_MAX (2147483647) +#define INT64_MAX (__INT64_C(9223372036854775807)) -/* - * To be strictly correct... - */ -#if !defined(__cplusplus) || defined(__STDC_LIMIT_MACROS) +#define UINT8_MAX (255U) +#define UINT16_MAX (65535U) +#define UINT32_MAX (4294967295U) +#define UINT64_MAX (__UINT64_C(18446744073709551615)) -# define INT8_MIN (-128) -# define INT16_MIN (-32767-1) -# define INT32_MIN (-2147483647-1) -# define INT64_MIN (-9223372036854775807LL-1) +#define INT_LEAST8_MIN INT8_MIN +#define INT_LEAST16_MIN INT16_MIN +#define INT_LEAST32_MIN INT32_MIN +#define INT_LEAST64_MIN INT64_MIN -# define INT8_MAX (127) -# define INT16_MAX (32767) -# define INT32_MAX (2147483647) -# define INT64_MAX (9223372036854775807LL) +#define INT_LEAST8_MAX INT8_MAX +#define INT_LEAST16_MAX INT16_MAX +#define INT_LEAST32_MAX INT32_MAX +#define INT_LEAST64_MAX INT64_MAX -# define UINT8_MAX (255U) -# define UINT16_MAX (65535U) -# define UINT32_MAX (4294967295U) -# define UINT64_MAX (18446744073709551615ULL) +#define UINT_LEAST8_MAX UINT8_MAX +#define UINT_LEAST16_MAX UINT16_MAX +#define UINT_LEAST32_MAX UINT32_MAX +#define UINT_LEAST64_MAX UINT64_MAX -# define INT_LEAST8_MIN (-128) -# define INT_LEAST16_MIN (-32767-1) -# define INT_LEAST32_MIN (-2147483647-1) -# define INT_LEAST64_MIN (-9223372036854775807LL-1) +#define INT_FAST8_MIN INT8_MIN +#define INT_FAST64_MIN INT64_MIN -# define INT_LEAST8_MAX (127) -# define INT_LEAST16_MAX (32767) -# define INT_LEAST32_MAX (2147483647) -# define INT_LEAST64_MAX (9223372036854775807LL) +#define INT_FAST8_MAX INT8_MAX +#define INT_FAST64_MAX INT64_MAX -# define UINT_LEAST8_MAX (255U) -# define UINT_LEAST16_MAX (65535U) -# define UINT_LEAST32_MAX (4294967295U) -# define UINT_LEAST64_MAX (18446744073709551615ULL) +#define UINT_FAST8_MAX UINT8_MAX +#define UINT_FAST64_MAX UINT64_MAX -# define INT_FAST8_MIN (-128) -# define INT_FAST16_MIN (-32767-1) -# define INT_FAST32_MIN (-2147483647-1) -# define INT_FAST64_MIN (-9223372036854775807LL-1) +#define INTMAX_MIN INT64_MIN +#define INTMAX_MAX INT64_MAX +#define UINTMAX_MAX UINT64_MAX -# define INT_FAST8_MAX (127) -# define INT_FAST16_MAX (32767) -# define INT_FAST32_MAX (2147483647) -# define INT_FAST64_MAX (9223372036854775807LL) +#include -# define UINT_FAST8_MAX (255U) -# define UINT_FAST16_MAX (65535U) -# define UINT_FAST32_MAX (4294967295U) -# define UINT_FAST64_MAX (18446744073709551615ULL) +#endif -# define INTPTR_MIN (-2147483647-1) -# define INTPTR_MAX (2147483647) -# define UINTPTR_MAX (4294967295U) +#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) -# define INTMAX_MIN (-9223372036854775807LL-1) -# define INTMAX_MAX (9223372036854775807LL) -# define UINTMAX_MAX (18446744073709551615ULL) +#define INT8_C(c) c +#define INT16_C(c) c +#define INT32_C(c) c +#define INT64_C(c) __INT64_C(c) -/* ptrdiff_t limit */ -# define PTRDIFF_MIN (-2147483647-1) -# define PTRDIFF_MAX (2147483647) +#define UINT8_C(c) c ## U +#define UINT16_C(c) c ## U +#define UINT32_C(c) c ## U +#define UINT64_C(c) __UINT64_C(c) -/* sig_atomic_t limit */ -# define SIG_ATOMIC_MIN (-2147483647-1) -# define SIG_ATOMIC_MAX (2147483647) +#define INT_LEAST8_C(c) INT8_C(c) +#define INT_LEAST16_C(c) INT16_C(c) +#define INT_LEAST32_C(c) INT32_C(c) +#define INT_LEAST64_C(c) INT64_C(c) -/* size_t limit */ -# define SIZE_MAX (4294967295U) +#define UINT_LEAST8_C(c) UINT8_C(c) +#define UINT_LEAST16_C(c) UINT16_C(c) +#define UINT_LEAST32_C(c) UINT32_C(c) +#define UINT_LEAST64_C(c) UINT64_C(c) -#endif /* STDC_LIMIT_MACROS */ +#define INT_FAST8_C(c) INT8_C(c) +#define INT_FAST64_C(c) INT64_C(c) -#if !defined(__cplusplus) || defined(__STDC_CONSTANT_MACROS) +#define UINT_FAST8_C(c) UINT8_C(c) +#define UINT_FAST64_C(c) UINT64_C(c) -# define INT8_C(n) n -# define INT16_C(n) n -# define INT32_C(n) n -# define INT64_C(n) n ## LL +#define INTMAX_C(c) INT64_C(c) +#define UINTMAX_C(c) UINT64_C(c) -# define UINT8_C(n) n ## U -# define UINT16_C(n) n ## U -# define UINT32_C(n) n ## U -# define UINT64_C(n) n ## ULL +#include -# define INTMAX_C(n) n ## LL -# define UINTMAX_C(n) n ## ULL +#endif -#endif /* STDC_CONSTANT_MACROS */ +/* Keep the kernel from trying to define these types... */ +#define __BIT_TYPES_DEFINED__ -#endif /* _STDINT_H */ +#endif /* _STDINT_H */ diff --git a/com32/include/syslinux/movebits.h b/com32/include/syslinux/movebits.h index 54ee7ff..8bcdf3e 100644 --- a/com32/include/syslinux/movebits.h +++ b/com32/include/syslinux/movebits.h @@ -83,7 +83,12 @@ int syslinux_memmap_find(struct syslinux_memmap *list, addr_t * start, addr_t * len, addr_t align); /* Debugging functions */ -void syslinux_dump_movelist(FILE * file, struct syslinux_movelist *ml); -void syslinux_dump_memmap(FILE * file, struct syslinux_memmap *memmap); +#ifdef DEBUG +void syslinux_dump_movelist(struct syslinux_movelist *ml); +void syslinux_dump_memmap(struct syslinux_memmap *memmap); +#else +#define syslinux_dump_movelist(x) ((void)0) +#define syslinux_dump_memmap(x) ((void)0) +#endif #endif /* _SYSLINUX_MOVEBITS_H */ diff --git a/com32/lib/Makefile b/com32/lib/Makefile index 48a166d..105c2bd 100644 --- a/com32/lib/Makefile +++ b/com32/lib/Makefile @@ -4,8 +4,9 @@ # Include configuration rules NOGPL := 1 -topdir = ../.. -include MCONFIG +topdir = ../../ +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/lib.mk LIBOBJS = \ abort.o atexit.o atoi.o atol.o atoll.o calloc.o creat.o \ @@ -28,6 +29,9 @@ LIBOBJS = \ asprintf.o vasprintf.o strlcpy.o strlcat.o \ vsscanf.o zalloc.o \ skipspace.o \ + chrreplace.o \ + bufprintf.o \ + inet.o \ \ lmalloc.o lstrdup.o \ \ diff --git a/com32/lib/bufprintf.c b/com32/lib/bufprintf.c new file mode 100644 index 0000000..939bcec --- /dev/null +++ b/com32/lib/bufprintf.c @@ -0,0 +1,41 @@ +#include +#include +#include +#include + +int vbufprintf(struct print_buf *buf, const char *format, va_list ap) +{ + va_list ap2; + int rv; + + va_copy(ap2, ap); + rv = vsnprintf(NULL, 0, format, ap); + + /* >= to make sure we have space for terminating null */ + if (rv + buf->len >= buf->size) { + size_t newsize = rv + buf->len + BUFPAD; + char *newbuf; + + newbuf = realloc(buf->buf, newsize); + if (!newbuf) + return -1; + + buf->buf = newbuf; + buf->size = newsize; + } + + rv = vsnprintf(buf->buf + buf->len, buf->size - buf->len, format, ap2); + buf->len += rv; + return rv; +} + +int bufprintf(struct print_buf *buf, const char *format, ...) +{ + va_list ap; + int rv; + + va_start(ap, format); + rv = vbufprintf(buf, format, ap); + va_end(ap); + return rv; +} diff --git a/com32/lib/chrreplace.c b/com32/lib/chrreplace.c new file mode 100644 index 0000000..65786f9 --- /dev/null +++ b/com32/lib/chrreplace.c @@ -0,0 +1,11 @@ +#include + +/* Replace char 'old' by char 'new' in source */ +void chrreplace(char *source, char old, char new) +{ + while (*source) { + source++; + if (source[0] == old) source[0]=new; + } +} + diff --git a/com32/lib/dprintf.c b/com32/lib/dprintf.c index 900c0a4..aad1174 100644 --- a/com32/lib/dprintf.c +++ b/com32/lib/dprintf.c @@ -9,6 +9,7 @@ #define DEBUG 1 #include +#ifndef dprintf void dprintf(const char *format, ...) { va_list ap; @@ -17,3 +18,4 @@ void dprintf(const char *format, ...) vdprintf(format, ap); va_end(ap); } +#endif diff --git a/com32/lib/inet.c b/com32/lib/inet.c new file mode 100644 index 0000000..133645e --- /dev/null +++ b/com32/lib/inet.c @@ -0,0 +1,39 @@ +/* ----------------------------------------------------------------------- * + * + * Copyright 2011 Erwan Velu - 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 +#include + +char *inet_ntoa(struct in_addr addr) +{ + static char buf[16]; + const uint8_t *bytes = (const uint8_t *)&addr.s_addr; + + sprintf(buf, "%u.%u.%u.%u", bytes[0], bytes[1], bytes[2], bytes[3]); + return buf; +} diff --git a/com32/lib/pci/scan.c b/com32/lib/pci/scan.c index c8334b1..e0974f9 100644 --- a/com32/lib/pci/scan.c +++ b/com32/lib/pci/scan.c @@ -41,12 +41,7 @@ #include #include #include - -#ifdef DEBUG -# define dprintf printf -#else -# define dprintf(...) ((void)0) -#endif +#include #define MAX_LINE 512 @@ -66,15 +61,6 @@ static int hex_to_int(char *hexa) return strtoul(hexa, NULL, 16); } -/* Replace char 'old' by char 'new' in source */ -void chr_replace(char *source, char old, char new) -{ - while (*source) { - source++; - if (source[0] == old) source[0]=new; - } -} - /* Try to match any pci device to the appropriate kernel module */ /* it uses the modules.pcimap from the boot device */ int get_module_name_from_pcimap(struct pci_domain *domain, @@ -135,7 +121,7 @@ int get_module_name_from_pcimap(struct pci_domain *domain, * in the module name whereas modules.alias is only using '_'. * To avoid kernel modules duplication, let's rename all '-' in '_' * to match what modules.alias provides */ - case 0:chr_replace(result,'-','_');strcpy(module_name,result); break; + case 0:chrreplace(result,'-','_');strcpy(module_name,result); break; case 1:strcpy(vendor_id,result); break; case 2:strcpy(product_id,result); break; case 3:strcpy(sub_vendor_id,result); break; diff --git a/com32/lib/syslinux/dump_mmap.c b/com32/lib/syslinux/dump_mmap.c index 3f1e340..85638cd 100644 --- a/com32/lib/syslinux/dump_mmap.c +++ b/com32/lib/syslinux/dump_mmap.c @@ -28,20 +28,22 @@ /* * dump_mmap.c * - * Writes a syslinux_memmap out to a specified file. This is - * intended for debugging. + * Writes a syslinux_memmap out to a dprintf. */ #include +#include #include -void syslinux_dump_memmap(FILE * file, struct syslinux_memmap *memmap) +#ifdef DEBUG +void syslinux_dump_memmap(struct syslinux_memmap *memmap) { - fprintf(file, "%10s %10s %10s\n" + dprintf("%10s %10s %10s\n" "--------------------------------\n", "Start", "Length", "Type"); while (memmap->next) { - fprintf(file, "0x%08x 0x%08x %10d\n", memmap->start, + dprintf("0x%08x 0x%08x %10d\n", memmap->start, memmap->next->start - memmap->start, memmap->type); memmap = memmap->next; } } +#endif diff --git a/com32/lib/syslinux/dump_movelist.c b/com32/lib/syslinux/dump_movelist.c index 282d006..4042ce9 100644 --- a/com32/lib/syslinux/dump_movelist.c +++ b/com32/lib/syslinux/dump_movelist.c @@ -33,14 +33,17 @@ */ #include +#include #include -void syslinux_dump_movelist(FILE * file, struct syslinux_movelist *ml) +#ifdef DEBUG +void syslinux_dump_movelist(struct syslinux_movelist *ml) { - fprintf(file, "%10s %10s %10s\n" + dprintf("%10s %10s %10s\n" "--------------------------------\n", "Dest", "Src", "Length"); while (ml) { - fprintf(file, "0x%08x 0x%08x 0x%08x\n", ml->dst, ml->src, ml->len); + dprintf("0x%08x 0x%08x 0x%08x\n", ml->dst, ml->src, ml->len); ml = ml->next; } } +#endif diff --git a/com32/lib/syslinux/load_linux.c b/com32/lib/syslinux/load_linux.c index c1ce875..45cd696 100644 --- a/com32/lib/syslinux/load_linux.c +++ b/com32/lib/syslinux/load_linux.c @@ -43,16 +43,7 @@ #include #include #include - -#ifndef DEBUG -# define DEBUG 0 -#endif -#if DEBUG -# include -# define dprintf printf -#else -# define dprintf(f, ...) ((void)0) -#endif +#include struct linux_header { uint8_t boot_sector_1[0x0020]; @@ -318,10 +309,8 @@ int syslinux_boot_linux(void *kernel_buf, size_t kernel_size, if (!mmap || !amap) goto bail; -#if DEBUG dprintf("Initial memory map:\n"); - syslinux_dump_memmap(stdout, mmap); -#endif + syslinux_dump_memmap(mmap); /* If the user has specified a memory limit, mark that as unavailable. Question: should we mark this off-limit in the mmap as well (meaning @@ -468,16 +457,14 @@ int syslinux_boot_linux(void *kernel_buf, size_t kernel_size, /* Linux is OK with sp = 0 = 64K, but perhaps other things aren't... */ regs.esp.w[0] = min(cmdline_offset, (size_t) 0xfff0); -#if DEBUG dprintf("Final memory map:\n"); - syslinux_dump_memmap(stdout, mmap); + syslinux_dump_memmap(mmap); dprintf("Final available map:\n"); - syslinux_dump_memmap(stdout, amap); + syslinux_dump_memmap(amap); dprintf("Initial movelist:\n"); - syslinux_dump_movelist(stdout, fraglist); -#endif + syslinux_dump_movelist(fraglist); syslinux_shuffle_boot_rm(fraglist, mmap, 0, ®s); diff --git a/com32/lib/syslinux/movebits.c b/com32/lib/syslinux/movebits.c index bd5ce0e..7a05f3c 100644 --- a/com32/lib/syslinux/movebits.c +++ b/com32/lib/syslinux/movebits.c @@ -48,21 +48,7 @@ #include #include - -#ifndef DEBUG -# ifdef TEST -# define DEBUG 1 -# else -# define DEBUG 0 -# endif -#endif - -#if DEBUG -# include -# define dprintf printf -#else -# define dprintf(...) ((void)0) -#endif +#include static jmp_buf new_movelist_bail; @@ -242,10 +228,8 @@ static void shuffle_dealias(struct syslinux_movelist **fraglist, addr_t ps, pe, xs, xe, delta; bool advance; -#if DEBUG dprintf("Before alias resolution:\n"); - syslinux_dump_movelist(stdout, *fraglist); -#endif + syslinux_dump_movelist(*fraglist); *postcopy = NULL; @@ -316,12 +300,10 @@ restart: ; } -#if DEBUG dprintf("After alias resolution:\n"); - syslinux_dump_movelist(stdout, *fraglist); + syslinux_dump_movelist(*fraglist); dprintf("Post-shuffle copies:\n"); - syslinux_dump_movelist(stdout, *postcopy); -#endif + syslinux_dump_movelist(*postcopy); } /* @@ -449,12 +431,10 @@ nomem: /* As long as there are unprocessed fragments in the chain... */ while ((fp = &frags, f = *fp)) { -#if DEBUG dprintf("Current free list:\n"); - syslinux_dump_memmap(stdout, mmap); + syslinux_dump_memmap(mmap); dprintf("Current frag list:\n"); - syslinux_dump_movelist(stdout, frags); -#endif + syslinux_dump_movelist(frags); /* Scan for fragments which can be discarded without action. */ if (f->src == f->dst) { @@ -692,16 +672,16 @@ int main(int argc, char *argv[]) *fep = NULL; - printf("Input move list:\n"); - syslinux_dump_movelist(stdout, frags); - printf("Input free list:\n"); - syslinux_dump_memmap(stdout, memmap); + dprintf("Input move list:\n"); + syslinux_dump_movelist(frags); + dprintf("Input free list:\n"); + syslinux_dump_memmap(memmap); if (syslinux_compute_movelist(&moves, frags, memmap)) { printf("Failed to compute a move sequence\n"); return 1; } else { - printf("Final move list:\n"); + dprintf("Final move list:\n"); syslinux_dump_movelist(stdout, moves); return 0; } diff --git a/com32/lib/syslinux/shuffle.c b/com32/lib/syslinux/shuffle.c index 54a7e65..e9ee6aa 100644 --- a/com32/lib/syslinux/shuffle.c +++ b/com32/lib/syslinux/shuffle.c @@ -39,26 +39,10 @@ #include #include #include +#include #include #include -#ifndef DEBUG -# define DEBUG 0 -#endif - -#define dprintf(f, ...) ((void)0) -#define dprintf2(f, ...) ((void)0) - -#if DEBUG -# include -# undef dprintf -# define dprintf printf -# if DEBUG > 1 -# undef dprintf2 -# define dprintf2 printf -# endif -#endif - struct shuffle_descriptor { uint32_t dst, src, len; }; diff --git a/com32/lib/syslinux/zonelist.c b/com32/lib/syslinux/zonelist.c index b548211..7034c4b 100644 --- a/com32/lib/syslinux/zonelist.c +++ b/com32/lib/syslinux/zonelist.c @@ -39,21 +39,7 @@ #include #include #include - -#ifndef DEBUG -# ifdef TEST -# define DEBUG 1 -# else -# define DEBUG 0 -# endif -#endif - -#if DEBUG -# include -# define dprintf printf -#else -# define dprintf(...) ((void)0) -#endif +#include /* * Create an empty syslinux_memmap list. @@ -96,10 +82,8 @@ int syslinux_add_memmap(struct syslinux_memmap **list, struct syslinux_memmap *range; enum syslinux_memmap_types oldtype; -#if DEBUG dprintf("Input memmap:\n"); - syslinux_dump_memmap(stdout, *list); -#endif + syslinux_dump_memmap(*list); /* Remove this to make len == 0 mean all of memory */ if (len == 0) @@ -164,10 +148,8 @@ int syslinux_add_memmap(struct syslinux_memmap **list, } } -#if DEBUG dprintf("After adding (%#x,%#x,%d):\n", start, len, type); - syslinux_dump_memmap(stdout, *list); -#endif + syslinux_dump_memmap(*list); return 0; } diff --git a/com32/lib/vdprintf.c b/com32/lib/vdprintf.c index d74f278..c1f90a6 100644 --- a/com32/lib/vdprintf.c +++ b/com32/lib/vdprintf.c @@ -14,6 +14,8 @@ #define DEBUG 1 #include +#ifndef vdprintf + #define BUFFER_SIZE 4096 enum serial_port_regs { @@ -114,3 +116,5 @@ void vdprintf(const char *format, va_list ap) while (rv--) debug_putc(*p++); } + +#endif /* vdprintf */ diff --git a/com32/libupload/.gitignore b/com32/libupload/.gitignore new file mode 100644 index 0000000..e0292b1 --- /dev/null +++ b/com32/libupload/.gitignore @@ -0,0 +1,2 @@ +*.o +*.a diff --git a/com32/libupload/Makefile b/com32/libupload/Makefile new file mode 100644 index 0000000..8305335 --- /dev/null +++ b/com32/libupload/Makefile @@ -0,0 +1,39 @@ +# Include configuration rules +topdir = ../.. +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/com32.mk + +REQFLAGS += -I./ + +SUBDIRS := . +LIBOBJS := $(foreach dir,$(SUBDIRS),$(patsubst %.c,%.o,$(wildcard $(dir)/*.c))) + +BINDIR = /usr/bin +LIBDIR = /usr/lib +DATADIR = /usr/share +AUXDIR = $(DATADIR)/syslinux +INCDIR = /usr/include +COM32DIR = $(AUXDIR)/com32 + +all: libcom32upload.a + +libcom32upload.a : $(LIBOBJS) + rm -f $@ + $(AR) cq $@ $^ + $(RANLIB) $@ + +tidy dist clean: + find . \( -name \*.o -o -name \*.a -o -name .\*.d -o -name \*.tmp \) -print0 | \ + xargs -0r rm -f + +spotless: clean + rm -f *.a + rm -f *~ \#* */*~ */\#* + +install: all + mkdir -m 755 -p $(INSTALLROOT)$(COM32DIR) + install -m 644 libcom32upload.a $(INSTALLROOT)$(COM32DIR) + mkdir -p $(INSTALLROOT)$(COM32DIR)/include/ + cp -r *.h $(INSTALLROOT)$(COM32DIR)/include/ + +-include .*.d */.*.d */*/.*.d diff --git a/com32/sysdump/cpio.c b/com32/libupload/cpio.c similarity index 75% rename from com32/sysdump/cpio.c rename to com32/libupload/cpio.c index 81d0d4b..25b464d 100644 --- a/com32/sysdump/cpio.c +++ b/com32/libupload/cpio.c @@ -9,10 +9,10 @@ #include #include #include -#include "backend.h" +#include "upload_backend.h" #include "ctime.h" -int cpio_pad(struct backend *be) +int cpio_pad(struct upload_backend *be) { static char pad[4]; /* Up to 4 zero bytes */ if (be->dbytes & 3) @@ -21,7 +21,7 @@ int cpio_pad(struct backend *be) return 0; } -int cpio_hdr(struct backend *be, uint32_t mode, size_t datalen, +int cpio_hdr(struct upload_backend *be, uint32_t mode, size_t datalen, const char *filename) { static uint32_t inode = 2; @@ -31,7 +31,7 @@ int cpio_hdr(struct backend *be, uint32_t mode, size_t datalen, cpio_pad(be); - sprintf(hdr, "%06o%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x%08x", + sprintf(hdr, "%06o%08x%08x%08x%08x%08x%08x%08zx%08x%08x%08x%08x%08x%08x", 070701, /* c_magic */ inode++, /* c_ino */ mode, /* c_mode */ @@ -52,12 +52,12 @@ int cpio_hdr(struct backend *be, uint32_t mode, size_t datalen, return rv; } -int cpio_mkdir(struct backend *be, const char *filename) +int cpio_mkdir(struct upload_backend *be, const char *filename) { return cpio_hdr(be, MODE_DIR, 0, filename); } -int cpio_writefile(struct backend *be, const char *filename, +int cpio_writefile(struct upload_backend *be, const char *filename, const void *data, size_t len) { int rv; @@ -69,7 +69,7 @@ int cpio_writefile(struct backend *be, const char *filename, return rv; } -int cpio_close(struct backend *be) +int cpio_close(struct upload_backend *be) { return cpio_hdr(be, 0, 0, "TRAILER!!!"); } diff --git a/com32/sysdump/ctime.c b/com32/libupload/ctime.c similarity index 100% rename from com32/sysdump/ctime.c rename to com32/libupload/ctime.c diff --git a/com32/sysdump/ctime.h b/com32/libupload/ctime.h similarity index 100% rename from com32/sysdump/ctime.h rename to com32/libupload/ctime.h diff --git a/com32/sysdump/serial.c b/com32/libupload/serial.c similarity index 100% rename from com32/sysdump/serial.c rename to com32/libupload/serial.c diff --git a/com32/sysdump/serial.h b/com32/libupload/serial.h similarity index 100% rename from com32/sysdump/serial.h rename to com32/libupload/serial.h diff --git a/com32/sysdump/srecsend.h b/com32/libupload/srecsend.h similarity index 100% rename from com32/sysdump/srecsend.h rename to com32/libupload/srecsend.h diff --git a/com32/libupload/tftp.h b/com32/libupload/tftp.h new file mode 100644 index 0000000..323dc16 --- /dev/null +++ b/com32/libupload/tftp.h @@ -0,0 +1,22 @@ +#include + +#ifndef UPLOAD_TFTP +#define UPLOAD_TFTP +/* TFTP Error codes */ +enum tftp_error_codes { +TFTP_ERR_UNKNOWN_ERROR = 0, // We have to use the message from the server +TFTP_ERR_FILE_NOT_FOUND = 1, /**< File not found */ +TFTP_ERR_ACCESS_DENIED = 2, /**< Access violation */ +TFTP_ERR_DISK_FULL = 3, /**< Disk full or allocation exceeded */ +TFTP_ERR_ILLEGAL_OP = 4, /**< Illegal TFTP operation */ +TFTP_ERR_UNKNOWN_TID = 5, /**< Unknown transfer ID */ +TFTP_ERR_FILE_EXISTS = 6, /**< File already exists */ +TFTP_ERR_UNKNOWN_USER = 7, /**< No such user */ +TFTP_ERR_BAD_OPTS = 8, /**< Option negotiation failed */ +TFTP_ERR_UNABLE_TO_RESOLVE = 9, // Not in RFC, internal usage +TFTP_ERR_UNABLE_TO_CONNECT = 10, // Not in RFC, internal usage +TFTP_OK = 11, /* Not in RFC */ +}; + +extern const char *tftp_string_error_message[]; +#endif diff --git a/com32/libupload/upload_backend.h b/com32/libupload/upload_backend.h new file mode 100644 index 0000000..7ea03e4 --- /dev/null +++ b/com32/libupload/upload_backend.h @@ -0,0 +1,56 @@ +#ifndef BACKEND_H +#define BACKEND_H + +#include +#include +#include +#include +#include "serial.h" +#include "tftp.h" + +/* Backend flags */ +#define BE_NEEDLEN 0x01 + +struct upload_backend { + const char *name; + const char *helpmsg; + int minargs; + + size_t dbytes; + size_t zbytes; + const char **argv; + + uint32_t now; + + int (*write)(struct upload_backend *); + + z_stream zstream; + char *outbuf; + size_t alloc; +}; + +/* zout.c */ +int init_data(struct upload_backend *be, const char *argv[]); +int write_data(struct upload_backend *be, const void *buf, size_t len); +int flush_data(struct upload_backend *be); + +/* cpio.c */ +#define cpio_init init_data +int cpio_hdr(struct upload_backend *be, uint32_t mode, size_t datalen, + const char *filename); +int cpio_mkdir(struct upload_backend *be, const char *filename); +int cpio_writefile(struct upload_backend *be, const char *filename, + const void *data, size_t len); +int cpio_close(struct upload_backend *be); +#define MODE_FILE 0100644 +#define MODE_DIR 0040755 + +/* backends.c */ +struct upload_backend *get_upload_backend(const char *name); + +/* backends */ +extern struct upload_backend upload_tftp; +extern struct upload_backend upload_ymodem; +extern struct upload_backend upload_srec; + +#endif /* BACKEND_H */ diff --git a/com32/sysdump/be_srec.c b/com32/libupload/upload_srec.c similarity index 91% rename from com32/sysdump/be_srec.c rename to com32/libupload/upload_srec.c index fc69c88..c190713 100644 --- a/com32/sysdump/be_srec.c +++ b/com32/libupload/upload_srec.c @@ -6,7 +6,7 @@ #include #include #include -#include "backend.h" +#include "upload_backend.h" /* Write a single S-record */ static int write_srecord(unsigned int len, unsigned int alen, @@ -43,7 +43,7 @@ static int write_srecord(unsigned int len, unsigned int alen, return 0; } -static int be_srec_write(struct backend *be) +static int upload_srec_write(struct upload_backend *be) { char name[33]; const char *buf; @@ -77,9 +77,9 @@ static int be_srec_write(struct backend *be) return 0; } -struct backend be_srec = { +struct upload_backend upload_srec = { .name = "srec", .helpmsg = "[filename]", .minargs = 0, - .write = be_srec_write, + .write = upload_srec_write, }; diff --git a/com32/sysdump/be_tftp.c b/com32/libupload/upload_tftp.c similarity index 70% rename from com32/sysdump/be_tftp.c rename to com32/libupload/upload_tftp.c index 36a91eb..5e73c1c 100644 --- a/com32/sysdump/be_tftp.c +++ b/com32/libupload/upload_tftp.c @@ -8,8 +8,7 @@ #include #include #include - -#include "backend.h" +#include "upload_backend.h" enum tftp_opcode { TFTP_RRQ = 1, @@ -19,6 +18,12 @@ enum tftp_opcode { TFTP_ERROR = 5, }; +struct tftp_error { + uint16_t opcode; + uint16_t errcode; + char errmsg[0]; +} __attribute__ (( packed )); + struct tftp_state { uint32_t my_ip; uint32_t srv_ip; @@ -28,6 +33,21 @@ struct tftp_state { uint16_t seq; }; +const char *tftp_string_error_message[]={ +"", +"File not found", +"Access Denied", +"Disk Full", +"Illegal Operation", +"Unknown Transfert ID", +"File already exists", +"Unknown User", +"Negociation failed", +"Unable to resolve hostname", // not in RFC +"Unable to connect", // not in RFC +"No Error", +}; + #define RCV_BUF 2048 static int send_ack_packet(struct tftp_state *tftp, @@ -51,7 +71,7 @@ static int send_ack_packet(struct tftp_state *tftp, ireg.eax.w[0] = 0x0009; for (timeout = timeouts ; *timeout ; timeout++) { - memset(uw, 0, sizeof uw); + memset(uw, 0, sizeof *uw); memcpy(uw+1, pkt, len); uw->ip = tftp->srv_ip; uw->gw = tftp->srv_gw; @@ -69,7 +89,7 @@ static int send_ack_packet(struct tftp_state *tftp, start = times(NULL); do { - memset(ur, 0, sizeof ur); + memset(ur, 0, sizeof *ur); ur->src_ip = tftp->srv_ip; ur->dest_ip = tftp->my_ip; ur->s_port = tftp->srv_port; @@ -91,9 +111,14 @@ static int send_ack_packet(struct tftp_state *tftp, if (ntohs(xb[0]) == TFTP_ACK && ntohs(xb[1]) == tftp->seq) { tftp->srv_port = ur->s_port; - err = 0; /* All good! */ + err = TFTP_OK; /* All good! */ goto done; - } else if (ntohs(xb[1]) == TFTP_ERROR) { + } else if (ntohs(xb[0]) == TFTP_ERROR) { + struct tftp_error *te = (struct tftp_error *)(ur+1); + if (te->errcode == TFTP_ERR_UNKNOWN_ERROR) { + tftp_string_error_message[TFTP_ERR_UNKNOWN_ERROR]=strdup(te->errmsg); + } + err=-ntohs(te->errcode); // Return the associated error code goto done; } } @@ -107,12 +132,13 @@ done: return err; } -static int be_tftp_write(struct backend *be) +static int upload_tftp_write(struct upload_backend *be) { static uint16_t local_port = 0x4000; struct tftp_state tftp; char buffer[512+4+6]; int nlen; + int err=TFTP_OK; const union syslinux_derivative_info *sdi = syslinux_derivative_info(); const char *data = be->outbuf; @@ -129,30 +155,30 @@ static int be_tftp_write(struct backend *be) if (be->argv[1]) { tftp.srv_ip = pxe_dns(be->argv[1]); if (!tftp.srv_ip) { - printf("\nUnable to resolve hostname: %s\n", be->argv[1]); - return -1; +// printf("\nUnable to resolve hostname: %s\n", be->argv[1]); + return -TFTP_ERR_UNABLE_TO_RESOLVE; } } else { tftp.srv_ip = sdi->pxe.ipinfo->serverip; if (!tftp.srv_ip) { - printf("\nNo server IP address\n"); - return -1; +// printf("\nNo server IP address\n"); + return -TFTP_ERR_UNABLE_TO_CONNECT; } } - printf("server %u.%u.%u.%u... ", +/* printf("server %u.%u.%u.%u... ", ((uint8_t *)&tftp.srv_ip)[0], ((uint8_t *)&tftp.srv_ip)[1], ((uint8_t *)&tftp.srv_ip)[2], - ((uint8_t *)&tftp.srv_ip)[3]); + ((uint8_t *)&tftp.srv_ip)[3]);*/ buffer[0] = 0; buffer[1] = TFTP_WRQ; nlen = strlcpy(buffer+2, be->argv[0], 512); memcpy(buffer+3+nlen, "octet", 6); - if (send_ack_packet(&tftp, buffer, 2+nlen+1+6)) - return -1; + if ((err=send_ack_packet(&tftp, buffer, 2+nlen+1+6))!=TFTP_OK) + return err; do { chunk = len >= 512 ? 512 : len; @@ -163,16 +189,16 @@ static int be_tftp_write(struct backend *be) data += chunk; len -= chunk; - if (send_ack_packet(&tftp, buffer, chunk+4)) - return -1; + if ((err=send_ack_packet(&tftp, buffer, chunk+4))!=TFTP_OK) + return err; } while (chunk == 512); - return 0; + return TFTP_OK; } -struct backend be_tftp = { +struct upload_backend upload_tftp = { .name = "tftp", .helpmsg = "filename [tftp_server]", .minargs = 1, - .write = be_tftp_write, + .write = upload_tftp_write, }; diff --git a/com32/sysdump/be_ymodem.c b/com32/libupload/upload_ymodem.c similarity index 96% rename from com32/sysdump/be_ymodem.c rename to com32/libupload/upload_ymodem.c index 316b3d4..c42327d 100644 --- a/com32/sysdump/be_ymodem.c +++ b/com32/libupload/upload_ymodem.c @@ -5,7 +5,7 @@ #include #include #include -#include "backend.h" +#include "upload_backend.h" #include "serial.h" enum { @@ -98,7 +98,7 @@ static void send_ack(struct ymodem_state *ym, const uint8_t *blk, size_t bytes) } while (ack_buf == NAK); } -static int be_ymodem_write(struct backend *be) +static int upload_ymodem_write(struct upload_backend *be) { static const uint8_t eot_buf = EOT; uint8_t ack_buf; @@ -167,9 +167,9 @@ static int be_ymodem_write(struct backend *be) return 0; } -struct backend be_ymodem = { +struct upload_backend upload_ymodem = { .name = "ymodem", .helpmsg = "filename [port [speed]]", .minargs = 1, - .write = be_ymodem_write, + .write = upload_ymodem_write, }; diff --git a/com32/sysdump/ymodem.txt b/com32/libupload/ymodem.txt similarity index 100% rename from com32/sysdump/ymodem.txt rename to com32/libupload/ymodem.txt diff --git a/com32/sysdump/zout.c b/com32/libupload/zout.c similarity index 80% rename from com32/sysdump/zout.c rename to com32/libupload/zout.c index ece934c..47c0d30 100644 --- a/com32/sysdump/zout.c +++ b/com32/libupload/zout.c @@ -8,12 +8,12 @@ #include #include #include -#include "backend.h" +#include "upload_backend.h" #include "ctime.h" #define ALLOC_CHUNK 65536 -int init_data(struct backend *be, const char *argv[]) +int init_data(struct upload_backend *be, const char *argv[]) { be->now = posix_time(); be->argv = argv; @@ -33,7 +33,7 @@ int init_data(struct backend *be, const char *argv[]) return 0; } -static int do_deflate(struct backend *be, int flush) +static int do_deflate(struct upload_backend *be, int flush) { int rv; char *buf; @@ -55,7 +55,7 @@ static int do_deflate(struct backend *be, int flush) } -int write_data(struct backend *be, const void *buf, size_t len) +int write_data(struct upload_backend *be, const void *buf, size_t len) { int rv = Z_OK; @@ -75,9 +75,10 @@ int write_data(struct backend *be, const void *buf, size_t len) } /* Output the data and shut down the stream */ -int flush_data(struct backend *be) +int flush_data(struct upload_backend *be) { int rv = Z_OK; + int err=-1; while (rv != Z_STREAM_END) { rv = do_deflate(be, Z_FINISH); @@ -85,15 +86,15 @@ int flush_data(struct backend *be) return -1; } - printf("Uploading data, %u bytes... ", be->zbytes); +// printf("Uploading data, %u bytes... ", be->zbytes); - if (be->write(be)) - return -1; + if ((err=be->write(be)) != 0) + return err; free(be->outbuf); be->outbuf = NULL; be->dbytes = be->zbytes = be->alloc = 0; - printf("done.\n"); +// printf("done.\n"); return 0; } diff --git a/com32/libutil/Makefile b/com32/libutil/Makefile index 7a6b527..83e23a0 100644 --- a/com32/libutil/Makefile +++ b/com32/libutil/Makefile @@ -30,7 +30,8 @@ ## topdir = ../.. -include ../MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/com32.mk LIBOBJS = ansiline.o ansiraw.o get_key.o keyname.o \ sha1hash.o unbase64.o \ diff --git a/com32/libutil/libutil_com.a b/com32/libutil/libutil_com.a index 7b6da05097f023f0048b388df55a169de876f046..083bc1bc3be25d426e0d50c11899bdc04f9777f3 100644 GIT binary patch delta 857 zcmX@JnCZ-7rU_CUM#d(lmgeT>8^FRZC3HW6i^-W3oKc+RaPY>X?vqiEVb^Ji>xc+h%#bL}tc6lYKeV z1uYm5Kmf?Jot(-cKY0y{;N+Kr!tCj(CGpv*m6IK9#3w5X$%p2q<|gMBFz^Eva`7-Q zC;@2}UIqp$5Y5NH;0~mjfs(;c@n#SWG_?oHp9iElIT#prgZP3B441+5=02e_D4`^_ zxk6+E6FwhI)^Bs3oW+;5`Gfd%CMHvZ%_pUHq8YJ3=B5|{BYHL~n7m`+v1CZjNGz(- zGc+|fpDbm51|FE3-IqY|2oOSX^A50%A{|I8kErvj7D|U~J|K3KGEQ z8emv1+$@vq&%$fUkW`wMmRh7|XklnFS*JUA^Xc?(gh{~kE56w=^Rf&+(>Ck3y=UPw oH$WI=X1Q6XTL>wL-kD2mj_a)>5VB02n;ZJsnHWtbcT98v0L_He#Q*>R delta 878 zcmX@JnCZ-7rU_CU2F8YFh8C748^FRZC3HW6i^-W3oKc+RaPY>X?vqiEVb^Ji>xc+h%#bL}p6{AP@jz zX%GVl{s6HM10#bnm;4^Kre%pH% pJ~Io1QD)|wb-IO+!swm3#OAo(Is!q<)VaB#pPh-(XmZCy7XZpS&#(Xh diff --git a/com32/libutil/libutil_lnx.a b/com32/libutil/libutil_lnx.a index 1de68eec68ae4ac882174a185264482c9dcd8a96..dd318409d79f34e8326a0e699474a8d6e2668e41 100644 GIT binary patch delta 22000 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 J@Db`o{}0~tKjZ)a delta 21826 zcmcJ%33wD$7B*a`(%q?$rLsacNM{d_kPcZ$*clKK)<6J>h+$Qb-6R4EGzcmTpo9WS zWC?QI3aBVEqvQ6y=hp2`82N+$^L$@FPu02S-1nS&>UQ08 z?>$xByI1;dTH(7iT61M*W7-(PPDrXwLqR?5!r8~>yNy6do5Do({f>#vcNElo z$T3?8?Gu5t+3e#cRVY51J%NRq?_WXG2)2YdiW0-cH9^gov?b=a*J+JTT@9Nfxnw6)9h>=Th(e-Z!?8s&VbFIxYcZi3 z1G4wwYzGF;G@w^g91}&x3g6!3GW^FkH~h7SwNYi0%cqPPGuo(X>N2is*^csY4~;3S zF#MXeG^Y3^8joqIdQRr3$rH0%XHFP5va({_1mnJD{esFKtQawJ!kDtj_ugARro#Bv zZ<6u1O-aUrMm>zo&9TOnMh_dGZf=zCa<+D5Ww~-(`OdTfV@5j*M^rd-TIIEJWn?#3 z%8L4xm5+FEOxeg0{g9C#nko=811t0ZZKHWNy{1q(?BbgL zdx3;QkT;ODW!s)W(uEmMASq#w)GdPaJhT)r zkeXkd>P@ktu{|p%D<{W@Z<$KRjiQ#FeGj7VlqD04r7bg4=cBlENkxis`Ip~+|9xJ* ze`Vzxwj>4!!NS*DRwTtfdd|4mG9~}@*{$aNOqGrFz1@=1zT#EGyqQS@m5RuA6-fhU zhkiBJD{&M+GV@_!;;UXp&-Cd2v1#*OrG3KzSyX5%I9nODXu4K#Zs9iz&;GDQH($}0 z9m{{KGJcVACAZ+@tXoy;^RN8|503_P;Bj5K-#C<>VFU*T)_j$|&L<|rhHo?)3yJ(j zXab+n2y^^VI~f~YneMLsxF5YMr2qi2Qu;4$RrO0QTPvk`dc6SmC^XcrA&`jprq1+3 zv5J>byk^=Citt(E;5Zu$+gXPo@ihXme6nL!gNxe3aKUaxJ-4C-`+|!gtPQb#ii2@` zW5H$gFj0aD*Am%Wv|u8&!EnqTBbZq24t6S5FitHG*JE!c zm?Ui)y2Tzxn|RHYrp**XQ&gpk)drS~55rTJwilORPZDdK9PI)tdDc&7xyBRr9>(R_ zJ`!a4km;fIU>$cJ@#>&Zdz@{1)=#CZR7e{EAE*syrbsYD zwELLpDVV#pNzC*T%y6xe8PD=*AG+V}iF$q5pJG~zcCdU(U>|ljvZFf#><1G0GX3A@ zjy}jm#eY0^?IB*&+5EG)Uyd5zweI3h#Glds-|l=`|0~|rHypL4d}1mkEQ~2UV;Vc{b4dlpACtw$D+Yt{Va4t^dqnn zs_#Q>nErRT6RscVi^d{!9gQ{Ccfyq>`bdBx^-;LCDE(C^N9#OU#ORaJOst*(<)-=& zTx2sn4c}Cp{!cXH)aO7qUSDebmfd7T6p$(US)5b#S-_;}{{p7DUWz7L=-tp_OMNu% z$8^0p+Rf14fwfk823pC~7vjQP`e>B1^t)iQwcZvNnXR9PS2_CEkmTx*84un?X)0`WI;Y zZAH(6hwmu*G9x-SVbB#g{WnFQkE=Yb=oLVGsOayb?T-}wCph)7q6flTN@Xzo+kg2}%tdQT{Prs%&KRk_WRmZ9o`qTi3(@uH&l0sfMr4*}w` zqATc(uW%C>pXIumJ^|*sqQ3~2zgP4%0REupC*bl8MQ>rW%2^!s6WE9rdz-$wd%G`^km#vnUL?+%Z4lKwK9d5&}i3eS^%2b_L^^heNrFOohJ zZtfyI1kJoe`hIXVq)z~HH|dYVuRWxXgTh|Ye*~!|{bLy0hxXj?Wk2apf;~Wb44OYk zdNnTZ5b5jC?qSl8K>rBonNWP0^tEvGDCv`cJVtsI>Rur|3k|+XdMoH1N4J1`jr1`f zuajO2pWYz-Ji7b}ItkoWe1B;68m`kZT2a0sotJ>$;%kA%cch!ZT!*LV-S5#e=!73| z*>L6t=`C;{{)==!H2-gO34Hnw>7T*ckEE#Y;VK;MdDqzJFth?FV;Q=@KhO9&-<9fy zt2D#fa|6NC7_AuskHhYToC|7|628~yQjnG20)WO3JgCr2-lFr4s`2rAaXwrbUC%?s?e6T_;*1kdaEX{?Hr0zxKX8~2xO2| zWF7we%qQcmb_u;i36&1TXEIma8%6P%i8C7_WpJH)gN@Js7TeM@<1_Al3G-lB#-B)G zuEscZe}P=)wePSvcHGdRHx8F7s*M~K4y{)&QR?Z?+&)te)O^*UjV+}|-$Bl<)?TiG zJzh=RU#|Pq^yq$rjH(a+u#>E5TR2~>xzO`@TSI$2tl?sf;U5RkXfvc8Mf(){^so88 zUn`=~MtuK7zkMwgrI;_oIDZiHx-qeTDs3`5yiRe(?*1;)j0^pz(NSaAfD-!M*fk*0 zk8=U|mZ5O{dK}F%ejSiXP9wP_mDU=4N>c56aHqx^bEk$Gi%WvhCu>o2%6JXu5ymyt zKam7w<9bk-kv=e(mKq%frc%B!W?-uQGHTA5Q{SW{TXRGvWBKk}05 zz8}MmUVy@M9Q+A}5`WYzK6$pe{9Pko#$Pe=WnVI}`Tj=;9VtR+PX)ei6}TT9R)MWi zhZaz_R)L(=@osZJ#?VpJCM^2jZ7yeKd@<7M@@0L&c(=Kmq2tY$jprIqzU*$U@#M?q z!iqOv)|p|RZLS}~yxZJCT;<7^ZD%DfQ(ma%_=IufY9NpEha`|l{@gps)lfjF*)_@Spw=~6 zm8G`&gM;^VZE{>f0Vl z7$}@uz=md=5Zb!~UpG)V5M!WJqE7YYvNce6@$4Nazlp^1WETDJK=}!JzC2fX6U!XM zy#qyj_nyS^My~M;lp0v`4wPD0@eY(p4D$?>5e)MVlzCj`87QB!l4qcN%Q(+Kd6F5= zKq+7y&p;6wZckzv6?OTb8LZSE*U(uAmN6dk@_LsRizh_gfcFV5lqxkh+Z`>Zis z+vqSPI>n+)kZ~AB{C)mbIh>Mvr9~wAH9wmZ833Gd3+tS1;O(50<5q-S{0fNk)c|fh_Y- zoJSf9ael<8#d)J~!N^cwu^Zvb)7A5K<1fq8Niilb&%jK&c6oE^XuPq!6XrYL75y+P z-nk+%Vi;TvxnH4wv2#^mlxX_acydK!x@>G&k)ponFy38}3&yt6Np~8_E1S3c9;jHT ziI8_e&|Z7ZR925nEIZbtI>i%`m!*wILX7SEs3e3w^&_NG8)GFJRmsNA*xhL#?#rQ4=tMUhpK{ch` zAZvbhn3~vf3i6yBWZh>t^x=~u&S`KrOc`|N;F7sl@ogxJb|-~1S(6kCvcEGx`;bxl zec`1ab{y!!9INSjKUiQ3pNE~v-lfdX|Df{f>)n!Cb;K!yPi39-z5W7vfa_ltpc9q0 zD@E}OujqSE=z9YK=AW3Jb?lNuKXQWJThh}p?{T=FW$JAB?+J2qC({<3da`MJL=&JY-_hPV;u0844!c0)JYcu=0^=y= z3UY`kfwZTXv-!Sj3FRt_R}FX^`4bB@-?;)}ZwjF=1!ASBP#PtJ@P`|xHLRyK#);Cn z$REEijAMIZ2l%qEg$sg#IQ+SWTJlC`HjaSf%%)@9A~AP$R^T{=GPv#pjzH{+TCuN} zarpBRk21N@pN-7DEvbVsbngW>FUqjDP?#RVfjtGz-jA%-m`=n&${;2?MX`j*ZcB=@ z_(bAtDY>falxKpr}g5E09Z{H*R@m3dnK;>^l@ zS?)8~9;wxQ8gs6+^e&(B_5<(q2_51SaIa5gtLHkDb||g-xI;;vPeps5;73${Jkgsp za$H5ZVm)h9Dkt#+u)G}Q&+Vxc@w_ZAhlgyrk~wy=vHZiNKRl#+a#NIf_*HCw%J)BN z#2rZdGqDL5b?oCvNB5xRs`{dt*^VNNeFuJlbZY-F!T;X$O;BUQbvPJvPnW}~_T2~^o5T)j4rEUmRgev_D@uWJ{gW``eaNbe^N?}6 z&)P{jj|5|nmUSeR)*GcqQtgqx$Y5~b!t!$)q=hx7j_3qW&c7T-?Q7_0DS3iYE}s51 zwzp~1rnLx4lvA_$*cCtbaK6EtKC}HSsyacvqxu>cjOs=JdRBMjNCJoDAjbp@ zWzOJXd><1?J4Xu)lSkns|h8@b^&}aV33X=#_hqBOKVzU>IT;6_fFJU9)C0< z8E3Uh3qbG~#aF|*;DB+Xr%QG$*w8#SBWfQ58jsNRPHK0!9N7B;$O`nyeiYF;??lu9l$s5LdNx#x5?8E<~*G`2qzc+2TO{G->6 z^B=Vt@F&Ni(xYqFw$3!5o8K-GV(gj}Q#1VI(`5f829vXS{WVH7?mjymi?I*Sme5Hf z3+aY04h2(@(dUy?HL01|>J3VvamHG3InB)3;M5<&jBh?kQ6Gvh-{s0@jSlBh?OP*| z(KX}Wq(o|OEP-G??$GDO(3xrc9sD6Q*wHvYa8%8NPdED9JZkc?@^X08q}7yu@v_a$ z4+^YKv{8HRYwl0p!tvNhb?D0cv2|G}5ByvR}7ZnH3WwxY)C@ z*9{1mgd#W43`Y>}0x9_coZWUGCnSn5n`ME<&UaG$*qBb%#46h1Hn`Vl4Zo}rFl8EM zT<(lsID!Lkve+_|LPk|!d}WR;|28l|zo9_6+_+EG`q`o7SZU|61N_26P$#Zz!)XBP&5@u{kW&6?uOO5c z=G-wU5QQahZQF}jmn%NuOBl% zjQ1`*-pr0@+Sb3Fe^Hp)2wvqVK0$S?ZU!Ht$PU2(d8C*!LIA3#6Izc&ZCIU&Sbu~e z~mi1 zUf|AH*o}4At@W_ad$DJMbN_6CpQ!_Hs|S9;3;qSTX1HzO#HKpz_IlXOUThq2{Ghjy zQnf=0tMOfk52qAX;^1Y_Dm+&x{`wRra0Z=DF$%99H@aTSj*$xx+Ut_YY#hV+s__-htBsKFQ`KLZ7;V2#p}!d; zzE8Dx4f1T0)_)&NQ;c1ZO@VBwSk!z6na!XdQtf!ir5q4pbD+^5{ONE-87so(7eACx zWUexC#C_vNwaUtOwU%AQ<*b@s|FWy@-aI%kqWd$2Ax`2G=B*i$pU)Kc{{l(ZFa>^t ztmkQw`IjZn`99{ql=OQ^f0vY>cyT-Y>=d{GO1u>CGfLjJwU#`;b;pkMVhV%BQqBoi zHgK<$^MuWMT_hc3H2<-Scdjtk^~JU?tH63^LjA65&E6kB3rpoEQn**~vC$2jiSrY_ zmP82)6*Y=F-aHsU@!BxRv2N;Tei=Y{?j2~yp5Ge~wH=zZFIkNu=8{UF)W5Ri37${* zy#ii5Vfl55ZC^(9a);+-0#rDHi4!o276pTj2$2)FX~lp!8Vg3#mO;_cL@)tb0mCB6 z{Q`7?wHP$yh!R!d+CVlJEtp7cE!V^dCRWSknpnX&wfStJnP8H%Y_=UIm^AHuhB*b3 zu3^9_js)T$=+efrwIq@M&Cz;6$Bpzm`<<^%=BgHgX|H|Cey7t?)O6NnbB#-+NxEr2 za;sV5#mw#+W_-obTD(5cLp#nodGss*g<4nkrxR@iptrW0bqeV@Fax!N%oGV`i1v!; zhMt1ETRXv3y#zB{d!HH4%LG5LxxT`=vD$L>r`UWyh&Z_%1YCgQ0AF8V4Z{v{Q3;G- z)FF|859GVqany{`X((MYD|L!jQ&jUQoeF7~d0wZcF;7EBJ?X<;5#9qAqQ2vkjIt6! z_nT3{)HHQA3qKNoumyEx3w*`{o@NdMxU~TPqaIk6m$BkM>$P&hQjGY?+!;*$f=l2h zb)9d=Gdr{$RcQK$kU=}m>JY-)DdwIKa#Du*Q3&0m#*mp8N(pq_EDfc8RBCPurBskp zp){EGn`vRx%)JB6VWlB%gyk^00!t5Cvl??z;`lK$xQZvuwx~(sx6UL#iFsZ=f#(pwq{>AxO#)QKxF(Os~0C9ASD} zz9?~L&;aM}`L&4Diiue8^cB4@o&j+Ys2PN#y|;Fds9hv#XQ3zlies$jLf#PH6L%6{ zwwo;eqyQfT@FyHQ8H|PHNrAnBx~3mO{5cNM8J7GvX+y$75oh5J>j$Ie7uZPSo;xLa zPW169@nt0g*py*D{&+?w44x7V^+1Kh@mRZ07|i6HO9Hoyh3S{V)LbAE(la)poO|1Pz%5*nT0q_lBkP}ax1$f?4p1rVa`=DhvT$d!Y&D8#gKE8mjvpl zKurhgfJ9vusH+lnS)lI5%%x;ozD#3??cu7{F~9yR+%QiMAn zUr?5aDUDQ)DcBWTA;n^!gOTL!(4=6MLyFx8!C6TbK_x`x8^K!nJ1_D;3Kf!L(1~`U z5oZflY$6m-3vXI)f!KF5$9AIDCoqf@-z^p=932U7grl95?3RF1YB?l!pW!G64L~ub zmqINbw`4FL^dyHg-a%0atuwQtsByPFqL$qZdK2yV@u+_bGHExt3p?ecPX){gCg=c) zH+xpQC<;H;FyrRXdW}08slPe3C9yQ$MjL9+IO$P`xj2<3nto~IGz-$`G4r!DDjgK3 zRCV@l4|>+^4hCAq`05e(BC2rUK|>L~&LueF>+8HYvrcKBESrxtr=k*=9^^IMr4H50 zV|pFTzAjAncff2H9JkRiV_Q&B96-Ijh6mRf{)<&K=eD4T+k#$#C3dl^*HWK4OLtnu z`07aXb2l8g`o}Rccy!!G$1H4V86M&_+^x=VUytEIFgi;Z?%x4M-In2obj;7B;eKAj zrFDky@EBeOqkMPZy&VUP=30gu(lIO2Eswi<4HwrLzRP3yJsACuW%xaWnBQ=qD;m-< z8)aDE)=;nE9(9KMTSaqnhV^YV2wD$I{A~^JTDrT=QlV9hukMc6J01tFeGJ@NX1Umq zj+xiWGF;>}TvBIvn8)xe7~N#UjI0K4 z%JY*R5H!B}B7!{!{Lp$jo;sG>(CDq~)vnK^iOBZVBHOp=&%U8lyDN{TlSx}>sCh7- zqHmQLG^cK%E@o^2r9_MtzgSVq$Bt;7n^!jKff-XO${whlRzO6z+3Kd$9%@U)NQ;?) z9q6R`OMvm$Z3*_Hz402LNgXNC{tM#SA>Q1Y?K@JiV_zcPq6;$zbfg4zdmGNMn~Nc* zDdyUalxlwq@jIV4#^$FiRn2RV(i}6Q6NugH0Ahau;Zi&zG-r0g9Pnuu^NCK#BZBS) zwJ#WixkNlCjO~iIO2y{)MKhx_H2GPWLu|X3CKuNp>P$P-z#IinM(-W-0G<-&X4h79 zr3Jq3Uf7WH#%Qa(e{#Ztaj@*5=G!ZZp=3Q3Pj`o63`E$J0WzqP1a z`H>4~kT<#Ph+WbsrjW-;K2g#(Qr0*bxZkt$uAHTiwsj%Y?1Ui z3D_m+ds2Q{@@FKyB<25>^jD@$kU_+Xh8=GzX(Cg|b0yzZ(jumAR1B4Zagy?D(5x_5 z@=r>-LdyAVS8iaBq`Wj`{5z6AC+T@9|3UJ^^Aq%ZnF1dL>SjTztjLfRoh08!(h?~j zBYA!knDu5z`QwsbA?fo>aWCwa^e9t&wZ|ppmqxk%D_-QXp>L$%XQsS%;MfcRzX;7d zub-K3$`tqnrnrJsDQ_+11(NSB=_pAjGsQ|`o}^2p{ON#9t74NB?2>?!l0PH)e@OmY zGq*2|xGAj?rDnGlFDyM(d%iEZovBp_aM+^YVV+9i<7ZV!y)YA? zMMD#*7iNOB5E~fJ&p7%)gv<-qL}~`tcz(v=;u_D-IQUnd$hX;BT5mR&M2~^V(MGV6C-YLmHJ;4NVRk#69))UWt%7SjnHS!1dNVIr zLU87VfA-fy+w6nxMe1b@xI(RzZFdqsY3;2&!%Ci?acpPC^D~ZJ%y@prv5y(g&p7y} ze%{Q>X}0Fcyl_4YnU|`mBJ=VIs*ri%%L_cju!CGw0{t0vh%eL@_&NJ|)cj;B&8F|o z(g&!hfHQ$ewTOM9&vaaFSXo&)OZex&;rzOiOvFUAM5QMY6H2|za}OX9Gns`}A|`xB zUD*Q5L`*0RG2_aqX|@1c$rlSO%kx;#O2k--G7-~QQO(Ka)Hhf>Wf}Pp_65)53Zk2v z@024Gv&S4!K@sXYA9H#I#nDgZQx)_9O*Y3@Vyc^L8kNYsykdS`NjdHuEKQQcj;K5F zh4I~#9DxE^{2R=7fo<@cKpOEDL}XWch<#UA@G1MbzKGbCNUN-6zL(^`n4K!pEPd!S z%;I6q%oLI3?aO=<2wt2KpMdK`b|@Ko#mF$kFEe*Ph&0Pw_G7SU_c(%T{5$yeXo!Ga zXTBG!l~Omf%fE(la(pszj5m8tLz-o!Ib|B9xJ8y^ES1A}GmcC%afoz)CF5Ubh)j&d zZUBpqlkI$n<3E@$1$v^`b?!%X3r@ROY;ZHi9mmn~b#`_lZHIDF%ae7CTZ!Ntp{z>p z44*wZkY$vCPij?yvrpAiGrZ<9$3ybA<%{C{4;qNaRYqXWOA~3AsiIdnAEG$9-z#ur zduykQTJh6rr~3*9;g2}VxSG=-);7K+Y>Ml)*j`{2XLD?%?!)m6W4)W}@u+Lo6=ME< zlrUj!x@UV#SS;@!V1xB%T(K(&LM zQGTij$1e!jaKIKxSR(;DCt;0*v3^)VD=tp6?2;&dfqEEnHs&u--wM=HpgxwU0D+1@ z?=vbupq>P$xVGZt{#C*P1?-@N1qxUux=?W)#VHZrGWSK0Kn>;Z0LFp@>OFztG)s|0 z=>qk$MCk%GnYZ<>?{JzdQNfIIE2~k##)1V*=d^{3(=5ES;3h+av38I%%F2PfAW%-A z4oXz0K%J8)D=*RqkAoCfK2YZ+DomheK+d+p&?2V8D+0zZS@`mIj3&bctO=GK3=0>I zEd-~y#sZZgQ4s>QN1`GGDisgG6xSS}N+hbWK$Sqwwi*l6YXbEYP&3>T)gwQ8B>?DU65}h|p*Y5i1bez{y+~henwSLN1J- zac9v;L>4Mg5hBq44`G4CizHfe3eeVKCMZyOCO~e?ng}fRXBbWC0=v{n<%z(`jirdG zptES!%8kW;$ic3Qkmz`mA|?%dJV$owE))|WM67xNzPNoi^YlxU{Ut=cTP#N8#(wrV z?pAX6bz*82fB|Xu`2zT$E2xY`ZY;|wWW%8x^e9h63mBP0ZG;$7C5V?_Df~2<+E8C1 z#)PH>aq`b^dp3%rAe23n(jGi@rAmQwGOh$g;i}iu+V5sjdlk>VTF9s9_M$L;Y~E5n zMVD-PQ_2bpA|~k0$53Q^Yx#g5h8UM! z_jJBfKzrOiIp)qe6s}vr?qs3C;bqQiAg3PW<5bgcf$JKI_okg$Hq5E zX?%46;!1lQNT>XS?>hz7Z>wcCdD1dom!aEO&+}TZ@gf+WA&eIvhwRFc=y!h(JV0f=EK42~k^UFXm-msS0YpLb={yO6_UB}(B$?N&6F#N4BUeX(e zXIRD?)-o?h<8_I+&Gj5V;5CkSiIsF5=<_Bp+|4rHu$JkrvOM2X=lQ{U)@3#?zPbYp zkF$*b1CfA7HoB!@Ei-Bv6~zN~sLr@d-Ep@(E2ZX~WfbuzU^TGD_g-C6ZfiYH56g0V zbuHZdr{(H&xVjm~ZMDokhGl$PovTOcS(ll;`05)l?8KafPVNfBQ!L{RYnhj%@t5n2 z%OpAX!*;LdSui}zG9CoO?JVOBYngMGQ_&!2{e=0BdXCEseSGyK*nQfveHJr_1GaCc zWJax^A}3Hg>-?^ljF;(i)4hTsZjagpTkNLHv?DCZOgVSKbKWkv3>U*OtD}D>!_74~ zZl`1xt+d>%OMyRMuLoq7-h5%DXksYaU-c5-vVrxoL-stt~ej zR5E9nmYXu)jvkN+a_)f_Wqao5rsZbCsF0^DH|sLryXsxC%&f;(e+m~hENjr4tFhF0 z69=xXK_zn=O!L?IQe6+!OTEk7xv8(R+-w-tWtHWoOta&XWnP>wxkfe+U(E}&Il|3i zUO3%tx!ItSc^0PGO_>^p>D~2uK<3xYPEV8b_NbXpQxWo&o`ie#e)#e_4u7vGFS(ip z@8AfmCxrM*h%Wz8{2`W!XK?u9=Qo_JuV&^Vj(W{7`)?eg8M}DVuJ$jhX`qkw{%v&a zu61BI|3 z!@ni29laH)EPBygyB)ds6+t2wA326|@l`vJi_gtel#||Eyj^LHypVYwHEQQR-c-E$ z<|K1nMF9SoN=nknSzl5Z<%XQrH#A0P$8CB2s^ z}V)c$eogJB`N=V503`^hZLrzOmXiFlXRL}Ry@KKh8~yva;Dg>t&;o}$?uT-UZ%hw zWQvB5O8H4C|3LDeOZtnX8a8$Ocp_HPf)p;mvur8oAo-q>A1!(QQyNx$Sn>@ zPt@Yae#^)WkC3UtiQgpQ&nFg9@V31lVPmb@zk;OhhX5aev%QOx_lE$pm{EPJxB`=R z-46kH=Zzl%)QSq6|6t^94Ex0Nm`Q&RmTrtDS(UE(K{BIfk!Du-z9|EIIC3w zzW+7b9HsH}W$iOZ@d68GpM$T^s;ocxqmKK=cz%s_%Q7JIC*C8#B~#8OLJTh&$)ON)yuxQ;_~!qJvm zifWZ2tyLM!U{p|=enj>S69wTaNLfySpEhkv%ksz{k1+8 z*SEQa*;O)BXMLx~lQG^$uP{rpIFAQrs!pHx1?8`qoHBIyv4L5c{pa7d$QFyqVhpi3 z;rdopQjkCQQns(EB;)SDpWk^rE?rLwu~?E%JI{DrU3L9YB}iD5TbL899_&Q$`+y(p zOz@{34tM%nEC;~e;wsg{Ac*Vt{SuxIP?4y}>KSaL)GRy=IWh+7?*>^&Qg=ny4V2WL zeIUg(Q{RR>Cta5zNgI@^cM7mrP{Bq*h7!F2M1TOksxt#jTt^jWeThAlYNs@%j76?* zT!D6d5mf0qnfPb&X_fsm=CKFDB%mzUJ>2|+G-q486m>e&bqmkq*)X}fG?u+CM^``k z78On`0k+zU_zlFjsLnhm+atG#noM=&swvUCf#m_JovTDoWRg#4;_fOI%MeIg&y@Bq zq({@_P<=CX|H{A$iQD@$>f#%S$D-uZCXcrO_P`um4_!yWvcr2wJ~7Do#3!ed+S6{M zHYm|^0CE+nOan`O)?BvRCp~T)+8Ifk!B4b9i5_diy^oOX5R0_NI6lsiEQ;0c;&p=7 zhYlYx>{z)eS>L3pb5ZmzP!Vb|TUFM3RksM57c#6P=G5TM(h50tRoMcRNO`vmGYc4J zsc&}W15d~@N*d^u{VW!DqFLDv#Dg13iGCb)5@uo$K4aIc(SwGqfk<8KRw2~)uq-?U zD&wpQh%P5}C8a9~8ZfVwCEHijEctZuB}&)dhvD)YzpZ4!oC$x;caRjt3Vho|*UmLsoM&!N>VL#$*qPF1Sic=`%nqqBNTWhGWci9xO-l!cdBc{=1T zy&-Qt3#mW~NMM0Mwc9*?#5q~Bn{mV22|dAH19LsuO^e`dV5dn+TCkFlnv&6Fsvi_{ zx;d1~jNHg-Oevjd!u z{BkNP7H47TF~xE$x$u}?-OOmq;gvat!Iql>B7v5wusglv6EGS`MW&12Vt zGh6@Nw2bU3fw2r9QM{%lI+>Dfw>_(jGeBZs2?mEiWS`1j4XIvr9f)`+LQfYhsIO%k zL-N~{f`ER7KGm1&I&cd52@fcow*%3m&g$P%77Q?Vk_(-uJ@>IDHk5Z7o$}Az?M7uUT?fjC76l4(lh4VjIJ%OU>EmVYMUYF6K7#jq5yGC?>fO zA(1~gCbK7Dakiof2y068maJBIJvnqS>l+^FI}J4b4>mbGy#Cci$XkRqx98qRuvGBe zdXJ~C>!J!{fuXOS2Q}U`9(uCf;Z3SpYanzP3|$88P4)G*+_8(;)9}c4hi1V>ui3%2 z8mz)jMvq``M#lS3y9>f~*CTx=J04j#up>R5;Dpy$X=FR;JZllP$NzOF)N(|1KDVCT zi>fE5J6UXW6UoE+M%R!N7qO|)pGoUkaL75dNAMk`rW>BlAt$U_p!X1(mO_FWIws5vnw9aBb3nj&ZEJu2-O+8ft`(y_V4~1VE(GJ z;s$m%zPdc{brxK6KpSc^SDMY0W>uX%!N`>sSdS9Mg4D;_~RSr47WKx|T z;U7|AnfhD2h)8#ptbwZY{37;3orLN?=TP^?Wak{8Iz1W02R_;Lr>f|S*v2~5lePe% zOtm`y^l?6wX2`BHs`3>4h7K?GfS=dMG&_eC*Qpsc7Ey{jV1EQ;P?up2 z4#{By>eiEw_GR!k<3(qHll@=B+&iS?3X`(pN1y_CSbsiG!|j8OUKdST%$qai`T_h%n_oQN;0k@I@P z^O*T3MTd=`;QOd+O7P(1KipMZrLIuBzJaAA4VO+AtVtRnB~(T5=R9Il#+SNYE>*@q zcD?)#XaMyGol(+tjNpvO#k>bPDU!AUxhh)^WmBl9V1tM&g`f_00}am4B9@ z_7o3futg0TNTuxK1_PvbS;dA+Lso|yGZk1!AP`;H=7xNu$`{breFRhqg(#=TrosJ&SGJ9+BLz#&+pnwxDq*X&*b$ zxL$|COp9eWre_okkzF8!7%_oNMM-UzI>wdOY)rc%%k)-b+MTlG#Hr4jXt0b-7YT)# zqJEe)OpbBP6>)emVkwG>%$ZkjupZ;--K;zq!03-a0j9B|D%myeya#{_uTZ&5Q+?Y? z*`W&ya}Y&P%$#jgSyL424pIzhf>lOx@Sv}F=ffr*kC4=r*5b$w9|RAH7gg4r@o{S? z4ZK)M$c|o;=8GgAUS47UCfAASz{_)89;2kT7?YCLY&wGT!MuL@4%WWOfSNmLjHSH& zFs+I6nH0yvjK@~!y_oY!U>`SWfdSdwBwijko>gv|lsHP|#YUkEx{AhIl%DoTG!YHZ zlTl|^sq=Uo`tY&5yn>NUcgxbQf+{U$`N&_t#MG49HAb!_r>ai3G=Is*(hk=WTn%v5 z!u8Ti1(#AnBzg9W?6=mFs^_5jA=+33xYnE(lvd87-~+Fq0nyfPbzxK5gv$%M6f9}8 zM3%a+koIxXE38TThjO#wtU-r)@q;#@pc{Duhrxa0nvW|T*GOE;a7`b^&UL68IKBl1 zw%kHfnVh;=s>$9?CuQ3lzPlu>Ao;Ti-6E^}F@UVhb$LIg`4-Fz?x(QT-Qs0;3fteUN7G3n zHPr4puQDDDya_J`r)j0xsOs#t4(*D?fdjShs95d#%@(Xh_t?Pbx_G3nC>M2N8Vzvbr!X_$}#T4?fw&9%4a2L>6(D-RRyx`j7?ps20AyIo7afGWZ(e z8gky-R959P*0D#FG=L555f#xIbl7iFZyvLtENdsAXE3ElhsgK(p-xy^bDdu*w{3@c zbUz7$&KoV*jUIIze04CiB2o|MNH zKQ~#5V-KENCbeJ-d)AjLUS)fF4wpw{uqwT3%HO+Ki(Z|YJ?KO2qF9vFws0chefz1- zTQ0P?XL_(6!gUht4(r9JAK$!z2fC|OWFNitwWko;y91PVi_N( zq{r#su#Uacr6tVOyQy5zn|;>%Yq{4_mft5Xg!Gaz4xAn1t#DC#Uv{ETSK0SI3(S}n zS<;iF(YG+Ztd=QCjMIY(w2XWyaLeBw&k#4_7`y%&YuT@U;6xAx3qmJ0xnKQC&C3z~ zf3t1iTCM;P=R6ZMVVV<)eqZyj!fJpobiF^%= zr@u_;)Du*8aw&T;^MHJDDT~djCSPC5+GNGbe=KD~vkK&YmlgyM>SP^%`!n?CYqvW3 zSpG=&v3!GH@9Pw3ZM*nb+CW&MU+Da7dXug`mYtoRrLF4bV-btRJ>fXaA?TA-cIf$5 zai7w*cJTC?>pCdjWU?D&g{9M_uleJKi01ruJn zDoI<}bED&=TsC3!2zhf$c6M~KyhM3p%yN0Z!t%x}l!vxp;bVu$-zaSA*n;RD&8byf zm$Ckac*?2!I!k?~S5n#U3hOZLXZdfXAnxTWa^J6ipsrj0$aNnjGj2S2=%b(v8iH|v zW_rp@tQ^GYd0+6xyM*N;8Zo=sj$D^9fRLkL#Gp@GC94^7m*@*wuL

G=@=0if6kf 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 YV-sC;6Qze<`bgUiS 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�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 MHX589zS)cX7ctA9Gynhq diff --git a/com32/mboot/Makefile b/com32/mboot/Makefile index 7e6c2e9..b7ee115 100644 --- a/com32/mboot/Makefile +++ b/com32/mboot/Makefile @@ -16,9 +16,9 @@ ## topdir = ../.. -include ../MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/com32.mk -LIBS = ../libutil/libutil_com.a ../lib/libcom32.a $(LIBGCC) LNXLIBS = ../libutil/libutil_lnx.a MODULES = mboot.c32 @@ -28,7 +28,7 @@ OBJS = mboot.o map.o mem.o initvesa.o apm.o solaris.o syslinux.o all: $(MODULES) $(TESTFILES) -mboot.elf : $(OBJS) $(LIBS) $(C_LIBS) +mboot.elf : $(OBJS) $(C_LIBS) $(LD) $(LDFLAGS) -o $@ $^ tidy dist: diff --git a/com32/mboot/map.c b/com32/mboot/map.c index 0a71d4c..99add30 100644 --- a/com32/mboot/map.c +++ b/com32/mboot/map.c @@ -91,10 +91,9 @@ int init_map(void) error("Failed to allocate initial memory map!\n"); return -1; } -#if DEBUG + dprintf("Initial memory map:\n"); - syslinux_dump_memmap(stdout, mmap); -#endif + syslinux_dump_memmap(mmap); return 0; } diff --git a/com32/mboot/mboot.c32 b/com32/mboot/mboot.c32 index 5a0343aa858aeba96b8f24a8e6c166b9046c2b2d..d60152eb3d053bb3ce3c85e0d4a82de74c46b632 100755 GIT binary patch delta 4564 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 diff --git a/com32/menu/Makefile b/com32/menu/Makefile index 2a03272..b67b997 100644 --- a/com32/menu/Makefile +++ b/com32/menu/Makefile @@ -15,9 +15,9 @@ ## topdir = ../.. -include ../MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/com32.mk -LIBS = ../libutil/libutil_com.a ../lib/libcom32.a $(LIBGCC) LNXLIBS = ../libutil/libutil_lnx.a MODULES = menu.c32 vesamenu.c32 @@ -28,10 +28,10 @@ COMMONOBJS = menumain.o readconfig.o passwd.o drain.o printmsg.o colors.o \ all: $(MODULES) $(TESTFILES) -menu.elf : menu.o $(COMMONOBJS) $(LIBS) $(C_LIBS) +menu.elf : menu.o $(COMMONOBJS) $(C_LIBS) $(LD) $(LDFLAGS) -o $@ $^ -vesamenu.elf : vesamenu.o $(COMMONOBJS) $(LIBS) $(C_LIBS) +vesamenu.elf : vesamenu.o $(COMMONOBJS) $(C_LIBS) $(LD) $(LDFLAGS) -o $@ $^ tidy dist: diff --git a/com32/menu/menu.c32 b/com32/menu/menu.c32 index 488824e1ed4073ef5f3bac7e34076e0988117392..348c6b87a9b437884cce03cfe955dd89575d5cc9 100755 GIT binary patch delta 10841 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 diff --git a/com32/menu/vesamenu.c32 b/com32/menu/vesamenu.c32 index 06119cd2a6b8184af90920a245e8281a5ee1b531..c466582b7a7e6b292a98c6a4a05ae91a2206ba4c 100755 GIT binary patch delta 23813 zcmbWf3wTV|_dk60$%siZ$pk?pAs2&0g2XkEAczQ6Qi8N~>$j?kw$udu7D=3hoE)Rk zjiXwn7fPvWqv9@ZN!@RCSK@v~Xwy=+mU%zx%;duF_rCA*|IhR6*=w)8*4k^Yz4m?2 z6zuXS*yRzl=~=(Sq5o7jzK*#k`S+yBPGIJ4idMgC(~(qqgSQB?#sIS+Pwse8ASFxgcm)cLP;RYq3WVUVDAdph_+?xU{TwP_r8M z&nu!}-dL>7dLDfpXobHv45cd41bl0WYlyF)pi0_qkZci=Ws?$rayYaB{5ip2BfFKr z1VMV_H8sk-W3Jn%4GxF&*kKJ;c(^B@$m%yr=?Xm$)X-)G6)Pe43)Z4hcn=adc<7Kp z*>|EKsInRj`6Xs)8vsmlLemV3!)h@i_zl+XtAfDxDQOm8Tax%lPO|t)drkH~p<=>E z=G-g1z4*Pm(Y#}U+b~`(zS8u-Gl!$37b?i3&{{FYacLIA3=dlm7MWx*9Dk&1Inu48 z>DL9INwQdEDaw<7>DH)u*8#A8X>KuTimZZkgCJxyb}Q(Ic%V)C5Y|Z5@_CtCkmtML zO@B?VlDnaGW(Oo+O)vL0?LQ<(55yE_KX&j!Lty=A zlmg#bAEG2!dRPZQ8%_;I=l%y_;dNDXYLO_p=yn z%4bxcAe*wb3bTwbo;Kxc7Y1~`%0OQw>L(?`kozFR-BvgW_D}|gOSj!hP%%MzVldBH zl!+G3Ur=uX{3{Qt=bSL-NaUB(o|MnbcZY39CycQ5XBoZohp?Oz*0I@FFC*K$u~$^w z?u^%T#nHY-tv-~u^%u=Ml9`T_O%_eI2~IBug|BuGsdC@S)}#D)fXN)7m@MUWb)HQj z5Ur&FJ3#(ZK9cJ&=l<8>aAZw~w$>&!NMb-@-hoQ!I4umxN`Gn(v&9vRB0mU~rdz^= znGq=66rW^?%JhYMhsPb8ZnQ}U$XxC=X?HS!RISx~K^R$Xu2IC%x#)d+{c5;|Z>4K| z{F2_(Mrvx9*`z3F%1O1yMa_b*x%AkS1`VWA5uK>q*C}=qRjwYy_ErkPP}>;AQh9r$ z#aPS5#zz^$T3moryJW1_Wt2chP`TG8oqdvmj;p)QYGZ`42q~iF=Z%fMgnu25WLI|) zJ)&B)`QHSYDh2J!uNGvf+lYFK7o@>rCZ|Znqm2m3+dSHI_yA4oRLQYEk-XB?OJ4(C z+8bWOM5am;9ZBIKo{d;E@9Y`p@4gJ3W}p1mCb+hsY4J#v#1x|^DxR&~ebJ+|BEHkJ zTgdOdF~kNua5!v|jvXKiLT<4+HwSEbHJf-fWixpXuV!h^v11r1qmWxeTrV&x(nO*) zY$|^_;?WO6(J@V?rTJva=zsLSL zWG%AvE2fyR3uLIhrX4hXS2k`4U~NhbvKIWH$t2EJc#Nr`M`%^XW7A-FGx)Utp62~p z^B>R*{nN|8AF8d;q4fJWdYc@uQG;{|gqax-62(80P z++FRWWaXiPxy9Bx%HRs^Hy+~?*mPGLjLRorzlFP9)y|_KC8k)JQE~4(d2pHL;P3kc z8%HF$rj12D1BM*%AyX%zrByzb9w9ZBAnE@HW2Dlz788hN1<&=iTd7!2Q1C);jIPhkx?b zbwViPV4X%m_3okcewK9f+cfmzG{tI3m#vmW>Oh~=_4Bw!+V%F;X7R>#{fVhl-C-<> zFQ_{sQ}>WrG`qOXO2K!kP5J>)iB z%{l#%li5&u>M-ZTQ{A63bM6hSH|!%oBR#EU&Kaiz?&h42Kq@_TGw1H3{7(3io_d>k zLB0B!UlZo2j`20?){veCnseNAjE^~2qWsM$KKp41N-^hr1vs;-^fbYovkl&r=_@^r zw9b^Cwle1q1#S6Q>1kJU&SPYm=OzPT%N5`dSR|O|P{H;J=#u@^qRaY7#L%AUm;E$M zPrge`AMeC>`AgYPo9nn)RR6hafXjZ`f-t#%86hPLXs65AL#jYUA5;6>LRb7k~NK>BulEZH}m)Fo5_!|>epv)@J00_*?;-&`qv4y zs=*LMpEN9^#MOo^z1!Fw4*T1+AeV;oM*fMdm)?Op>LtAPsH}@Hzew>@NS&zoB1rU39fQn8iw@HUZ$WZH=zWFZy??>j9R{WH<07 z5LYwatWmJHP9IkeaWrndQi<`d#LQ^aoV{K6O`{Ghh)8XI?)}UCV;ph6n{6RjZpikC zKW!3<_&Xq2MARTKvKi5ZOtF`XSe!Ym-nQP3tZn`}a_U{%%gn_vCNP>976Fk|Uzd=L~9 zP5sqv4)s^5*bq@MP8cU>-B9~iN7#R*`lF)w?qS3r*PL3Bp9~t(?(i*#qjE71_ZN$Zf*s~DiJ{z0uMbrY<$v}r(~oLEG<(84Coi1vJw@oZ&ba`2l> zY%lUPAtS{rG29f|hb`hmLdUjEM^BSQTWW~R34DFT9<0wRr%VioSQy6?XLS?I3yU9~ z4J}oqxx6AYw9#C+1SVN~AbfvF^*&}#G;bN!p4s@wumHAz|2M1~Ys z)|}_ilXP?|MViK$r3;(LyII0KClX19hqTqo$6H#lbpEL&wC&mBQ1_~#wJ7`;N&()nK@reSHfc6i$Emhtzf`S$FvzhU>!L_R0dI8L$gez7k@A3%lY`1bUd&Xa z)SATp($)#QbMwF?GOM-&?&oCC3U!cZwN*NpM&ME%q{h)c(Lu7lHV2@MCk60Nn@<%l zMDn^VIwg$#l}uAGDpC}p5&qLs6mB3;ys8FV6Hl<7Uzpn>gn1<+NdqSN-um!2*g;-5 zqAB`I$B0l*(pIpxgrD#?BI=pO&VUxiKvWrstcVyE$$yF{VWatnEr+{k&85-=Ue>Z3 z8_Po?gCnX0=oL8F2=&gfSbV9=yK7k(B(xCVWN8>58yUlT@+FZ?#l!%4;m#8jT#svqmid8__nLIA(k z%EC@@W9vBf8Sl|Lt5GbKhRWK1Gzr3X4DmvYLs{@ow8$^C?#_yN<2J9b_xSs5IB6S*w_@U0SH3LfT~@%o+cvI4CMcE2uk}%# z7x4JD9hj9*Y8z_mYlQ{sj3Nt6<6pE5e6s*#m?e$cBrK4sOjS$sBEkpGG0s>XXXBYz z1;`be8S@W3vYo=KI6D!iL?eijN*fkq?uiTo8rVp3Wi)b7yFeekUCcRMF-Mk4(|NCU z!BH+$9VZIxWCWL&F0NCf;SAc#yr5lxx$R`=?P^VoH+*xuCS7SDfPhNAw$*&v$7pp~ z??U#>+Iq2|1t4I#XH>dFwLD(GefLb49>G;KSmp?}WP|qZ2UX>{)KVeR=F~u&dlv@L z#aDGbvo-|;rFu_5ZXfYXdp_ZX;lQ)DrjOAG`0$wz-PyWih{^j$2D&6a;zWF z4PE||2;HD(IJ`uAGyz|WvEpz!5f(2p@5i6SHD>#`f9Ec24j_f-qvFEJdRX znYRz%d7Xn;EML(%ih1!9om=(LOR*&zt#!2%<010Xp(K*jE`LiaCd?ci^9^AJ+4wh@ zXsFS#7(qvFp-7+e?(y|Zc|;iw*O!4974Od$^AF=YvIM?9exPV?zzqo_>rzphvAV(z zPd;;Rja)dFXC$_GzAj<7=VG7*Yg;OyewP@wocHc>LEP_GXz4nX z)tOjN6!cZ6EzRPFWsV1*+wCRh$Io`-L+0Ma6hkX;@4BK;*A*&Z3(}SF#yZvcm2@x0 z(_A#m_^!kS>}Nitdkp4}yzcif|4;7`#D?)tdjz6u{oEsxt>RaDY-X?U&w38^cK|%GJYP%1QPKsh5^WjNvVtU$@G+He2<}G?fvBiaH zy*wEU;3JcR{3e?8NzW*slAbW>H(J@<<{u|F4EP;A7wzDan31GNv9OpF>y;6Q?9IG5 zIksLFb!>wrKgrTCFDb#?+g7-jd-WdcHO-5bUimo6PUkawr}b$>>D@8KxhJMgw)MDd zQ_?Zsbh!k1Q{x}(9%Yl(LU*ej0c^3>v`UY zCaf3#cEnn^Rock5?5)B%Bl|GlL&&$plt@P?wn;||%SP>E>=0l1pAgopu=GE12C=-H zi*KJ~4GK@cecH&n@$V-#j7|y_gc+go6Z9%T+V?F`yk2)}n9Kv-2s+OiZr>60YZk#GE@DXYuRf6_GgcWg(@ zKOB>fX{+nesX1JzdX;^AClBH=>PS<_8w#u}}FRbto2EYt$WV79Y1bf~6NO zSo{iO?)>JbEyPQkxOquS@uy9N@k>O;))jXBtezOMD?6uE&%y@b8w&EgGASc2e*u%?g+;}H^?nR5>F zR$nyEe1?fz(n1n^&2tU{#BB-f$>% zHiLZ;l>^9VpX-8r?XzkNb#-KjeVPl&?Cfb*mvX&;Wr&2k*D z4=?Emh!X7)MAh1yYe2jO^Cg{gS;#bYGw-~tiAM#xaY9RT?m_;>vU)>*MasUNP!p`3 zGffF&t&s`itN{uA%IhXr%{kvw&VS80D=40n5m_D#X&89Gv;-&zwjcKS1ORK#10Yeh zeI`G+tZTw4^kVyA&?bzwzL)ThId?A*<)afOn{#5Zamw^bc;6bFFwva5mhdeTGR!#( ziF%qjcS&KdLk6p7Z}N-x^N8}oc&tC$m{I$F?SUxiYX!TPFgjOVYU@Sv6P7}3&KcH{*s zBaKmT3%NwQ#P_TWVFS(C8&7YgX}dtL8Ucg~ldox)UlW(0jtG z*}LB6*{d6~K785gc;?M7tWFdUt>TTpn^HGz6{Fhw#hkzp3|4I#U-8}B;)QRy&ziw3 zhmT%!N?f;+$FGeDkXE9weexO1A4}2U^chxuB5T?*K67ngpo9rQdc-n9*NfWQluy2) z=fA@@tPNvz_?fjS;x8+B==bllp?v=Lfz9JrFu@^bVUUX{-cvp8S%8jtkh9-f+q|*R zWaKBlj}Y&C!=HX1Bp&&O2d)ccYj~G+ty;|ZMjvtxOIxGSr-h8B@===59}3EMp{`pM4loDvWQ)RQE$+^943 zum<4l1!*}MClZt)Cz~9)(3oPJt!Q8o&~!7uhUVE+v^<~GsLFT?8F|?zLSe|KyHcG6 z!-T0g*>OwUO)2^)@1xXsAX{r^$4u~#`9SlEM5n2?4{_Nvdvd=f{lP!Hk-!R^9OW=^K#c<%l3N(enC&CtSr>FQT%6&>pR!Z-hT5AN% zSrD-+;x?L{5m9=u;|H@axCj;kK-j$1o?U_?e*2WAy%7I@2VU8mVC$7A?YM9_kq>ZsSB0+f^=PC?g^qG z9d(N5(bGsG^bc;Z;3B->8;1{x;*Ht$MIWTI&ZDum$wCpcNX%e z+k!G5p&~d*O;xtGhxwJlXnfn=XL6Lq_8yDh>MB5wahV*y)m4BV#}|^qC_s$p5V(ANa;AdI`&9JuX+B z6)V?jbcs6)_|xqT+mI{i8w^~1x1)puaUF_b%ROTXVjh&AAC#(*YUoERc+VZ}*~G$W zJ0>#G@d>}ZGsPpV2lVZAN9)StiyJo-e#QO85o~tMxn2xr8eFCz?;3x8t75QWkOfBC8W0yf2K6)1m(@kS&9v# zu9=8$e6mWV1SbSs3cpYqm6?Kc_HG)+%|&Uc#$8tpGAAB$QGvTC2)nL&%AB~(MOg-< z&D)EmVo&VvfpQ9?Q2>ul9({?T*awB|WlY2byyih)|ek@!}(4 zSlwJZQiAXAjvmMN^kbI?lfliilHidg5*6*TifL*}Wzj&MEL(ja$LJY#S9w~a%^UR+ zor*NBOzHX8L$5z-EY(9vP?9-i(nI57caa2{uDl?fu;t)AkyPUp|iW z!kN7PDStMDzkRAn;7vTUiYYE{Bx~M+;ENSYqI|&o!x_x_Q~B~!e(`N)FhRSCwfpNe z)^hiTg9Uqxc8Z4){m#1iDrR3_e?YPH(zrm+Gj6bTq%pbK_M8*in#quOE#DLoo&X( z@Xlvj`o!zm#m?;3{DZTv)V&DzQ)V9mN=XYhg6kkZb#?&zh&MYI$p-LO&c(6@JpWt| zc9I`H*AmmhqjO<6h7CO59+x_)=Yz3hop?S0XY=2mk6`=xne*+$b5ptLLQCA{cDm4t zW%9Q!gu#pQE{tZ^`P~ctoi9ycf-U z^DZ{^iv^LqdlT)Bu=X(8dZcKh`Ob^u#myN!>bE!8B|h)B0Jev({;e@v!ApN@96Sdv z5OCwYd^QszlPn2wNtW1|W*Z-R5-ZO~+B@9s(x@gzokp&x`6Q{z^l$R)OAQ;GoQL%| zjxz98tgemkCGHAs2VZxo8P0Wny%gGa3JCO@S1G|Fdj*i1-qI7z4Tip%~{Z`Q~T z$4Qrs_dKN+-4_|3B-WD8w>NF(J_`=W4%-uHH@UkI|~Ua=srqxe~nZPfna>uv|(BI@AnPHYo*E6-r}_=n{Q ztQOx`o(E^?b|~??$s9_@8%&rhkA-JZNi@MLfwgSu)H>`0L7eV9QnhA37i@z4y)d!6r`~ z+oO`6ZsIe-tEexaC=i$wU!6?g%YUCPmcGfG{L#MQ*y*|A)1_mLVfq#J+dk7n4^ ze*DJ-zn!@I!!8a4^&!!hvWIhX#Zv0R75`;_@bEvw*kJzBpIOYGANsRj(}SbX{LXPa zN-2Oz1kL&(WbDWRh&^+KcCj%2uO|j^-Rp&&9!Aw-S%stj&24CLjGK-P6(ZPvrz zYk_{s-U&qxgVw{8Pjo@u7QVrnu$YBetWkrvaPW?-QFtRe5eqnaKxonu7yiKJnfPMe zoD<}~w5Dnw#sa-3RAc@fuTEmjpCzmLjJ05IsXsB+U3~VX`Zr@;+2?9|k+rVZy}mAd zm}Z}^D^g2~RWn4^j>W61Mb@6pQ!k0k;$?puV>HHKLHkVgc4Ph7R&|&ggubWdxUrTj zRQVGxAaq^=inmpv{OC&7M0 zwRfw@o{m)~8dx*dSzTmcO<4nVi-CnQqk7T6EaJ77Rk0T9l-aW`&Y|_$(P--(0(UpS zY2@45f3fmKH*AfEP*a08W1S*I*yYXPpTjDw>-59;W*8)h-4)Z~()G z7ic!_S3TWX)8tGi-XQf)&{Ze?m@8GqeeUFb)k)<6D$(8sBl+{%bXF(3vyPpckHNNj zFJ@1LyZHVr&}&(zQZpH|v3)0|g6H`UsMp-la=TTZ+N|lwk6vK9kBz^*Pc;+fd#X{| z3uIRhfGn(<44sU~TD?H_ky=ojHHdY80d2u)f}LIqxHR*1+WGRw&sX3p^%A%345Jtx{FS_ zpei~iS=m95-NxG@SJm{Dho=2K@A;~YJ`A!w)ns{2X-8fl3pgqW>R(1y@11X7$cerH z0U6Z-qMZV=ULXrO4zm8$WUHKHuYyc>liXstBEwS~hT7O$fK02UzURRLN4?gkYKRMc zkeHZ=Un^`bhogJhc+4e`?S2!+B=-#upc!Fg_0JMQz=_W2rE}HNByc%@3LxD{(NH?= z%>PYM?H;VR=@YE+U339zf+uU&{PUt`4keeiLwHG&lEQ>m2)+mpdNbiSggpq$)rFpH zMe|Q^WLa)l#WGB2*7dhggDL0^4|*jSXhxq4HG!X~j`Cu0FH1A}3Dz#i3plGU5&006^juz7?%$psQ zujfSp36fOxJ8$+1yP*E-%>q+);>0W&5BdEv?vyve35i+h_cQKsXqx+`Dy#g}>R%yL zy`x@`q&vYW)Hy}FppNumk*uGp_^>v;Bb`}(7CK;f56y_3#{I1*y+T`vekYecH;!(A zhR|zgp0g9kk4fDM?fiC?nOXe~i(kMmDMnk;X{CG{RP_$KIuq6it`XTfKpU;TWM%;! zCJYCaOPm|V1y`^8+*x3xF4&yA9DbpXrYZofzPbdgo{fo>T)39H!;E3({G8{t`vC20 z?*RsvOnq|Kw89t2qOeo22Ue5);w*aZ3uFPiK}K5|m$d0lvbU3EWh=DL&SYOY@WDw^>pK=bnECI)0H+%2FU#qvWkj7h(Y*g<tRv#jv7~wwW${e(&V^j%EDMsPcH{q3-zOVEWFV( zya~}W5-Kz903&TrRI}@`upWCVvr%;?-;cm33yYD2kZ+K%^-9swRuXcW6Zx@Df%`L} zn5BmJv3FUzI?s=d8EV9F1=hAktZfb0Z~ibCZ1}wnmM-|D=iarp9Ou|9B!ZL1g7dp- zP-|MYliJTk4LJsq$o$|Uxs*;HVj}vGN`h~2;qtIFk&-Pp zlN7z=9!`3H9Jv~GL{B`jL7j~#aL;w($RZ9Zf4rWgrKg@u(B+Zu=*c0-m8QqgZ<2^O z61my8gb-KmZ(gqQ4&%28x)gr8>!}QFt%rZd1mp`x~+#OFl?#e5X_33@0Bh!fL2e)>-wyCWeKmss3yf>!kkZ zk9F$;^`bwUiYToSHVR*>(;BfZ?5(1Wjo59Gxv5_UvB0_``lH&j=>!iZ4uQfit4D%Z zYxb`CG>F+)`y!<=d&sbPk%C#Dz%ws_ZV_FEgYtl$AXX%{tG9w#YQ46=$+M|nZV|Hd zjN?UpL*T>gj=Cw7brK&%tAB>F_1JKI6~-jiS8d*u^9@SPq8G? z%lG(A`xl_KMRmeTh8Vnww3kD=E9Si{^oaW_;}7DfBEM>XrAThc4tTOfYFY=@KeKmZ zv~Q9nT>b?Y-YLp-ODcLzxZ)vWe~G(;oK3z^4Ve5s#yt4ygIxw|9h&2p1E2NS&74CI z9r2quBQEV%U;v$JqJ&@#v3GW57|c0iYddM&&AIfz*4~g_&+9@*c-Y>-F95P0o6U1P zk(GUeRxk7_W6iK@&*)V~eQXr}4rIbw6B9Pzr=k>Bh7TK6!xf{Gb^6 z^svpQnN#~oElXn!8%f7>B4(}oe0H(wJD4?O9o6u`tT9`zCJ$zz0ogcuN`H_{ukN0w z{$0%mb)%yvbYZ?PX3tQ69LzptUlzSIgni{MKKon!V;Gy?Yq=*zt1Dv)LjD$noA(9b z@;yOV=ZXoY@Y)OMN_=JfTG77YY^jOK>YL-(J1kf|JdP!ZS8u6a<5`%vfHe_MURDDp zqmwE{Z%k&l-D@vD3-8QcP&Dwr?2$V)L^j*l`1UbaR(}kkBw8G);Wd6YeDs*wWEKm| z{0StuXxY?M5Pa~nx&?^k1DnFA6)epi4s(&T7^q!k26GW#3y2+4cnET3QGZ!6bP&yT zw6}N%f^57PB%3i9y6#sX`8qIOf_!{^n0B%m#$Npefx<5WJx2D;RCt*VrHTqa>x2xi zkK9vpJo0s_=xf2n093pKs!A1SLE;0+4>>F&$y|i36;;>|4ka6H+#e}9)u0p_h_#4U zfD`vyIEnYOB_x}RP&IP4c&>i4qHB1?n(FB5S68D6w~kZUbWoYFH|50F>JO zJyUy0D zVYw`zna6|7Ox&C^2)=qq{)u`U@k!u`85*+e?h)t;}zg`HhydMC7E>` zISw?SNCZVgw3pN#z!;e)=#dhOi0{Us+S%%x66?(67vAQLK@A zGM{w~JCF5;!Ywp>474}~8d30bmlIn`)piQofsXf=!dhDnVu_maPH|Ks=;tqoPD+w* zP|e@xe^(;#FIU%7ht9<=uBWbk984wBhp3<-PnzheZyMD%lxnpgP`~`Fc_ngx zpZa(%rpOevv5f`$q<|J0>W|>0erjJ#gI;S8+U=5G=PwLx?*y}7p-Lr_b$vj6E&F^P%%To>m%;U%DTRMhs za?lNkX@(WF;dL-gJa=%i1KVe~xS=`P$z5v=gXKw&K@Xe&9NI%#-~rFclb!;rNQ<3` ze_f)>NOYzyTZHTyL+ls`E|FqL?v{`c%*@ks_r)TZqcdpKqI)zv=zWF7h36pW&lTPr97TPkjav#YH)n`*9oW*PaNo^mO;;VH=8!xEh+Xp_Xy>ut4a)4+CM*2ZR zmU?tCYZUi6Oiz8ORBw?+Iz-Kp3doMTGOGD17`K*Q^Big!eI`p+LqBEynbeHtqFQ}n zI9YE-n=VHyzfaa(4RSY^a!Uczc&Lle+tv-rq3$6V1F88GX*q;pvV;2PEAiSU)pH43 z)2QPn(Co&^`BYsA>@_w8fL2?h9$CUh8~3N`PMrLFk_Sn2eTj9*-3Z38CZwuUeL}NYSs8`pQ!FQRZG!1s~jYNd%+l2aPug+x+0Vs`2`C>T$KFOK@N}ghe1?#S5RK4h1zrGtBM93N(h)9x zjTI0=!{r#V5S}g-ghdDwJ_jB_`V0#`g!h*S!tGD-_cEWl;U6oCeqO;WOnfl7=)y{d zdy0gj1#8(`UgGJbqJN6m9VTi$RQqPOhjmlG-@>~4Tv{T*Hf48u2Goieo zObw!4z*hjJOoNbNTK|tUGoiM5b^&3!23u1~-GhlPIYHhfU8#L?OsrJ)NKQ_O*dn&Rv0xHx$@JdHpk2TwRvBPGQfa6iK_a5JfvJ{l zSVfl?_1K2NwSn_VWcD2@x3U)=UQiUWgLSQiXG|mwi@h9lHtc4Cl(9j0aU-Mv_EWkW zu(k11XYFB~%^}K+_VRQ~f-*Q3!-`2gxQ8WVhPX|)!~&a+={{U~;xjdZ7|a`Ivb^Ib zZ<#kv5p8{qCvUQ6%xW=7yL~BFDiQHC+YgHXQ`3IfG)=c8+S-3?-qwbC)L+glg_~G;)Z-*^~+LLkNK-Vm$J@nOlWj=6v`#p44d=m zD8M&A1&%&Vw7-fwFu6iO*Rd&)us);)sZD;tt+h$*@(XL|IT-gyP6BnrFRW>%pLy0r zTr?1ee0-PP4Gew}M_^IkU02*94(KjU?$W<0x*Ll0?GD=q$!0txl?RvrN81L}iUeLq z4=^BVZ~K^`%_DZfC_!?HubdGp4^EKw4#SFy9?sM9Te_2|4-<>_vyLoV?X;hbWY<-7 zKkM$Ddh8kANcrj~W0%z%``JtEp&E05O*Tcp4Ba2=XN`I4`U9*lJFot8fT_O9SNO{w zoPagJ!5U76($%jHvKUsO{(6uNV&!W1AvS~BqO$sZ%qz>l)CP}Qh)L6Y zkWn6j|CySMbn3Xa_&2d8L$u+CpE*w_|5#4z6}sh5?*ZyI%hVf(u);1^y$`eg^$tOn zl|gV z?2_8|D4Q%={MDUDaiMcgEkBAwl5MK-7>jFg^K)H>zy2=_{0sW)hzjjpb?7l{@$=O$ zjR1ykpHdEa8!EN z8v3A@QM5vv(^%y|=rQ&Fakh%xSC^h(iDKU+>g5yI_wHB!Il&^>vZ7`u>9iqJ?e!}g zDVj~{%3oPiv6r`c@K+Yw#DcdDK4s{PKg!O3CtK!VP_-$M)9 zpVBCooPY~YJYho zaq7Ht*ubW%ThE~>e^*bRV}+LJdNovdV}4EDp`;&V^_#DLe;x;(JwGYBd7c>=JEi_{ z0Zz194ZMgu&{=Aai>#~I(N~>y5uWz0y7eL(&eo`neq&?B9tEoO8~YYTM_yua!FzB8 zU7m=SSC4hgJy+?j`XN#%r^m;tbcrnzlWM7fm*L~5)q$6BR5f6pI^{AO%I>L0fEAnC zRQED8_2+7M8B6yVP>UWw;~hF5b=OZ_S_ZFvPu)_+A|lG>I_)U!4Wa?U-i&@GTxsiv z`IVM3Dyr!U8{zXR$g8r^sjsjZ?1=i{3YL5i)u5}ak^gSFrg3b10LC|{Jym`ADr+8^ zitFPl{;AKA>a96iU2v7P3~TFFgDmQQk~Namva2|Id8W3!hCkK&0D9`(YX?nv^iOS0 zPh72zyT&f~%!GidLRYARt}}~|SIrV8tGU-(Vvw^MH`|IbUcsxAAZF;a!U$0hK(d>Z%*8U57#gC`+rb-e9bDf4%BY zavhH0&cWrFQ_cp}_a^JjCaCE*SxA>3!1BMV^%gjtYE1zo>%9uw13dQYpifAe?;Q2# zn{bXI)%zA}*0d~#bispoM+TH$b>YiKJ`D|4^G>p){sxcZ14tn`MW|c>7)&|m!Lueg=ULn-Q4g-ScsS`BZ z2y9e0Yb+K|&EWbSGul6xT>-L?j6mHqi|#qutGTEO;}~uqX+vD0#ks?F$|8%tFw=Ia zo$T0)bjeY7*jdxI_gbN#tDrKKQN5kl@A`^FF9aFBcb+*PrRb$Kzf)B2HjD9~A@&|y z#@Z>*f|kEo zJO5)-F@5N-AF#*A!>id;eN7vzzW+CC>Cti;aJU;hr+)P}>m#;#yXfxUY%dE)wt@=x zbCnMwYHLp>!$P&RZ`6YiSyYGU4Dd~5@jtgm)u*&k7P>A^HBjku_z(he2|EPKExOoh zY*nKkv1nGP4u6DQ#X|L?M=T)dzofvT<=Am;rp+|wfY9357oUK2Myfx8Q0zWUJ@yED zzu;-=U*HeEiwfChCfF8*)L@$L?qWKsc7F`%KdK`iV;K5a&3?>cx(n19%<^-|Rz9eBPnv8cqsMhprapbA3lEGA?joJDx_57nUhvsLXiNNjhxA0!5fXFICv28n$m?&E(D9(^ea6|ajzdrwjL7jQA)ve!gmF~whqLIGlf z8k#1yV}9!3G%-?LUq?*IJW0O=!RHEMTq+6Y5MxgzXoztSE8InlSAxPrR~%Ve6yS*t z5wREWK8XDgH$vP1vBj0&7BPL|TyY{|_^#s{+yt&hC`8y|#Gjh215k{x7vUF#V+dyv zE+N$X+(7zwgw`IS;ENE2@CKCXfH)B$=Uq{lhd2!NM>$!wut|f5zB+?f_^PtQ^ z;42C;h2l!&QXtkMfSLBlI^owyf9J%}>R-n#LwYL$K4n6dBZS)NC!{y)xWp>l9;9C^ zn3O+Ebd_afg83v67Z4ndYGtk=?W##JNc4isf%{vhb7Vou5K`eEq-&veSy|OMFQi|j z^8@Zh%S?bZGeeL8VO52s0Qq9Uje!dX-JwH=Mxjhy89I3)1*QQ{I|qV40xY`VnSk9~ za5i9r3(f&t%LUKzMEkqD68Xre?SgH9jV`zVu!jrgfa#qK6}AX4{l<*oPXSXq5d1md zP#3%maF`4J3UE^wyaF)YE};H`unLK0u8cK+o4eq3fLplW9|4EE;0=HyTyPO!vV;Kz zZ*jrYdv*dQs}O#V3nu(8fXPCHKSVHX-6`WZ5@asQIOT!~e;zQIj_{XUFa|8)8elRb z!FIr8MS}kTOjacLZ@^?lg8uZ@^?mD!3kCG9$qa0h1XC z4g^eQBsdr_nUR!h>VgR$4wx)T_$U`l_!z)sUBY*8!kN0D_u$23YRc%041$TFTMf7; zU}^%Q>Ft7vrXOHx4#KAb9*jT}!AQgydxbXx!+2L#X}#3xK-e48+uy zS%|6aB*fHKvk_C%$cU*a<{~E3e~g&S{t03-`9j2G?!}17)Sn|JGcQL>7T$=MtosdO zvg~TaVI2Uh13)I-fSAm=88Mk}2VyeU9>ipkQp99|BVKCD*TiuxSFOU~W~rxe>pm1l z1xDeJG+`|Od?>vMqyGYobecuo@tWA6eh{5Ux<0q=8+Doms{J)F*yEjb_)!qDe^Tqb zE(Z4Liew-{1yIir_94t&%urG-p$8`3&wp@{gJ$tCm<3WXi0Geg`=JHGs|btLjMv2< zhMPXZyoMh=wZ+eoV&L(cz>=Iz;!L`@RdY$*>Q7}c#h)@^)FLMALecbTig=&OgdBt@ zgdND6t7Z=qgEI|Fo+l*+3O64!VF*IWBcu@0@pl1Z5oqR^jCdx3g0KkTJA@(x%KHws kU5`*qHU_Q?;W~nba0ekPO%(DF3J?~jiABM~#Yt}e4+W(7r~m)} delta 23566 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 **from the Syslinux filesystem** * instead of loading the boot sector. * - * seg= - * loads at and jumps to :0000 instead of 0000:7C00. + * seg=[:][{+@}entry] + * loads at : and jumps to : instead + * of the default 0000:7C00. and default to 0 and +0 + * repectively. If start with + (rather than @) then the + * entry point address is added to the offset. * * isolinux= * chainload another version/build of the ISOLINUX bootloader and patch @@ -107,6 +110,9 @@ * * keeppxe * keep the PXE and UNDI stacks in memory (PXELINUX only). + * + * freeldr= + * loads ReactOS' FreeLdr.sys to 0:8000 and jumps to the PE entry-point */ #include @@ -129,6 +135,8 @@ static struct options { const char *loadfile; uint16_t keeppxe; uint16_t seg; + uint16_t offs; + uint16_t entry; bool isolinux; bool cmldr; bool grub; @@ -284,7 +292,7 @@ static void *read_sectors(uint64_t lba, uint8_t count) inreg.eax.b[0] = count; inreg.eax.b[1] = 0x02; /* Read */ inreg.ecx.b[1] = c; - inreg.ecx.b[0] = ((c & 0x300) >> 2) | (s+1); + inreg.ecx.b[0] = ((c & 0x300) >> 2) | (s + 1); inreg.edx.b[1] = h; inreg.edx.b[0] = disk_info.disk; inreg.ebx.w[0] = OFFS(buf); @@ -342,7 +350,7 @@ static int write_sector(unsigned int lba, const void *data) inreg.eax.w[0] = 0x0301; /* Write one sector */ inreg.ecx.b[1] = c; - inreg.ecx.b[0] = ((c & 0x300) >> 2) | (s+1); + inreg.ecx.b[0] = ((c & 0x300) >> 2) | (s + 1); inreg.edx.b[1] = h; inreg.edx.b[0] = disk_info.disk; inreg.ebx.w[0] = OFFS(buf); @@ -422,10 +430,7 @@ static void mbr_part_dump(const struct part_entry *part) chs_head(part->end), chs_sector(part->end), chs_sector(part->end), - part->start_lba, - part->start_lba, - part->length, - part->length); + part->start_lba, part->start_lba, part->length, part->length); } /* A DOS MBR */ @@ -564,7 +569,8 @@ static struct disk_part_iter *next_ebr_part(struct disk_part_iter *part) } /* Success */ part->lba_data = ebr_table[0].start_lba + ebr_lba; - dprintf("Partition %d logical lba %u\n", part->index, part->lba_data); + dprintf("Partition %d logical lba %"PRIu64"\n", + part->index, part->lba_data); part->index++; part->record = ebr_table; return part; @@ -625,7 +631,8 @@ static struct disk_part_iter *next_mbr_part(struct disk_part_iter *part) /* Update parameters to reflect this new partition. Re-use iterator */ part->lba_data = table[part->private.mbr_index].start_lba; - dprintf("Partition %d primary lba %u\n", part->private.mbr_index, part->lba_data); + dprintf("Partition %d primary lba %"PRIu64"\n", + part->private.mbr_index, part->lba_data); part->index = part->private.mbr_index + 1; part->record = table + part->private.mbr_index; return part; @@ -1280,13 +1287,15 @@ Options: file= Load and execute file, instead of boot sector\n\ ntldr= Load Windows NTLDR, SETUPLDR.BIN or BOOTMGR\n\ cmldr= Load Recovery Console of Windows NT/2K/XP/2003\n\ freedos= Load FreeDOS KERNEL.SYS\n\ + freeldr= Load ReactOS' FREELDR.SYS\n\ msdos= Load MS-DOS IO.SYS\n\ pcdos= Load PC-DOS IBMBIO.COM\n\ drmk= Load DRMK DELLBIO.BIN\n\ grub= Load GRUB Legacy stage2\n\ grubcfg= Set alternative config filename for GRUB Legacy\n\ grldr= Load GRUB4DOS grldr\n\ - seg= Jump to :0000, instead of 0000:7C00\n\ + seg= Jump to :0000, instead of 0000:7C00\n\ + seg=[:][{+@}] also specified offset and entrypoint\n\ swap Swap drive numbers, if bootdisk is not fd0/hd0\n\ hide Hide primary partitions, except selected partition\n\ sethidden Set the FAT/NTFS hidden sectors field\n\ @@ -1322,44 +1331,88 @@ int main(int argc, char *argv[]) /* Prepare the register set */ memset(®s, 0, sizeof regs); + opt.seg = 0; + opt.offs = 0x7c00; + opt.entry = 0x7c00; + for (i = 1; i < argc; i++) { if (!strncmp(argv[i], "file=", 5)) { opt.loadfile = argv[i] + 5; } else if (!strncmp(argv[i], "seg=", 4)) { - uint32_t segval = strtoul(argv[i] + 4, NULL, 0); - if (segval < 0x50 || segval > 0x9f000) { - error("Invalid segment\n"); + uint32_t v; + bool add_entry = true; + char *ep, *p = argv[i] + 4; + + v = strtoul(p, &ep, 0); + if (ep == p || v < 0x50 || v > 0x9f000) { + error("seg: Invalid segment\n"); goto bail; } - opt.seg = segval; + opt.seg = v; + opt.offs = opt.entry = 0; + if (*ep == ':') { + p = ep+1; + v = strtoul(p, &ep, 0); + if (ep == p) { + error("seg: Invalid offset\n"); + goto bail; + } + opt.offs = v; + } + if (*ep == '@' || *ep == '+') { + add_entry = (*ep == '+'); + p = ep+1; + v = strtoul(p, &ep, 0); + if (ep == p) { + error("seg: Invalid entry point\n"); + goto bail; + } + opt.entry = v; + } + if (add_entry) + opt.entry += opt.offs; } else if (!strncmp(argv[i], "isolinux=", 9)) { opt.loadfile = argv[i] + 9; opt.isolinux = true; } else if (!strncmp(argv[i], "ntldr=", 6)) { opt.seg = 0x2000; /* NTLDR wants this address */ + opt.offs = opt.entry = 0; opt.loadfile = argv[i] + 6; opt.sethidden = true; } else if (!strncmp(argv[i], "cmldr=", 6)) { opt.seg = 0x2000; /* CMLDR wants this address */ + opt.offs = opt.entry = 0; opt.loadfile = argv[i] + 6; opt.cmldr = true; opt.sethidden = true; } else if (!strncmp(argv[i], "freedos=", 8)) { opt.seg = 0x60; /* FREEDOS wants this address */ + opt.offs = opt.entry = 0; + opt.loadfile = argv[i] + 8; + opt.sethidden = true; + } else if (!strncmp(argv[i], "freeldr=", 8)) { opt.loadfile = argv[i] + 8; opt.sethidden = true; + /* The FreeLdr PE wants to be at 0:8000 */ + opt.seg = 0; + opt.offs = 0x8000; + /* TODO: Properly parse the PE. Right now, this is hard-coded */ + opt.entry = 0x8100; } else if (!strncmp(argv[i], "msdos=", 6) || !strncmp(argv[i], "pcdos=", 6)) { opt.seg = 0x70; /* MS-DOS 2.0+ wants this address */ + opt.offs = opt.entry = 0; opt.loadfile = argv[i] + 6; opt.sethidden = true; } else if (!strncmp(argv[i], "drmk=", 5)) { opt.seg = 0x70; /* DRMK wants this address */ + opt.offs = opt.entry = 0; opt.loadfile = argv[i] + 5; opt.sethidden = true; opt.drmk = true; } else if (!strncmp(argv[i], "grub=", 5)) { opt.seg = 0x800; /* stage2 wants this address */ + opt.offs = opt.entry = 0; opt.loadfile = argv[i] + 5; opt.grub = true; } else if (!strncmp(argv[i], "grubcfg=", 8)) { @@ -1414,11 +1467,20 @@ int main(int argc, char *argv[]) goto bail; } - if (opt.seg) { - regs.es = regs.cs = regs.ss = regs.ds = regs.fs = regs.gs = opt.seg; - } else { - regs.ip = regs.esp.l = 0x7c00; - } + /* + * Set up initial register values + */ + regs.es = regs.cs = regs.ss = regs.ds = regs.fs = regs.gs = opt.seg; + regs.ip = opt.entry; + + /* + * For the special case of the standard 0:7C00 entry point, put + * the stack below; otherwise leave the stack pointer at the end + * of the segment (sp = 0). + */ + if (opt.seg == 0 && opt.offs == 0x7c00) + regs.esp.l = 0x7c00; + hd = 0; if (!strncmp(drivename, "mbr", 3)) { @@ -1427,8 +1489,7 @@ int main(int argc, char *argv[]) error("Unable to find requested MBR signature\n"); goto bail; } - } else if (!strncmp(drivename, "guid", 4) || - !strncmp(drivename, "uuid", 4)) { + } else if (!strncmp(drivename, "guid", 4) || !strncmp(drivename, "uuid", 4)) { if (str_to_guid(drivename + 5, &gpt_guid)) goto bail; drive = find_by_guid(&gpt_guid, &cur_part); @@ -1530,7 +1591,7 @@ int main(int argc, char *argv[]) } /* Do the actual chainloading */ - load_base = opt.seg ? (opt.seg << 4) : 0x7c00; + load_base = (opt.seg << 4) + opt.offs; if (opt.loadfile) { fputs("Loading the boot file...\n", stdout); @@ -1639,7 +1700,7 @@ int main(int argc, char *argv[]) char config_file[89]; /* 0x270: start of code (after jump from 0x200) */ char codestart[1]; - } __attribute__ ((packed)) *stage2; + } __attribute__ ((packed)) * stage2; if (data[ndata].size < sizeof(struct grub_stage2_patch_area)) { error @@ -1723,10 +1784,11 @@ int main(int argc, char *argv[]) * fs_lba should be verified against the disk as some DRMK * variants will check and fail if it does not match */ - dprintf(" fs_lba offset is %d\n", fs_lba); + dprintf(" fs_lba offset is %"PRIu64"\n", fs_lba); /* DRMK only uses a DWORD */ if (fs_lba > 0xffffffff) { - error("LBA very large; Only using lower 32 bits; DRMK will probably fail\n"); + error + ("LBA very large; Only using lower 32 bits; DRMK will probably fail\n"); } regs.ss = regs.fs = regs.gs = 0; /* Used before initialized */ if (!realloc(data[ndata].data, tsize)) { diff --git a/com32/modules/chain.c32 b/com32/modules/chain.c32 index 2c97cea42d0f08c1d39baae5279ba43c5220d4bb..5787c807f8c4b21cc733e473fdeb425397b09778 100755 GIT binary patch delta 5535 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 CCRT_5 diff --git a/com32/modules/config.c32 b/com32/modules/config.c32 index 119171067f5d351f6ff4dd4b71c165f0a4d90cb7..31dac0091d04fd8830775e25df15984e169cf9e4 100755 GIT binary patch delta 1040 zcmZ8gZAep57(VCj=C13yvrNL&)Z{AZqPB|Cyp)>K2ZN+6q5edKeMuj57ZTF2ZRF{0 z;W#BBK_Upz2NV;rGRsO#%pZkWK}7w@-Bw^U`XXHKSreoK&wZcwInVp<-MQxm3Im1N zebcV7#eX6Q*6x!bZh0eZk=5KWgC4TxgBa!GL}LT1Jv)_KGS|l=vD^a6B=59H-~-}<6c&P3ov6f z*s*Z04Vq0*S)s$uFHwgsDx2t6`a4q3&f_XQOCEJx2UDxL%^V ziSHtJHxYkFxLb5%JQ2=LnJ?fDwp_}?UE!_LDr_yp@FpL9uZI6he3>kiy58eS^)@SV z+--{%bAq)>9t3TpUW3lnDN?Hq&dT|Mk3J2r(6|b}qVGVuOOYC=C7J^^T~j3LNZ1UT z+-?M^gbqbNC%x1%Tm^H(te^BcrL+t>pO_1UY_laT<-uK;3o)mV&zdde_zLT@tPW3E zvaop^zLS>eaW+q0i5;v)4q-?5m3#@Wd9A-)iw8!0LT-9#O? z(Zs1zMC^~PA0iYZzA3F5q94`jhbW5ZkIfoHr9o>ciFaZP#eutX&Y5#>?%tg=7dIE@ z-%ERYXAdV3tW77L#3mvXiiUxNm?x4ycTpCa`*S2z@~6iV25y9OB8DEefaAU$9(3pM zGUpM&bXE?uo2(U-b@Wr>W~7Pad4QxK8aLFBmM4+UJiIv)TYzgKgC+PDE5b$iJgdQ; zX>7XJ*G%%=}$V8sAuPJ6}GWgxDMZAGlW%TbrM3xkf@wq4uF1i-)7f- zWHOmAwF*K-5Eq;Xl|u|nKu9ZA0&x}+X8H$nAuCa+smkdXK;=$1edlgA26^h|a3}cJ zfy|?04Ceg7fBfkPZycjv0c?1QC|Y62;7GDgjUd%Jo{L;rvCuj+B4TS7TV|V8xdyma z>MJsRi0Wj95fg*I6j~1I?~hplN(t5+?wY3r(>c(N4Q3jzCImKQ+1X{=Ec;i`wNfP* zV?DM>jW2*%ce%7zU+R~&UAkM_qfghoNtdQ8f$RL_s1j)7`$3;OSpd~!fmdq*DdQ!w zWpV(jbrOKVkF6%=7FTF5$APUEyxMkspSD{Gc7c%Gt{qkai$#R|PHn$lpdCY1F?RF{Yf?=K}|Y>Q(XZf9MNg+e$S zO*y9H+&=h|oJjYv$#OZaU~A+Eu86*uTXFd(s5S-B!JdS;gBp*4(I5YCH^((^b diff --git a/com32/modules/cpuid.c32 b/com32/modules/cpuid.c32 index 97b291e4b3b5d080ebb06a7032c65808830f81dd..9b3810d7c115624984a653aa15cca309c42fa446 100755 GIT binary patch delta 1010 zcmZ8gZAepL6n@|9U7POXE_JC{rgoLwDwM(sN2YxugT%B?A%93&s1a--5v|%rz1nJq41~T(E#i(>@i3Sz?d@gg-_kDJe_dV@{j;=(wkmK_u zhBKUGD4V`3(E(7Z$VB*iphZlrg(M0%uz%m8{g1%I`eif)#)in4M0HS=Tq0bVmTzfK0)%B|K;E=8!DWAi=qCAUt~0r^QK z+)00d0i~vd3cQEbC2T9I)F9-V_W19L+QIyZ`j0klAasmAU^Z=}Rf_sF% zPFU$&P=gZAwi<=Y!$5^6edN8x>uO-5AN|{4<^$L<6#v6nUh!XE9nVAHzc{lNG?z`} zdHFiK4=|1FjWeTsNsW?YVz%587qQ$-oqSf=UdXLxN3P^R#4fII4f38DfouVFc04A4 z6(<+4uJwY4huEC}I~v*{vQ;BlpyPa2?$i?IB6x-&`gZbC6C#bG==n+p1u_bn+(WZe z8Ji!lwzGo!E{mrfmdGmb(XpM&tsp5jQ6~o&0ad;N#Kp?;d3s8Xu`58+@M^7uslzegm$fL?6I)!Ayf60qA`SB@2O72NuG0__jy0gIqyBU+u7|b zyE5v2F!^T^!PwYw_ec>!;aEQyVd9CFO`D&gT3arMs=wdXnJ?$UK8X!qzXuUl%`mB3 ze%4v{Fq+l%<+MfyKv|`}N`8*EOGO?q(tveqSC5rXNBg|vdkP^fp$=+<2d}0`FemGX z1K-Ez$q1f@_mG)PF@8xJnYz*{8-x%z6*6p*NaSxN3pvJ2$$vWzp=%7yze)y}8QcZ1 zw;RcevR;Ff?;03c5l zf(h~@XJX)69%Lma$)eC12P$0ZSD!n(l@^-%IwC{P5R{{s{ST*hs*st4HWQz&QP2mWlelJY>s=ll0wL5$jt?fUR&X2U~Xdt294SeNwp+XG32Fbq=T_ zLm2@|G5Qo5HB$(U=0cBhpht-YiMAT)W-`Q9RJ{XTb_k(3tl?#>wgagxk`(%&#s&2u zX!>PRVJfXXOT+dG!IN}t^*d9QP=}{I*AIhaxFufKC;?SJ07Ri~y`Ahb)!QDKAnXCe z%3j}2d7BWrNp6{n3(tU@a>#xmc!c`eh0x)cZt`RNG`1;LyzU7^-4RBi_Xd{D`MdjKW6fi6MB;N3gscK5FubwW9 z&qZeB7dM}T4K=sKZB{L*Qf(R1d=jV5f)>_1)fMV%0o$R*Qy*!RYDp|%K}D$#aGKf$ z%@Ws^4=G|-ZX#R=k>yi?HKJP>kH;!F9{b!u{Ty} zjbPjw>l1hrK2B~FEhV3d*nqnLA+d}@!)X&*0`24Bh0yWB`ez+ZiwN$C_Gfjf4yU<{ n_85MSu`!(HGx_iT(Wq|))NclO0mzOJ3lIS%fa!Kb0``L6+np${ diff --git a/com32/modules/cpuidtest.c32 b/com32/modules/cpuidtest.c32 index c4cff67f2e8d84c8901da2c6b368890cf6a7b596..3e8c83e1ab36235072a9318b63cafb8f68e9a86f 100755 GIT binary patch delta 6032 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 diff --git a/com32/modules/disk.c32 b/com32/modules/disk.c32 index da3aa79fe52a1e0613fe8542f11f036a8d1149b5..3f05cdd4059b8efb68de6ac5912dc74b5ab62228 100755 GIT binary patch delta 1001 zcmZ8gTWAwO6rEWo$u@2>p|zm4HdVG_5|NfleRQqH2Z98A_3@z}euythwR9sz#L#X+ zyKX9mQ9t^lNDBoOm5BI2)M}|%iy&1HrLBS{Yy7AfY86Sm6C)HC&fas+J@@YH>}=E* z^_ASo1V$JCP9nJWbUfKP522no!Ek4Nv67{$a@4qQ6_MxXV^jEkrAL)X&wUXbcMG6L zKlr=Wd0a4@{_p(;lR)03PbMR=cG=Sh-uK!ETTee2%>!8>)7Q z2x-3v?b-xHANSp2&!)23>}Q!GlyM@|0-%7G4uq5n8XjfqEQ>-J8+0Yh6&LLq0ZMN_ z(%<@`TIn}v{ctu4{$(I@bk5>DzwlpvDW6x*(%XS+0hti<0(5XDn$bLSnVmLNm=nv* z_PmJA7M8M<`L{!^c!NufAktO2R2w3ZX{xUQ^~ZQlfKh_!;jR@lLLlCo1KT*fS(YIn zld^5rvVtiqpF$%etkqi7GzOXZfJ@El+K{9iQhmx1b)gbS6)GwXU*nY%G~CZ)YtWZ+ z!!$|Y(|SS524u;MaRRE@4MgK*^Avk$ty5lGz%~kAWxv{@9Hx<{Af)yyZ8W@^AQW;c zM^(3Sj7F|<-Kzv?_&j&F(@1Z;!4|~$O?*Tw5^yh@u)Fc)c-FoWJ1gKM>4Vdo;azEX zKJ!cKL!kogq%38Fu9SxptonHn)UC!Abh=&^yIrtXRj>HcGw=z`0eFhhfQ*1F9?NPOAZ7wvjpOVA+@E)uSu@9u2 zEqB!7i|ml2CVt6Lhi!Y|&*{kQWuKhYcz`XSF+32zLU&q1lW-8`m53;jwxEr$cl%s? zI6{^Am`J-2A3B!Lc`cC^bK3htp8dTNX(`t~GfU%@k1#(8m;s<-gb2U|m=9Q1j994H F@dvWD72p5> delta 1002 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 delta 4685 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 OT!vYIl@4ip%j5qdV;;Q# diff --git a/com32/modules/elf.c b/com32/modules/elf.c index 182afa6..0ac4517 100644 --- a/com32/modules/elf.c +++ b/com32/modules/elf.c @@ -120,10 +120,8 @@ int boot_elf(void *ptr, size_t len, char **argv) if (!mmap || !amap) goto bail; -#if DEBUG dprintf("Initial memory map:\n"); - syslinux_dump_memmap(stdout, mmap); -#endif + syslinux_dump_memmap(mmap); ph = (Elf32_Phdr *) (cptr + eh->e_phoff); @@ -185,10 +183,8 @@ int boot_elf(void *ptr, size_t len, char **argv) if (!stack_frame) goto bail; -#if DEBUG dprintf("Right before syslinux_memmap_largest()...\n"); - syslinux_dump_memmap(stdout, amap); -#endif + syslinux_dump_memmap(amap); if (syslinux_memmap_largest(amap, SMT_FREE, &lstart, &llen)) goto bail; /* NO free memory?! */ @@ -239,16 +235,14 @@ int boot_elf(void *ptr, size_t len, char **argv) regs.eip = eh->e_entry; regs.esp = stack_pointer; -#if DEBUG dprintf("Final memory map:\n"); - syslinux_dump_memmap(stdout, mmap); + syslinux_dump_memmap(mmap); dprintf("Final available map:\n"); - syslinux_dump_memmap(stdout, amap); + syslinux_dump_memmap(amap); dprintf("Movelist:\n"); - syslinux_dump_movelist(stdout, ml); -#endif + syslinux_dump_movelist(ml); /* This should not return... */ fputs("Booting...\n", stdout); diff --git a/com32/modules/elf.c32 b/com32/modules/elf.c32 index a3c64f890324b9fd73be0690a8c3caa38dc1f13d..b8ec063a9b44d7c877fcd2dfa3dcabd7714445ed 100755 GIT binary patch delta 3973 zcmb6cYgkiP@|;V6fRP)45?(@p3mTz9ENeltN+<#%@=#t@LEXX1E0>QPQ_trJ38ak>woxU^)hc&%V$iG9nr z{^Ou;KoII?2x-cGc$yZ{V(6lisVAtoD0&v+xEOi}a=7(WhAwUw-3iM*Lg-4^=rKL= zegGk5&Nw+k$WY8WLJ&z)Qic$dQU;ej#wE{x9F2EM=Vj2~`m#74f0Y=Xko@}5`#q4b ziIZ=+T+UQEQ)SB)RMOWRY}vxRA94NAGI&$cG@`be>!!6f~XUT#dUYGtlE+-cgIag3uO1{o;c?OX!f?7(# z7#hzwq~YmmWKEEcIj;@NO1_=xDx4$EZy`w=iZ^POb`jkLZ)+z9{4A+0c<@q(@;kVr zjiZ?mG3E>U1PqKZdN09Ru^9uD9l6_o*$bgcwd9DHbK?{-_dt^~H~0y**qyrxUQ8-7lA zG49=BLRwh`QFdN;xulN9Hp_2^=uJpBwpm9>y~<(uEOVOp?IrJ+y5HgO| z!oNe3=mvXWs1Fq~=MF8ZR#twCmU>b5=KP8ycnWhcAnwW=1Lm+GN}()l2G=nMc7H&_Tygokn$3t?k;9M@6^d&7IVqXqEN*jnaP zgoV4156?w}atHF^&4?(v-TrZeFQt8OAu@|5L!^Et?X@q{dsFUKF070y$a^W5kjhT+ z8m<~cZ1Qm&rIW4EEDA3Sx?HUUOVMqym&M%b&A%rqOhD|zU*_actq&jBR1s*SGpGuR zqxaL9pp7Y^55dxy2<~DI9P$i;7h}?68*)(pm{cTaFerXld8@w02px08phb2Gh}Bow z1}Z_pWV$ZIPzlDwMo}X?6r0N3$%dNPNbY<#Y>us(RGrPvTdo@~^(+0Mi1#a-zhco= zUYUg6RV+L*R7CgrpXbvQfOXY&8 z{qb=dIJ(My!w^g9Y|zEG*4KT2HT7#-EzzVCvNMg4p6P_7BXmzAgzQQsWIIAKLTd^k-#$#ptz@jW2%n?ZD-p7d$WJ0O2n2~Wn&9|`HjmZ=c|yEbxJo9hAb6@w)C;oX}_3$l0Gn$iR-ShRY#8d4f}zN z>7K%Z5qc5!6?}q(%T?i0yG*hX50uR+EUkeMku!zY%g-cBYXp;AoWjx*mgbm(^d4)3 z6l9iR*BLJk`mHv&#aGM!k3m!2QDcw7~Y4}9-k{@ zry_^nuo8ERTh|)8r&@&E+E8?Vym+WB3}av!E#0%pbG~=E95=(oX{ML@-KsC$76j}i*t2m3b!Jwxcas-d5v+aKrBrM+j|`MuT#ZJaj>li) z3F!iE!PFe+*HomYX55(GdQ%!iF}*Vhjpz+GFa!xhj;_l3UrwTVf%dwC!@{M8eX|9P zTD-@t{zAIxW_&X{Dp%c{&o$+74j0=|2fD76+SwsGy;vBff#yuwWTwrTT$7oz{oX_B zx0QI{ytcW-qp8qCyzapao|8Ud#|DLYQxY|J{PYuaGsC8Ozgg{0n`}(qI?gfg9;>M` z=D$rg;W^+6;jlk1A{uqB(=Lo)noYHrZ%Jup3RRq=`0j`T4Ccku2lDIx`2(t<0qJzR z!vpmL4c!=OZTlq;!%26Zur$hx!8?E+Xw7IcT;grnRLa*No@C4Sj7Pqkov*?n*|wQt zG8o!1TH#W*RYR?%_5;nae}KvPfvorwA3qsIkN(uDNW>(JM4ciE%el;A&dRP(BarA zrcvO_vqH6ajm_%@2=c677|+=3j3GB5A6Asdb6S6RvHWRM22QgNpF<+Uu>s!}kE-24 z`|+_+t3}P>X^W?_A`7LSc1q&Id%nsZC{ z;N$UN*$|IeWN>9UmT-j9#Yp3mS%VOQARwe5%s^ms6Vc0LgbaiQ$Xf)LpM2s!w=FwQ delta 4128 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 NU>|rd&_6fa`@ey#fLs6o diff --git a/com32/modules/ethersel.c b/com32/modules/ethersel.c index 5c3cf02..28dc62c 100644 --- a/com32/modules/ethersel.c +++ b/com32/modules/ethersel.c @@ -38,12 +38,7 @@ #include #include #include - -#ifdef DEBUG -# define dprintf printf -#else -# define dprintf(...) ((void)0) -#endif +#include #define MAX_LINE 512 diff --git a/com32/modules/ethersel.c32 b/com32/modules/ethersel.c32 index 345581870fa7e015847146fc9e295f38e5f885d7..86e586207f0ff4e88e6de86a130d242b8db521af 100755 GIT binary patch delta 3867 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 PCvXTj0{jPP2Ke`1`*2OL delta 4062 zcmai13sh9c8J@YjEQ>DeMiEg~d0ll^P(TTStO@95!HA-91zHh_Nz|xEjV@}ABt$PN zm+NgHV@}d4JvNE0&7+d6F_=DN5kYNKd?Y>^jap+a0S%f&(W={TP>gzdPVYJ2JpP&g zpKtz|`Dbp+dD`-C8c}yA=Rou=jo_QUYPW9@A*#26B4x?d5rY%DipupNMqTfp*lNNdH?tWqB%#Lj1b(I?QW?2O(`YuLyDXWZ~; zLXzsI7wyi^o7z23=RC-ctf@DbzXmQ+eWY}@Lt%~Voq!6ug~b`hMU0B#Ofz`v3M=sh zCmm6x!Z-bX?J+Bp4MT*;7uhFCvn4o{Z` z`op9qecP1+Wsv(NLUvbGRZRmSsom7gsRE{CUz1bpNt6$cv1x(T{f_bB8%@)TX3l`Z zFZ2&He_%$hsyU#TBZhKnC(u)CXH$#`w4JRojuQILVV@hP(RyYH`jURnE(Q&qyz7O# z%aByBO@U8#VhxFWQ`WTJU@sl?uc+QPFfOOD`*i9wVYCwm83!Po*$zsWVxkGA9yvIAKes@(~Td=yArcS0Mx{7Qncf6KLN-h`e z<}O&(z5=6ldtogb+0zrcZ~&-fnZW4V*00by-zgf|3~M-zVaIxAl7+#-NZgN^?qU{XzBIK7t1FUx2TUR zXSNz}Jv+OqaTXz4fg0cqU>&e?CKNv(#(mzQ1>W)d84Z4h7JA*mku+$`&web8dCd)0 z8Zre-c`#%neU8mD|K70R8usHqS%{_0uo9iLQ_OEUO^>nDkEPOgSXi${;c7Vhy4NAY zK6pj5c|Y#0qlWq`C`Wof4|P$4rvv4q%n%l9n81tgdlSN*r*r_@(AO6-D<51WH*1;`a>OJ~ifXiVFnt;aamoMHwwuQ`wU zs#4LxO*19-;An20FS#FEfm_qY2H+Hy!jO5*+vp5`a8guz)aXLS#PNb&U}wbaiPcYI zm>O)#t_T|sr9>#{?lHBXoU~76CggYB`9AO3q2(fz_WBVptENur_S;iz>7d~Q!(cI6 z`v_$2`!=t;$IbEV8+{lZ$G#dghQ7x_2d@*X<5|sM5B;OJ*N}Bo7?{O2+J+9#;!|lf z-ir;tM9fpJu5fRVrBpCdyHf2U`_YzY+<+#zNgK`L?EQM&53%!Dkv(1*<6`UWW9S{W z-#(Cj!&>dh^nEsP=n%S^xrTPoYBnm)LEX#~x14^>+T%RfThGQv& z!a9fV8ez%c1eFywxl`*z{6H3Y9oJZg=0AyTUo`X4jSr#;3ABRsODwgFcoJ6#@q0uo zhgQzEBu0YkoVm~CNQK#3Qv`!HEI=r8Z6e+#JjwjcZ9ovI&a$a3VYSReGNF}6v z6d@N=2w4K0d>nBY_%xZ2IN+6$ghT-KBM7Ml_9YQA4sZY`5(y~;ev?4RTk(Wc0j~@t zBn)V`K@RAEQ$q;(VKAryp20do4zb5lW)8?ell)XTuC0tnB$-Or)uFn@3~i8&sVQ6O zd6qJ2KdognwMOVQm~BpdldfbbX=~|E?C)ue7PBd%E9sZ)>(Nz$GnOq(-$of5=r}Cc z26(SHX7n`9!W*G2Kx^>kWuK>}6*x?7LH4Wi73~;vKHW%nv7iZ=!3RQc?o1+&wVIFR zPuNc)4QkkBVm}>tcz3K=wuYH3{o{023-E6>BLKK%n_DSagkIqh& z&UVT!N7BBwP$e(5!fn!L`o1^Hd8v|Sgd82E&cNjtnq70DMpV~a%v7(Pynu6>t4CGo zt9^lrJ&Tp*MABC8rkwpW^zJQJ1qF?3;hi-x+FLs5i2$*u2uFaBpYRm zlBribqJ^EAI@)YiUP+b_B9v*V2wg@t#O(;P>Pp2_2n*!}qA1-AS#Iy@o;WQm$tX2g zctvUwWMp_H7-Mt9$x5l1p(ej>-tk1`BsyDJD9BCb9loOrV6fgD+M^Szdd+7smv3Qb z++hxjdB;n%;_%Un)PsQ5VB`i}+}uA9o``(o=tXssA7+j804gwIzxfc0vj5G(4HizY zs0^vd5lvl0Uj2oLy}`T#;w~E75D4TB%s15hnI981$%mxx%xO25K8XoE$}a8Z5`!OJ zYm2$pD3o<`$F2x{*ddS3K!+i5=1tx6kbQAEVs;uN=Cuu&Ev9a=A58a%Im`Nkz9{Xg zkAM$6!SZcYnS#5wH4|LX5)Ya-L~1K3d8Q0RQtemh4Oq6NT{cVUuw?%k9t@S6vA_jw zM)a^jD@x6x5Jah&JhN4frxm%>kEdP9nbzan*I&suT6NG)LxeC(t096`q5V2`Kztlz z+-BP4rN_IhN8yc($B0q};~1h;EC79*>guw6ccg;KEL!2>LqwIFK{(TMiaOj>X$$xO z3l=SSz*DszR3NkXfiyP^s6HOW4{E7}Yohc&Bo(TYr3 z=@Ke31@&c}+^Od2&~B>C(^X8-Ntblo;4%3S-v`W>KRUsP{X`Feo>SHDtTcA*!)zRg z6+&we|NZDtaH3Qt9Se&Q!r9P*ficjzL=V858LEDpc}Hp`SC}ib2HfgaVDk!M%Pi*A z>;D5a7?2P9T6NI3*bicTOulnE`~I$t$M@x=SR5)aFlEAIxNKJOD$X^boT%mo#6jLA z&ebDJR$r%l=lI~Qa5>u|m!!(m98zQPy*u>&jkqw31QGML7P&?99rE`1)is^D0E+x2 z(-(QORKWVr$nNLBR?S>>gFsYr3O^5CE>Oz*JJ`w@@zlY#&L|BoL?i#&dMHvMODY;@ z;S&6g1!%v+qePV)Y-Uj$Eo4g3P^j!Eilz?liK3$vl@E(wMmqS}iHXI~*?phhwO}mY zUh}pF?YHmp$Kd^j)4ZWY>umJC`|N>WmpkU}*xhN}VnU3F*qf1?kiU)Gg8cbeg#7I- zBXOYI30Vtp0eB54c!~KIJ;_=YC9>O#diLX@2Z0(1$Lq14MK7Mvrx;gW_xIgTCNkDQ zNGV&jxNq4xT#DNP{&A0ROj<-p5s;4IUqtQ!RsrjQ&A>+hZ|e{HQ9vTl2-#ks0zB3O zRlo*d6TqkSAy5m{1ABoJK>K2Xs~!J};eZv02NHo~AQf-`8GsYW26BMO0RR3A(@Td) diff --git a/com32/modules/host.c32 b/com32/modules/host.c32 index 23fdb8373e7620198da02aa57b5749fdc18fcedb..a8731b8cc3898c4e7137515e6004be9989382f91 100755 GIT binary patch delta 975 zcmZ8gTSyd97(QoqbZ6Ib&!`Vsnp%#bD~M*4=3uEsFAGU(K12_NbP=({*;qnab!Ty> zS)t{WfiGP^2&$)zC?m3q7;RES7kaUR$eq@Q%EhQ;xBqM_NC&?8zyJF$=bv+Cf~CRI zf;$PGqlRs4Era*NkTRhb{X$MWym;GrK~ zZg8C93`f)Agh3ZT*{6SuPJ}#il?F~6(9yZS&9_j!vc+=(RlKafGpGnr!&eB;C<#4l z!4c}fZMcXY#*O#`y@IQ78GVTh@Oip`chE{VWTXX%K392*KK-6dCcnrIgc8{Z z^#Tas1+-Plh&D?Pa_hYbD^x{G6p4&PfRfu&`uobDukZ(yemWO~{PN6y7+%GhHuj%? zIqlc3(mlX^E}7@eF}4pd!3?IEWDZ+VZb~dMJ!uh}y)?^G)U+3T#p&K?xRI{Pg}!Ot zzeMzUP=C&)1Zc&X6)dZY_<69C7C5JwU9t=YnS^#*ifrFtOvOq35gM}Ob-o7Ayw9W_ zb-Pzoj;WPOx4KSo#c~yuXg68pG|?uQ?Q>VgilLjxv2NoaC0(*;h8O|W3;^-5uz805 zu{0`gG9Yaha+NN%S2<4nPe6!uDg8vN;}P;YloM*Pa+3IOFx{!RiFScydx(EL?B?AV zzYWJS@;E$Blh$HfLtRy?#KY<}`1C8<}R5)z#80DE2Ege?(9rWn!P+#fZ_cyX9_o zi>+h*DH4BJKl-`o6QZwSRA%@mB9Qu%-ezPu%uKf4vnEIf-gBP!d7t+^-@)==dC~o( zbGU4N0zuo?^Zb~AP$){h5D7$zR&Pv0?OHaADt!YwH*%; zD{jVxi@E z4cZQLu|;G90vuQMC|!LLZc*=ti8QCk9#+lq<)G1IkyWeG8eO5WF7WMYEdHIURP#_H ztQc1LO=}TrH$lN}3#15v?47F2iURDPjmO9u^8q|aE}1tN!r|x(b3M*+!{_Kpx`~Oa z!9h~TMQ|`W!mVSxP;B0Ukg$|R%hAfrni{|4c4mFac~C81du^e*yP(408Yg diff --git a/com32/modules/ifcpu.c32 b/com32/modules/ifcpu.c32 index adca812153b4443d6f9118685b0f57ba981c8e3c..0dbaef4b7fb6ece1bd411da9cacbe760a71819f0 100755 GIT binary patch delta 7099 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 RFL)7b13LhVnO%VW{uiL{c$feH delta 4360 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 +#include +#include +#include +#include +#include + +/* Pull in MEMDISK common structures */ +#include "../../memdisk/mstructs.h" + +/*** Macros */ +#define M_GET_DRIVE_PARAMS (0x08) +#define M_SEGOFFTOPTR(seg, off) (((seg) << 4) + (off)) +#define M_INT13H M_SEGOFFTOPTR(0x0000, 0x0013 * 4) +#define M_FREEBASEMEM M_SEGOFFTOPTR(0x0040, 0x0013) +#define M_TOP M_SEGOFFTOPTR(0x9FFF, 0x0000) + +/*** Object types */ +typedef struct mdi s_mdi; +typedef real_addr_t u_segoff; +typedef struct safe_hook s_safe_hook; +typedef struct mBFT s_mbft; + +/*** Function types */ +typedef int f_find(void); + +/*** Function declarations */ +static const s_mdi * installation_check(int); +static f_find scan_drives; +static f_find walk_safe_hooks; +static const s_safe_hook * is_safe_hook(const void *); +static const s_mdi * is_memdisk_hook(const s_safe_hook *); +static f_find scan_mbfts; +static const s_mbft * is_mbft(const void *); +static f_find do_nothing; +static void memdisk_info(const s_mdi *); +static void boot_args(char **); +static const char * bootloadername(uint8_t); + +/*** Structure/union definitions */ + +/*** Objects */ +static int show_info = 0; + +/*** Function definitions */ + +int main(int argc, char ** argv) { + static f_find * do_scan_drives = scan_drives; + static f_find * do_walk_safe_hooks = do_nothing; + static f_find * do_scan_mbfts = do_nothing; + char ** detected_cmd; + char ** not_detected_cmd; + char ** cmd; + char ** cur_arg; + int show_usage; + int found; + + (void) argc; + + openconsole(&dev_null_r, &dev_stdcon_w); + + detected_cmd = NULL; + not_detected_cmd = NULL; + show_usage = 1; + for (cur_arg = argv + 1; *cur_arg; ++cur_arg) { + /* Check for command divider */ + if (!strcmp(*cur_arg, "--")) { + show_usage = 0; + *cur_arg = NULL; + not_detected_cmd = cur_arg + 1; + break; + } + + /* Check for '--info' */ + if (!strcmp(*cur_arg, "--info")) { + show_usage = 0; + show_info = 1; + continue; + } + + /* Other options */ + if (!strcmp(*cur_arg, "--no-sequential")) { + do_scan_drives = do_nothing; + continue; + } + + if (!strcmp(*cur_arg, "--safe-hooks")) { + do_walk_safe_hooks = walk_safe_hooks; + continue; + } + + if (!strcmp(*cur_arg, "--mbfts")) { + do_scan_mbfts = scan_mbfts; + continue; + } + + /* Check for invalid option */ + if (!memcmp(*cur_arg, "--", sizeof "--" - 1)) { + puts("Invalid option!"); + show_usage = 1; + break; + } + + /* Set 'detected_cmd' if it's null */ + if (!detected_cmd) + detected_cmd = cur_arg; + + continue; + } + + if (show_usage) { + fprintf(stderr, usage_text); + return 1; + } + + found = 0; + found += do_walk_safe_hooks(); + found += do_scan_mbfts(); + found += do_scan_drives(); + + cmd = found ? detected_cmd : not_detected_cmd; + if (cmd && *cmd) + boot_args(cmd); + + return 0; + } + +static const s_mdi * installation_check(int drive) { + com32sys_t params, results; + int found; + + /* Set parameters for INT 0x13 call */ + memset(¶ms, 0, sizeof params); + params.eax.w[0] = M_GET_DRIVE_PARAMS << 8; + params.edx.w[0] = drive; + /* 'ME' 'MD' 'IS' 'K?' */ + params.eax.w[1] = 0x454D; + params.ecx.w[1] = 0x444D; + params.edx.w[1] = 0x5349; + params.ebx.w[1] = 0x3F4B; + + /* Perform the call */ + __intcall(0x13, ¶ms, &results); + + /* Check result */ + found = ( + /* '!M' 'EM' 'DI' 'SK' */ + results.eax.w[1] == 0x4D21 && + results.ecx.w[1] == 0x4D45 && + results.edx.w[1] == 0x4944 && + results.ebx.w[1] == 0x4B53 + ); + + if (found) + return MK_PTR(results.es, results.edi.w[0]); + + return NULL; + } + +static int scan_drives(void) { + int found, drive; + const s_mdi * mdi; + + for (found = drive = 0; drive <= 0xFF; ++drive) { + mdi = installation_check(drive); + if (!mdi) + continue; + + memdisk_info(mdi); + ++found; + continue; + } + + return found; + } + +static int walk_safe_hooks(void) { + static const u_segoff * const int13 = (void *) M_INT13H; + const void * addr; + int found; + const s_safe_hook * hook; + const s_mdi * mdi; + + /* INT 0x13 vector */ + addr = MK_PTR(int13->seg_off.segment, int13->seg_off.offset); + found = 0; + while (addr) { + hook = is_safe_hook(addr); + if (!hook) + break; + + mdi = is_memdisk_hook(hook); + if (mdi) { + memdisk_info(mdi); + ++found; + } + + addr = MK_PTR( + hook->old_hook.seg_off.segment, + hook->old_hook.seg_off.offset + ); + continue; + } + return found; + } + +static const s_safe_hook * is_safe_hook(const void * addr) { + static const char magic[] = "$INT13SF"; + const s_safe_hook * const test = addr; + + if (memcmp(test->signature, magic, sizeof magic - 1)) + return NULL; + + return test; + } + +static const s_mdi * is_memdisk_hook(const s_safe_hook * hook) { + static const char magic[] = "MEMDISK"; + const s_mbft * mbft; + + if (memcmp(hook->vendor, magic, sizeof magic - 1)) + return NULL; + + /* An mBFT is always aligned */ + mbft = MK_PTR(hook->mbft >> 4, 0); + return &mbft->mdi; + } + +static int scan_mbfts(void) { + static const uint16_t * const free_base_mem = (void *) M_FREEBASEMEM; + static const void * const top = (void *) M_TOP; + const void * addr; + const s_mbft * mbft; + int found; + + found = 0; + for (addr = MK_PTR(*free_base_mem << 4, 0); addr < top; addr += 1 << 4) { + if (!(mbft = is_mbft(addr))) + continue; + + memdisk_info(&mbft->mdi); + ++found; + continue; + } + + return found; + } + +static const s_mbft * is_mbft(const void * addr) { + static const char magic[] = "mBFT"; + const s_mbft * const test = addr; + const uint8_t * ptr, * end; + uint8_t chksum; + + if (memcmp(test->acpi.signature, magic, sizeof magic - 1)) + return NULL; + + if (test->acpi.length != sizeof *test) + return NULL; + + end = (void *) (test + 1); + chksum = 0; + for (ptr = addr; ptr < end; ++ptr) + chksum += *ptr; + if (chksum) + return NULL; + + /* Looks like it's an mBFT! */ + return test; + } + +static int do_nothing(void) { + return 0; + } + +static void memdisk_info(const s_mdi * mdi) { + const char * cmdline; + + if (!show_info) + return; + + cmdline = MK_PTR( + mdi->cmdline.seg_off.segment, + mdi->cmdline.seg_off.offset + ); + printf( + "Found MEMDISK version %u.%02u:\n" + " diskbuf == 0x%08X, disksize == %u sectors\n" + " bootloaderid == 0x%02X (%s),\n" + " cmdline: %s\n", + mdi->version_major, + mdi->version_minor, + mdi->diskbuf, + mdi->disksize, + mdi->bootloaderid, + bootloadername(mdi->bootloaderid), + cmdline + ); + return; + } + +/* This function copyright H. Peter Anvin */ +static void boot_args(char **args) +{ + int len = 0, a = 0; + char **pp; + const char *p; + char c, *q, *str; + + for (pp = args; *pp; pp++) + len += strlen(*pp) + 1; + + q = str = alloca(len); + for (pp = args; *pp; pp++) { + p = *pp; + while ((c = *p++)) + *q++ = c; + *q++ = ' '; + a = 1; + } + q -= a; + *q = '\0'; + + if (!str[0]) + syslinux_run_default(); + else + syslinux_run_command(str); +} + +/* This function copyright H. Peter Anvin */ +static const char *bootloadername(uint8_t id) +{ + static const struct { + uint8_t id, mask; + const char *name; + } *lp, list[] = { + {0x00, 0xf0, "LILO"}, + {0x10, 0xf0, "LOADLIN"}, + {0x31, 0xff, "SYSLINUX"}, + {0x32, 0xff, "PXELINUX"}, + {0x33, 0xff, "ISOLINUX"}, + {0x34, 0xff, "EXTLINUX"}, + {0x30, 0xf0, "Syslinux family"}, + {0x40, 0xf0, "Etherboot"}, + {0x50, 0xf0, "ELILO"}, + {0x70, 0xf0, "GrUB"}, + {0x80, 0xf0, "U-Boot"}, + {0xA0, 0xf0, "Gujin"}, + {0xB0, 0xf0, "Qemu"}, + {0x00, 0x00, "unknown"} + }; + + for (lp = list;; lp++) { + if (((id ^ lp->id) & lp->mask) == 0) + return lp->name; + } +} + diff --git a/com32/modules/linux.c32 b/com32/modules/linux.c32 index 6af3d225f0d9b2ee0dd32256802a2b5ea47bd9f9..a620b61ecc5333258842380baee9a24e75aee55e 100755 GIT binary patch delta 2376 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 diff --git a/com32/modules/ls.c32 b/com32/modules/ls.c32 index d91b9761d0a7e230311a693631ab3efc0dea12f7..b112057db8df79a14634a8314f35802933da8005 100755 GIT binary patch delta 2644 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 diff --git a/com32/modules/meminfo.c32 b/com32/modules/meminfo.c32 index b57b73124c38746f43c49f4b0e501e2dadfadcf5..761613acc8db76f9914158de391d7268a41060e2 100755 GIT binary patch delta 1006 zcmZ8gTWAwO6rD*n=^E2aND8)^K9sdIiKtbntsSdv)uIHnQt?AS#b~K7+(^;dq;6un zZUe@tS}H0CqM(A1D%v7GO9jb~sNjd9KW)}1_z3kuNxTyyhzn=$x#vD+_Rj3Ed)Pha zPR5s*JDo)EZ0mU(a3U0qr@@J`P;5@+@*LH!m__9N`A|1}yB3utAv*d4GVacRm+GIc zw;eKQw#ILlH8u^(X7yciZmd(n1F`cZj)Vgtjafn06c@aciP+P5xILC?#+7UlUVwkH z?RXTgWW|OI4zXFrjkuKgjWu|JT`$0N`(#B#dZm+t2c=VDZd2L z+YCf~>m6pRzhtx7iR(6mjsvC&5jqRl3ZU~zIKf^ErNK-AR3$5@o%B8fN^U<;UwiwN z0bct4WD(TeH2;C+AI`P1|NN@FKMMW-)*#RnpCkzS8NLoMQSZ+)yMC+yIdWo!-kBG% zzL)iy${IIhwUCqOHM?&etwNkjlUVuVqSuaP7$NGEK< zR2KXU+oT>6c?LGRR?zk!wL_93pVTp;z5q?X#}hi_6+tWAC3|VRJe&Gb4l0xI4IVj6 z!k4){5b&nTp|{n*dk=w>^+{Ge#tEo;9}tCy^=@EVn`Bjf8M;kOF)yJnO;D16I=VyN zOLvpV6A)56=s^;$6%Y#A=svle?kAD!T=&ob37_WKog^|8|6&ec{3`Ajod!I_j#$d^ zrT96^GHjcV;fxLe<^;=)+!*8*Z7n*{CW(D^m}2#F z{uvoKT>UDnqHRH%PZD>kmXr(9G+7eW#kn+H&4)Wc@~C5}kNI5HGTsFHhP{4(53Q|( z&Ie~gq0`=HUI#~Ghlz-(`y;SH#EuFT?5VXL?yOK)6Q_j@xF7_-Q%@$udTdMaAiHIY z;lX$dxh1r&hd>pe8qfe}0d&Frk!Fi%GHpUlFj{KoDYeIA=ki#e@= XwH7%`DEw^yKHbnU3>aWXi-))1{$-Bw)J znl_`xM8%V@;K|}UF{o*f1DbI2pivLP+7QD-MANkXQ)^=s|r7#co$6r_A-SO0VT)`IO1^7GL zfuG^!Y=)4*VOC<=gk7xFRD(aWE>j7<${w0l;tOodtI)X~0+!LJY7KAkQP=KK4#53r!V3)$nZDK{}H_$-`dlUFCW8 z3NQT>b3omF%O6<&;aqe7=hM9Z2>So6Nds4XR1}REUk8|EoXInX5iCH?oH*M!lozql z#yZWj>NkKddjl1E0BH&>Rg+?5l4#YS{`im+pp{_E)dYJ#KeYoHViG78xj z^Q_QU&}A=)B*8`-MSUOA{FFvUv?S5qfMz`634Uco$R@WbmGWN2E&EbVSs~%uJaUwT zZ*bcls7#eZZ=1k-Uj!-Zqc%h51XSZR5S53G4q$pSwW+^^6K1AbmdbC}2n!t?}#IP^eH1Qd>6QNO?HH%4%)|rCx7D=bEW>)&U1u zHORjt1OL~!0SoCqD(%*+DHr7E3YD}axg0~~F+ccTEt&epvovepI@mGna)e#5xp9)+ zwe7?=nYE}!h{Y0Xi&o=;AUu{+nIMbUtMN7V#2&}j5*x__k@Xgfn;RiW0Sf^u0P6uA zaBHYrLPHZ~v #include #include - -#ifdef DEBUG -# define dprintf printf -#else -# define dprintf(...) ((void)0) -#endif +#include char display_line = 0; #define moreprintf(...) \ diff --git a/com32/modules/pcitest.c32 b/com32/modules/pcitest.c32 index 447b539f901da2fc2e660aecc391e45cd07ae106..277032c170aa598322de61a495936e1dbe65cf57 100755 GIT binary patch delta 4722 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 YKo`&p90ra7r+_bjuYhyF1%QA516dVuga7~l diff --git a/com32/modules/pmload.c b/com32/modules/pmload.c index 3064a94..4c01db0 100644 --- a/com32/modules/pmload.c +++ b/com32/modules/pmload.c @@ -81,10 +81,8 @@ int boot_raw(void *ptr, size_t len, addr_t where, char **argv) if (!mmap || !amap) goto bail; -#if DEBUG dprintf("Initial memory map:\n"); - syslinux_dump_memmap(stdout, mmap); -#endif + syslinux_dump_memmap(mmap); dprintf("Segment at 0x%08x len 0x%08x\n", where, len); @@ -119,10 +117,8 @@ int boot_raw(void *ptr, size_t len, addr_t where, char **argv) if (!stack_frame) goto bail; -#if DEBUG dprintf("Right before syslinux_memmap_largest()...\n"); - syslinux_dump_memmap(stdout, amap); -#endif + syslinux_dump_memmap(amap); if (syslinux_memmap_largest(amap, SMT_FREE, &lstart, &llen)) goto bail; /* NO free memory?! */ @@ -173,16 +169,14 @@ int boot_raw(void *ptr, size_t len, addr_t where, char **argv) regs.eip = where; regs.esp = stack_pointer; -#if DEBUG dprintf("Final memory map:\n"); - syslinux_dump_memmap(stdout, mmap); + syslinux_dump_memmap(mmap); dprintf("Final available map:\n"); - syslinux_dump_memmap(stdout, amap); + syslinux_dump_memmap(amap); dprintf("Movelist:\n"); - syslinux_dump_movelist(stdout, ml); -#endif + syslinux_dump_movelist(ml); /* This should not return... */ fputs("Booting...\n", stdout); diff --git a/com32/modules/pmload.c32 b/com32/modules/pmload.c32 index c7c28087caa821a8158749b2e8d2025c13b269ed..25641ce3a8ff441c3b7c74f2fd34aa96bfe82d09 100755 GIT binary patch delta 1629 zcmZ8hdu&rx7(eIsZf&=2x81XQuvaf*TVYS+kyYJh2@^^fZi4|qrjV(CB#>4YvarEz zWyiakl@E{*jGBnS06{Hpd~D#Tkw6v%jLAaqAA2tyX261xEY$Co&Jb_%o%8#C=X;%V z&v(YU#=7#(J#}3xo>B;YYj<5X))L|mPNCw5@jzbb{1}v%>kXv*pJA1IbjGxpY0ed>FhoZ9&4hzvZ^ud%zzaG+bX_T%y-O8csntpAoDSOiXOmuaM zCdCm@i>V%x>FnI$EJD`%h6G<1Mp?;JxlJ_ronnJ>5LVEQbT6Et`>iL?akX#A)6*`y zL<5@eF_RBq1J_V!$snX7QYvdsZP|n%Feyu)0f({~E^)K6DyuMah~1XKgtf`iY#fz& z5as63HkhMpD>_g~h;VY0jViCA#oEh*gM-=*rptdHKG#*!W*F7&p+nHYugiIJ4o1Aq zOd<=_+>cbtyx7bhuqVnaxXwFh3M40VWS_z`H8*f`-agDH4HZgvCuHb>9SQw36Lg8I ztm8MLQRRV_@%8nW2med=C2UW$8Ft$V*%Vc#;FH8`x&clnE}_=F`i7bo0|tA-3wvHc z!0y;jf%8^08vXNV1tGgp9+ndVD6J@tnS%EkY}3!^eX2(3HCX)&@$?T(XF z-3o<h&FHY*dv7)$HZxI z4j~nFi6%9m0c6#F1d_I_?gYX3QrfKqG`ohjj*afEj&}s#Pq5yYoqinYNQJ{Ac=u~- z-Gc8>kQqIc;}X72PUDKNV7Y5n-Uf)bQ}NW#V^-$I(Vg(CwVHku zk4et65Lf#$C#SW>_!(G@yl&cP?lxs(RSg{3uh%aA}000 zqOvvSZ^mL}nlB(n{E`<=mK~*D=qRtJ-r&CSdz7X_uf2#q41Q)mucHfKO;soT4K7v{ z(KErZs%j1kPpP$01Ju+mg}&PS-h2xooeK>lJefe6@Yar{X{UKgh+|9VI8HOiKv6vIjaT;HMIYpGY7LrIzct6ZgTvz`uLF)0` delta 1694 zcmZ8idrTBZ7@yf&U=J4dK)5>|!ojU5hw`+ogwuk7*2fuX0R?S^rWE_IChA>73;}ex z%5=T<&e7CA+SnRxZJO4m>jP=EsKHB2rNpGRrq_w|A@kR(odujOSYJLlwc;yytRE8A1UCVVLPeC^P@5D3t5tI8^Y@MUA=tdB7{O zfp1u_IA;bQvh`tQ(p!w2RDJ)rOgW&RC!^~5P={#W58IOaviQi%m2EFU~k`MX1F;DEQkU$_Apz4I&??5v$aL^f}yy-=$~pA^T_G*z6zl zbvDW#kpmMpYOdX>cN0*oy90!UJ5>Aeg5w#X9HeU_~gT@W!j=zh3Y%0Pvbi}j|e@mO#7t^;a zfrvKPEU4;m}uB+4Z!&n<`p{HZl;M40--ldcf`%_o{j@A)#0`X`-T7tX9mg5 z!u`?*hU;%Z9{j${dnC+b*x;=H(;c(A0`cd3rU6SHk!7`@kp~c`y*-O8T4x+eiINU& z=PZe}S7{EHUA-D~x679&`w;PpS<(>epAtwpuz%l<5)g{foQ74A;Gc;_Xut%I8LkmU zSdeC>U0inF9pK$A!9N6Rpq7>2L}Z&N`p3zTK!$zG_|figrWD1Qg6wr95#dPRfDu zCzqyb;I=|<3iTyDoh3J-ZnM-W^19CwDKG%`t}qtHTTQPe*&2>OLZcztNqi(-u0^s} zSe@gW)9Rsbzew8*v)NjS8 diff --git a/com32/modules/sdi.c32 b/com32/modules/sdi.c32 index 7ba57b181c5477e20174ecd43a0d22a5268d18f8..92b4a60301dca9ae3f1e52a10eaf7d12d71d033c 100755 GIT binary patch delta 2965 zcmZ`*4OA4@6@G7aUY@QKm1gp%TE+4fz_;l@*`1$_QbW=W336hY7-RA zfZf^YoTx80HpixEPt7s4J=(4zMmdoc1vKLSQDV|m(?*xBS~32hQK#QvNKSInIp>>q z-<@~w`|iE(y?Lj)>8ay1Vc%nC_vnW~f@i^o_RUKOQT=v`H(RnfVQj{Ls3_wEV!I#c z<-XjdxBGFJRh$x4_~j0T6>MHPaRgkD+d##j(_1fW-u)DJ;Dx_k z>EXD`i&>i?o9<$F44K@^i&JO= ztFDl)nFc*xT7;Pc9Yx|$qU@?;-TY=+#})ngW&6W+&;qtN+|7OTJUbs= zKxGzdOrABe=|fMCp{kXpj!iwwr!M8<-e5pN?jYku|Yh)r4f7X>Kz&tw$!L zwj}A&O@-}bHzK_{$EbOmZR5M zBJ;NpT4or21B7o4PXQr9XmC(JdPD{FGS7%o?$dJrkr5G;wz8AaC0uK!KW=0> zrBm6mm^o9wm`%viPH8VpQ;DiI-J6}7nnvi)tUug_$A zyKTc?{%yJO&GoragtB&AG=CUSnU72j7HI4gw2HRt`bC-z!Kh}*L&G5gNG=|a$ z_D1r)#@1F%(>_;Mk**&TQd3CC_5wm4Pbb6&^i3nA7U+JOkQu<%d_pDzJ$Zz50he<@ z45$Qd<`Cir-mw$1`zbWO?n7o?y7Erv<`#?@Cki|b%S)Z#i-pYM}@ zYnoEVqpQRQPoQHf;VCPykD?)et^F7s`Q)(Ja7~|eu;4C#UhecTap7R!ItHtxNVF<- zRym*$2jpm_kXPJdG<$1$t~ps*n=Lnp`AU^tt`tq|>h%1WWJ7~!hq6XqE~ZHjqE_1m zhTklR$udcYEP6-k;AAw4Q#7SI#d4)VEKsvwGq+6hmC~ik3Qq1Yw*<~Ehr{&+(L;9P zB)J=~n47BDTLm%s(dL#HsrU5RE7UE*p`be~*4=%G%|qn-XRoNG8r+&_H#%@)d+;3= zjX%ty5-f_q!WZRrik1N)>%JvoJ7jKwdVt0v4%6I3ym99DH3VvrPfAzKIS=ZmBcSiI z%X#opxQ48SQojDkH4bvevWWX`LcSk?0aMC4zK%lh9B9lNUqZA9-C{eD=N6r- z;z2)6I@p$g9JnLpN2*eGN7H)y^id7sM9>tZ1~Hj;aSMJVU|KLvE4xi zS7r<*gKGAp%SG+>#$) zSaK*6PLgeXNWsJ>MC(ibA4#|u>CJ)U=;;zz_6*S^NRPPH7v)<6iX}5fI|W}E=Pl)W zH9evZP`Ahdy@;W3J&p2xUorI-QeQFWE#%Z+8svVp+JNsCU$wzI#~@ud=nl`xC-t(i z(=&22OejA+37SPJ|A9{!ST+u<-!)wCbC2|6Rlx>Ol^oOoGgw(}QDO>guG4O0ut4Q^ zn_KKY-Jp)^t$H|Uz+Ns&ZHzX*`sr6Ng9G_=pw|HVXxj;-+7h^IupJv%C;BofO~oDn z14|)XT4l59pmLcBa;91qHUatpbs3K)TYZgUG1vmgmQ{9GWRG30%9jo=#JT@G{?j=6 z)#XF9P_nX8VAf|!Ebnz`T63GnvR~g;s?^5npV>C-i*`+$-`wW@R%QU`}PjNR*{lyV1$A4fet7RtCq)0vyicu^%<-EtFl$+$3VCfO& za@2Ei0d~=GiJQ{KT4%Pxl1x zT)5#rLF2iYbw>5;3Z)5pX0MpQ^$cUKidP~{Q0h-;h$5NT^@_w{x(2xj3%>bS(^Lt= zt(D{PQz@w&FX}EzW;LI23->w^H1S-PqeXoeDkc%(^XkYR>fc&0_FexOdCuAG26L=lEZ2-XxIyDOr2c!Y{Kmkw$IDi^pInd-HIm8QL8?YVt3$O>+3+w}0 Qfi~bU&;=X^P67J!KRv1R7XSbN delta 3044 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 C#}bGD diff --git a/com32/modules/vesainfo.c32 b/com32/modules/vesainfo.c32 index ddcb884a2075ecaa56d334d27c44188ab4ab45ab..d15d8cd1ca7b503a184a67b44b8fdf979ebee1fb 100755 GIT binary patch delta 1114 zcmZuwZAep57(VCjE~mTh4wYQxS9Xo2AxY5(T}n;qM*}0XC?WhIMpRaC7bBu&cdJf! zBgY|sSP&FKWI`|rQ^eFHNGu5Z0ulXD?ly~o!&Joep0!a#2cG*r@AH0~bI*s*?z6A! zS#gZ5Uk)J{^)16KnF#rVP$jRm1 zmW!NbshI1~s0rjlWGZA2xFov*;V7W)=#g4=wjephLw2S)O@EdWC` zB%)4bdEH|L6LLUtliIgHZMaQlg}A1Pbh4?mDvAHo0X)-x z8(cCc8hpblE~L#|Huup?-PW?S+T<$V&>?Pv`7zAb%dt6k(Fm7|4^WF?H9k#?45hio zbc9-7qN}iPCx(CjV`H+qfSxy$mmM@Aq%QH|jeS7KWJx!bBe7WQ>r)Y-TYx1CLU#f6 z0J%u?jL~UBu6rc~szL>_RlG3@RDAY=d@k{+t*msq)dqFlATwD0;><7n$KRar2cUnl zh6hb`NIb8%K?P$b-Irii{aOmjh>HcfDbk6v@UwB4jD_AowtK8@3d|6(>XUaM3u?W20Zv_O5ZKs+T1p=Cp?Gj9{gL8BWf4rvZ{8Pmc!S~b!X$waom7M8u!Ng{j(q+&7>o=xPEv{#ip#8CJfZ8fjO z1GLlJfbUa5*dDAB_TUsBJk^#JA0_Eqv5WSn2e2zxW9c%wJ#aDQwI(zZHKIz`n{qgE zHmnId6U7LA0(B>R7MqEh;#vbd&g7Vh3i0~Oe`zds9s2tK_W%f9Fb}W-Y=BK!h`O`V Fe*vH1K-&NS delta 1126 zcmZuwTWAwY7@pZ|+HJGVhP2qKy{TICD2RlFcRNLBD|B0(y#Zc{UE z!)ciwk59)3Q6E%LBHjvO)ld+;pf3s{^+B68UIK=Cp)`IIQM{lT3m&^nhhpudV;zyh;SNMyMEmo^L_Q$63@MaAQJ)0EWvN$Nl(0L z)(99`$x`N^*2>I5I4sqlkilPqM=h}r_TYvGCeeiAR5lUDLQQYn4LJEaBm0lzCvah<~|wyUw4?EC1t9%lUoi zKUPDana#Q^+uf)TOtCw2%wxCZ6K__mwh!b)YVY8G$(4=E;TyGq$yR_czg}*}i zHTDRaeVx}k$Im-2(hh4Kr-j`gs7qF%k1GBMyBAWXSyydK5UBPs5L1NhAP+ekypNqo zdx%_Pn}3h7Qw!hbkDaB(=O8C*jeyqiw}=I`aBu9JGeGIn*xvkNY0^n-cjE@DMPGG7 zmMm3|G-fh>y-a|m*!RT0u`>m;sJjXmo82A8^^&v>FMm_`N4d3@gbK_yUCjhMNuMCp z-yn?SZ{!PIr7fqipw%p{U}18+wUk(XU18HP!WmC(Q^a<`uVwM%Cy~Vp2NugvN%8}B zGjD#2t{ils#1qL|hDm#HXeAlvS6o}^S?*QmNZsABCbfa)NAP6ZM;h~bEA66Shz5oCK diff --git a/com32/modules/vpdtest.c32 b/com32/modules/vpdtest.c32 index e3f4260c3780e62c1e62245f52e158aaa7a97023..d5fe3f8e946d1ed2ad6bf6025f1256e216e106ef 100755 GIT binary patch delta 1073 zcmZ8geMnPL6u)iZ>?-T`Kf@3nhCB9opablXsA*Fcva4Wrxv~bumIz?;m{g+M0lkfj&SaCT}h^Q09B$4#72@@C2g>pgB*%| zrv1V++(+LD4Y-54(-(xL^u^fH55G?9L_fW0orgVCw}!AMykGQLu#-N^DqVfeiV$(} zXm}JOcx8m(BS@{`Q4^|$Q|nA}%}JlqvX3mahDZ5C{ZqQyk(r}SN%4RE4Vcmc_J|&I G%=!ZhWip`v delta 1095 zcmZ8gYe*DP6ux(Nc6ZcqXI;xxa?Qu>p@u0%X>FFaM#Vxe*QlWUAw5W=$8JbeYU7sU zw6JpPPZ9P*>qpUpjcQA>vdsu8C<^)$1(7ptR-~ATxShMY5M4NP&iT%F&Y5%WOxOIb z`7`cLxL)Lps|e1vmcE;52>F9|!SPdP$BfyFW2Um#$fNu}k2KxT6~BjY{`)<^2qnNn z-Zj3|d|0QLD~7ri`Vf$f@<(+;MvJnr__6o>f9WI@f1kxN6d zZcbuRQ)sO|6A#m4dKVs{&-HmpudN8((?NoImX7M}DVLLB?7qOJ`26SSY_16JrEads zUIww2C#V@1+xy&`Yc@&W>f*d?dXZaEvKCrPW1M(u85r`1!dukwJsORExsifUJII&? zq4OZyKpeBg)_$5|us4muw33?bu!yI^V2ZaN%I^zLO97VpDUc3%_h7S3%>UTT&;8Gz zH|6(2{df)snB*cHrv+Fauz2m{lx5M5nvgXHW@`thK&zV-<x(tzZ8 zLVSaASd?D^rrn|2jTxnv8SRMJ+R5|*Z((F6)DhUlXlDS5x`?1D%m7q70fxlFS|hz~ zEVsTg0PO{E9d(|4jysc0S6n$rc`6e&Mzk;27sxId?yzbU5 zN;O&E&gm3^v{gi-9+J*P{wa^C4}xzJ7h>~F40ri>#0k@ityVf+Se~i4QB#6+ln7C; zC6dn!>?vnT=c%9#f~~p}8Y(Wr@01fG8A=sWJcO5vVTC2HHHpRQ!7q@*kspjDC-zrz zfTGACyiI9YHQ^5>L5ii#xC%CHfuZ?Gn0^v!aW}0@UZe{If{n>bu&D=rrk05w8Zs}y ztLdP*1FsG?iEa~4r*G2=-K^wQGeX49qk&#1-?6M0!7j`^TI?iRE gUi=IU^RfJAbb~E5 +#include +#include +#include +#include +#include +#include + +static void myerror(void *ehandle, const char *format, ...) { + va_list ap; + fprintf(ehandle, "error: "); + va_start(ap, format); + vfprintf(ehandle, format, ap); + va_end(ap); + fputc('\n', ehandle); +} + + +int main(int argc, char *argv[]) +{ + openconsole(&dev_rawcon_r, &dev_stdcon_w); + (void) argc; + (void) argv; + ZZJSON *tmp; + ZZJSON_CONFIG config = { ZZJSON_VERY_STRICT, NULL, + (int(*)(void*)) fgetc, + NULL, + malloc, calloc, free, realloc, + stderr, myerror, stdout, + (int(*)(void*,const char*,...)) fprintf, + (int(*)(int,void*)) fputc }; + + do { + ZZJSON *tmp2; + + tmp = zzjson_create_array(&config, + zzjson_create_number_d(&config, 3.14), + zzjson_create_number_i(&config, 1234LL), + zzjson_create_number_i(&config, -4321LL), + zzjson_create_true(&config), + zzjson_create_false(&config), + zzjson_create_null(&config), + zzjson_create_string(&config, "hello, world"), + zzjson_create_object(&config, + "picard", zzjson_create_string(&config, "jean-luc"), + "riker", zzjson_create_string(&config, "william t."), + NULL), + zzjson_create_object(&config, NULL), + zzjson_create_array(&config, NULL), + NULL ); + + if (!tmp) { + fprintf(stderr, "error during creation of json tree\n"); + break; + } + + tmp2 = zzjson_array_prepend(&config, tmp, + zzjson_create_string(&config, "prepended string")); + + if (!tmp2) { + fprintf(stderr, "error during prepend\n"); + break; + } + tmp = tmp2; + + tmp2 = zzjson_array_append(&config, tmp, + zzjson_create_string(&config, "appended string (slow)")); + + if (!tmp2) { + fprintf(stderr, "error during append\n"); + break; + } + tmp = tmp2; + + zzjson_print(&config, tmp); + } while(0); + if (tmp) zzjson_free(&config, tmp); + + { + tmp = zzjson_create_array(&config, NULL); /* empty array */ + tmp = zzjson_array_prepend(&config, tmp, zzjson_create_true(&config)); + zzjson_print(&config, tmp); + zzjson_free(&config, tmp); + } + + { + tmp = zzjson_create_object(&config, NULL); /* empty object */ + tmp = zzjson_object_prepend(&config, tmp, "hello", + zzjson_create_string(&config, "world")); + tmp = zzjson_object_append(&config, tmp, "goodbye", + zzjson_create_string(&config, "cruel world")); + zzjson_print(&config, tmp); + zzjson_free(&config, tmp); + } + + return 0; +} + diff --git a/com32/rosh/Makefile b/com32/rosh/Makefile index f4b7d86..766f68d 100644 --- a/com32/rosh/Makefile +++ b/com32/rosh/Makefile @@ -17,7 +17,8 @@ ## topdir = ../.. -include MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/rosh.mk # from com32/sysdump/Makefile # The DATE is set on the make command line when building binaries for diff --git a/com32/rosh/rosh.c32 b/com32/rosh/rosh.c32 index 3701488f7bcbc18a042a1341d60076f6bf00db6c..c699b78b824f553c95c07bada8daeb5917617a6d 100755 GIT binary patch delta 3790 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 P@VH#KQiGnG7s!7DaMkXl delta 3725 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 diff --git a/com32/samples/entrydump.c32 b/com32/samples/entrydump.c32 index 08bc7a9bd7be8bec4694c186f453c894af437292..77cdcb879868ed4cc8edafb06ad1d9352c547303 100755 GIT binary patch delta 964 zcmZ8gT}TvB6ux(MbpOV^>-r*UYBdJ#h9re)PCsi#5erGJ^$-z(l!aL0Y%FChw!7#w zF1TFsVF`*z2>Kyd39}#n@j-nFlcF$vNvG{Wa5F5~?c8Mr>B70^JKy=vnKO6hc9(RQ zs%gJQ&dmTZ@4i>Q>R1Nkw3n8h51g7bJ zZi_FWhpMGw$x1pV0g_ik%4bKHf0>moboYba4K%YCn=p$<{)?y5@%c^sW59lw$n#nc zR4`=Fy3)w1-O(dkiY(T=X%cJAG{zM=Pe3f$J=;_dQe?5fKh6hNiBbjZ@3|BKtvIce zsme%@2S1>L6PlmXOn+C1aAU8{w zNpK8^ScB9`0+l>MK8ti!E|RX1;4{YCB@YSQV`?u6Mxyn+2jki3WJV5$BlMfT2tSG@ z^?R_T1jCmcS*?Y4C4pS(G#>Q%jQ%!JNP4WXQUWR8=Msz=aWw`l0J!daDnV52AC z6KYT3DQZ1ZU83QlVu}@jOqE50vMVLilytfYD7!Kq`Rg{EBP|X}=h^BG&q4I%c`WxFN+=!e!W4i*X@U@7~0*+281Ao%4%nIm=UUf@Dfsoz}#nVjrT^2nqTiWg(V%3#-AjZRvFl zHeT~%`XLLd55lC(!mJnz$`Zfz2Q!G=HKM?w8RB~0F+qCax%c<`J-_F<_s?ChI9QxN zzUG|Xx*9_;T6$ky&PFH@{tP5Q+@buE>J(I?nH(xzd7&|j4+65t2As7=UY@VZ5F(j~-8DZp|aofz4n?ngHoMXq0flQM@W|O6doZR#+^(s7`|i7!+Ib53%zST5;0Zc9HpGuf)gwWeo zdCMaJ?0o5d{{00+x#TGzbZ!J7q{t%qqq}eQvwJ7Q@lOOC`j)o)p(h()ru1SgZ0YnN9fE&hXrG`_CU~~zNnR|tF(!#e_*_-$)UZ%@|qml zCDyggr2_@X>JYbW?tm)hR~%-W0MME`02O9)6X(_k)t^#8I|Z)Vpsi6?%HbX;1{&0L za%h&7kf2k2MJrI7SgKm`*n;j##s6phN&kn=2NJR&C5DTk8~??m|t=&xoxLqY2D* zWHFYA7P2+6jDbAR&_p(NPn>45qFP!(79-#>ZvNmIC~- ztTKdpJ?n0%o$t&tJQ7?jTm8xy-S`_!oeznb4q_I$&+*5zy_M5Il2W77Q6rreLTK!x zQ$$X@7g=B~&}lJ5gXSg#1%mLl@!i>zi=Koeb$L95v;>wBEv?buzkt`scwLe=lV8c6 za$guyI=iOR5WvUJp`tq70BGQPqU&)%It@TX?iMUkJVQON&METkgG^FconjU5Qdyk3 zOL#(~^A3R=if-%`z=ubHwkJ@QPIm)|t+w*dbG$j{Af-8zx%-o*gZxsCf^ym26K3RL zU+ne<1yeqdQiB7rc!eTy=V%4=$7w(2G0BX* z!0cj#cVIo}LbPbbU@V3$dm0%PH8ZFOGg>!KuYD9tzFu3CxB^yXOO&5gIbyUOtnzN! zGYu~*zu|T}#J)-MWcCAcb9e5_IVxU?Lv|?3yV=?6d$8?#XzYab@AF0%-a=NI1*^fA zL*2++27f9JYApt@>pYyhFdaRc?wus5yx6;JoQ6LPYpIP~z9Gfy)5F`mnPsXIA(EfV zH&VzvJOulp+m6sfISIq%8@9N|Io|KhoHICngg;_Ucn#vw9qqLO-v4A1@-;>S#!W=* i;e|y7g)0jQS&M;QjfohzM6w>c+lbMM;o#2}J^wGlTq%

NLsd>%ZCk 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 z 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 QbH11Wpa&4Diw27ZJzhwmK>z>% delta 33716 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 oB|K*uJY* +#include + #define BTRFS_SUPER_MAGIC 0x9123683E #define BTRFS_SUPER_INFO_OFFSET (64 * 1024) #define BTRFS_SUPER_INFO_SIZE 4096 @@ -8,6 +11,40 @@ #define BTRFS_CSUM_SIZE 32 #define BTRFS_FSID_SIZE 16 +typedef __u64 u64; +typedef __u32 u32; +typedef __u16 u16; +typedef __u8 u8; +typedef u64 __le64; +typedef u16 __le16; + +#define BTRFS_ROOT_BACKREF_KEY 144 +#define BTRFS_ROOT_TREE_DIR_OBJECTID 6ULL +#define BTRFS_DIR_ITEM_KEY 84 + +/* + * * this is used for both forward and backward root refs + * */ +struct btrfs_root_ref { + __le64 dirid; + __le64 sequence; + __le16 name_len; +} __attribute__ ((__packed__)); + +struct btrfs_disk_key { + __le64 objectid; + u8 type; + __le64 offset; +} __attribute__ ((__packed__)); + +struct btrfs_dir_item { + struct btrfs_disk_key location; + __le64 transid; + __le16 data_len; + __le16 name_len; + u8 type; +} __attribute__ ((__packed__)); + struct btrfs_super_block { unsigned char csum[BTRFS_CSUM_SIZE]; /* the first 3 fields must match struct btrfs_header */ @@ -19,4 +56,72 @@ struct btrfs_super_block { u64 magic; } __attribute__ ((__packed__)); + +#define BTRFS_IOCTL_MAGIC 0x94 +#define BTRFS_VOL_NAME_MAX 255 +#define BTRFS_PATH_NAME_MAX 4087 + +struct btrfs_ioctl_vol_args { + __s64 fd; + char name[BTRFS_PATH_NAME_MAX + 1]; +}; + +struct btrfs_ioctl_search_key { + /* which root are we searching. 0 is the tree of tree roots */ + __u64 tree_id; + + /* keys returned will be >= min and <= max */ + __u64 min_objectid; + __u64 max_objectid; + + /* keys returned will be >= min and <= max */ + __u64 min_offset; + __u64 max_offset; + + /* max and min transids to search for */ + __u64 min_transid; + __u64 max_transid; + + /* keys returned will be >= min and <= max */ + __u32 min_type; + __u32 max_type; + + /* + * how many items did userland ask for, and how many are we + * returning + */ + __u32 nr_items; + + /* align to 64 bits */ + __u32 unused; + + /* some extra for later */ + __u64 unused1; + __u64 unused2; + __u64 unused3; + __u64 unused4; +}; + +struct btrfs_ioctl_search_header { + __u64 transid; + __u64 objectid; + __u64 offset; + __u32 type; + __u32 len; +} __attribute__((may_alias)); + +#define BTRFS_SEARCH_ARGS_BUFSIZE (4096 - sizeof(struct btrfs_ioctl_search_key)) +/* + * the buf is an array of search headers where + * each header is followed by the actual item + * the type field is expanded to 32 bits for alignment + */ +struct btrfs_ioctl_search_args { + struct btrfs_ioctl_search_key key; + char buf[BTRFS_SEARCH_ARGS_BUFSIZE]; +}; + +#define BTRFS_IOC_TREE_SEARCH _IOWR(BTRFS_IOCTL_MAGIC, 17, \ + struct btrfs_ioctl_search_args) + #endif diff --git a/extlinux/extlinux b/extlinux/extlinux index 9e07d16d511e94265b8a2d7db0b6212ace61f36d..dbbb8fdc04e7aa53f5f4fa03124c7080b9566f61 100755 GIT binary patch delta 24837 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 MfH7|eBI1$#4RxIc!2kdN literal 95275 zcmeFae_Yg6_CJ1S7={6n85IeObSz|bQ)J2vWF%3+AAyb#pqW2Vc!`GK4)an=Eoi`a zIpVszwcGBy_AP0BT(i~`3NsNL18wt1=DRH0GNroHSXmn4kC@N%+}8{s_1?$({ds&J z-@kVBHTQMyJ@?#m&pr2?bMNcUizm`D(lr_l3w*RJh!He-qs}k}>Dsw!*%)SK1~!}x zV|Oq;@~Lc0IdE`^3P1}+o(@+Kl>r`8fpS~}0MkWfM2#--p}M%jvl*j{>NAsCF7nQ! z4A-f3j9q?`iFT=63p6wE%_yVmFkrffFKUCXsc2*>+NNtVV7dZjwl5q7x(R@rbOyR6 z1DCEq`7D$J{b!#5{n5os7mY417*)KqL|z?VRvLe|S{JN|zD=2tBkB^LRL6{qXh-5A z*--g+{|Nu)`29ogKm6%W`Fjpt+H4(i%PK0n3l~@svd|76eFwoKamC~6^XZlTJ0CdT zl=Oou=I%pR`tNz+N`GYE^!d*o5EVYv3ohve52MEXAHvV>1wR`oL`voN^(yZHGBe6k zdSnp(+Fo#YFSrvpfe+!2?N$D8FL+h}87bk<=>@Oqh5x%=@DIK4KkWrK_JUvR1;5@4 zUf2t6?FEnM1+VS}ztju9y%)dby~+plD&N_wJib@?^j`4#Ua+-SeQz(gq!<2@UgeW| zmEYH^JfRod2Kem4U<1vEeryoC6{)!n^H9J>_90Tqu(V`>Tvk}X${hB^D;{Oi;-clH1*~xOQU_a7A}=T? zT)AL*{<2a#D_!AOS|af5i;L`RMWNk}T)70Z{1K{MAg^F$g^uMVj=~ZLTVXHEFBm(9 z3h*CX0KKGiL2>Ege8`Qqg(n6yH6l%dh$(y~Ifq^mZnI7;PW1|r2P@*PDi zzifqlX^BH3F7oY5K(+t`+0xR*j$+Ege>z?5ciLkEEd(k>WWqNrH(?iOKRU2EFfw6MY}wIX$dPU z@l%xSg@x$!YNCuP3l>P-x5a_mDH+oyPFiqx{5`DeuE+h|UAdO7JJJ@d_!s2=CRm3n z7?x8lQDH4CYj;lf9pMC_MsOFlT1(@HH7FrFO&5IzEM3}{tn_oxW6CQVv^12g?@NBT zzbMzS-F~>AfP>gue%K^nEo%Wx9}a({H>f%u4C76@8w}%3IvqSp)!pFHjCBAn1a)pu zN{*rpDI9=~QcMN|rErMhl){OaC=G!Rp%nC^DFvr7l!jprQQC*GSW3eg8%`;DHj>f^ z#u6ws!Y5OTjwVvtk1;EyFr*VGg_E94DIC>QN(VBQL1`3YHcD?{>_JMS8JkV%AjTf1 z6q9%%rMEFwKxqtPMU>voSTUu88CyZ=5XKyoni*S7=}`CwO7CE-oYFfPtE4oRv1&?( zF}9J?IL0kpw3ayh6ay1WzD%p@3ruo=UJyz-EGN z1WyofEWxu0P7v^Lf)^5O7Vt=dsY4!E*J2F1UC@8Lcp^LZX$T0 zfFCCKFu^tfFC_Q`!4m{rK=5gT69imD@L7V*0xl+)6KoRj3W6^Z%mnNpxP#z}KT-cz z6HKv}=d6I&5^Ny&gn-KlHWAz;;7Wp{3Em~(YJ$xKZxQfDf`=2lS-_hKP9V5kz)usL zNbm{)KTGfgf)@(-If5yS_1FM|Pw}bAh}AjUF8Y3RBS-mS7LCfRsHRyqfuDgfm^CZQ#^JV^EAs}LIZ~5~ggxN8X}8WW zE4OHuOK0F^VE!_Y{2y?Qsj4dPCjR>`z zO`5HQ;)|@JVu7A?+Rj^oiGap=NH=$$yT%d6YTkl%U<~w~7ouxpfJ;&!{bINYZPmq6 zp6|pF_h#VaDaUiOEoUk&RHD2nrcr0GDLLgl3PwZ7Pf4pZR!JoM&G@RlksoYuc4!>~ zogG2O%KpfjYOJzR@mAEg*@}iEgz=Rb_%NuJAYiPrpx9>1^_A)PhcIOR+}n`rs#*($ zOG?{ltfFw(l~$gVR&A^z-OI}>iWj89`8WtptyCF>lJfB#Br#*vM`$t2*%XpxE212J z5=L^qPf-r7HJN;))>I$Sdh-+6#>GI;mAuCdCR-jplgtLA8uz&-o}Sai`Bd2n~l0cuUTk2k4C zu2%MwP@s1{xsuQC8V9$r>T!~(nm<;}uPMB&oSr*>!8|wR-^2e?%~ssr4>7j6*^0a3 z!ePj)rfM>1+Om0WSNr{4RS(i^XRrk0*#tPGm~7v@9T?xD>BRlL)9S4?(V?iwzK1+)ZG)AYit%d;Uh!e}?#ISc!61%~ag-MI3;A9T~&ueMWD*r8mUJAa;=rbw>xfso`zNV4jrQsV$` zjs%-6E1T=#snzi`y3(N*UBc`aXoQ66pLwgA>L1cXPcZ|v5t-&-Qk;}ZX<5P<6{9Pc60x565@sl%w6{cdr?=$Ck!e?@q z2)-f_Se4WKC~4|`>KRj79R^nw-71Ng16q@b7S<21jK?rhGkzu53(w+ul!xg_gXc)lpE`8PY2}?j>w8IANX@e=E^NWQE63zY3kNgGGY)8lD<@K^ zBF}7TQa-%&a!p#K#b+zhK%KI=uiZaz#>zg>LJa4-wj!N22JE+~MQ;|rK@Lcs=E^zc zN{g&ExpGca+cd76)2$OAQpP03ru7`dO>zyjCf}Yc8j}aQrW-6iR8b7BtZ>Dq69&Y2 z(Bzt~b7|3w7Wt^F?{;|U-4k}1UF#yNju_M4tG>l`?>6KaUq7ilQw(}l?Z&j0>M0rw zl2TPf-4WkPO#$wWe?JJ3{W;6#tEaYo_0&!N0-|+{txKS^PVsX&MQZ^u`B#wSoxXaa zBpuK&Up+NaG`m~()~fxksalN!j8zSuf;;Pz=Z{yArp(NjlI?n-! zpr&delpK|UM5S7_l1q++0QFbMnO-jC_sm*HmMRv zcoIf4>?aWSW@KmA$mO}ddcx+N0StMhE9aA>XUIjms#fD$zAZWJv>fHitW2tj6}d!I z4o*%hcMKwGgD~BA6k12*L(wDu3%H#%YZ=B)kbe1+=$+y&PaZALO@5v-8?J+em7y-d zYD*By%F4Cz$GUika^+MeJ=43j7~3SS0UvVqGi zCtItijP8}^$-+BDna25y$WA)AcArb+*XUYW+2cU-8_iuR z_wK@XUM|nVu7UGVq&n-&OnZ_>Q3ByHlkw`bXN@oB*>D_g1H7Kuq2?|H^2!pRoXd3 z`#35}&i#!*V#Z2}M9TNm!VSPXs<4WIR#WvQQQ=3w_s?~CFvO^qXvs?OJ%JKqN~_s&EOwW zrUxC_{QS3m$t$goMgTFJ=M&C)fdgwLpXE(mC@qhg_#%Q5wZ^JXAO&wYs@QlRAubc{ zbNM+`cOD8aiUozD)cz(xVqG^0V>PYWfJ*ZA-Ak6B=|Cx#ma~Y+|m{@)R=|gi! zUTu8yHvy5lSKkgS8~1`2cs||&EVR?c{qpcP;X?(H-LBTOG*1#zfI3w7M;h);N3%Z* zN^|)R6;;Sx#nwT8z0vUcvMHOd5;3dEauWWcA1Gw=+f@$zGvzYP6!>Scj)#+W<-oWF zxiZ7EUGq#Z?l5#FWu8gN3|DdtbLV*u(0USf?551yU^qpOvEe|D9$^rz$SN+79=c>h zO=eq-aE@4$?T3BE^3H9n{sM*0b>Yl027K9ggis)C(8#eize7(P<+lMRnxsj%Ms;cv@{GJzN%?;3@?Ez#La-3w8}giw9-U=L~I2Gqp~;N z^~`YOB;{1Q(kf{sL2leJJj>67wVR3E7qFj@EqcfQhn~r^sNNJ_RrD81A= zDNM_h2f}5Y#biZZuXHM!<( zcV)b1a6SBfxRTkV%zMkR$d!58HSZH8?XV{EaBJGTRJY%}cU|+|O`7)>!dv-pl8jlQ zG&g@98kBj+a<$@f?8^J({;qYWC%7^{QPwrN)*VtZ-}2t>%G~LiciJU?A}Of`Wsve4 zowGSi$=oSsr)yr*M3?-Q0^E7075S5z$0js?6`Gt=XRKNTl_%DAI*eF|fu^KPGAIL- z2XwBS2A5ptnzzfjE}FT*e=xq`r15Y){DaOVpHiyD;5^$#S>ZoWu2Riuyq>*)Z^u;E zI@Pnf=AHfFRpT3zbXVR>I=pUh7G@W1Cl%cb@$$cX)fFD{h_7K7bI!WtXyY3bwZVdX z>!oeZburA5|U@F4owo9Xp;c>F_)^C4Nnul5mjfzjU3$YJHWGSMccYD?*}H< zYHIhk?t`$Fe<@laHn5Z6FY!`Iwpvnk26mfDyTmf?EtKBtuSc%a!2b{E1}17a`K5IR z7<`w0E3xX?iK*%Akc^e2(N8ROcFZ(Z(xbR1;$i!Zl_xMAo(RW2Z$9!op#piTu`(3d z&W=oD)pW}46i|+_aw%a)I6Jbj@k<4}K-1ZgZ>+p5Fba%Sw^H`&0)y zNjrAVj>n8uFX6^(Yz;mEV}V=dp()ZDOe?Jk09%7;k!7ZW|3m?v4^TuzkJovID##ie zmN6+?#oogDHH70I=X^-pdr!|Aw|3R2xJGN4t<;KfeR_{de?TR_au9t41rvbC8O@Af zTC@O{c_Q)M8ceGf0R{_@9$KJ~dD`*S8cd)l{R$vm=XX{}qq#eE1V8Wv~+4CeowJJSe@vdwQrUxg~zIU0LPmfK! z^IL=InTyEJY7IUexK9sE4#WQL{-Zg6P~^Feg@*55Iu+p;ZgMwXEbwMOoVx7z@P}7zSy$ehHfx!NKOZcR5U<^CbN&Op7slhk?tYIHT>}-8EYVOt z6jXkA^~!sB)3RnQ)ABjLNTa-)20t%`omNVx=LWWCu=!bWVH?DWM?AD+h{p|z*jM5C zBFHp3-+_}bR&ByCKJr20UeY?}!4&7Yiz80eJd7QI^B0xRF1@T={IhY}523Dg4cJO^ zW!5EKvxlwHB^_R=Qw}TF$ggCFx645cjEmR;0GGB?q4j@Qo#4*gAv zXG7vKNKN>UROiwT*Q7{gKkfG*aKa<0N_t*7^^vB;_Q^q0HO5L0K&RW>npTb*<|-Sm z)E5BR`K87&$Ti6X$1gTHoF{Q^4@#y?GEopvW^k!O>jocg-7>Tthu7i&8Agqj22@XN$)9AxrvD{xYdWKIcm-ce)c@>nfAh zl^d&u1JiO6-s&B(m#xO}P&q6#R7+yxsb{+#Ydr)Su=p{wohwJeIk%>rCHW|6ZQd;C zDQ)AJ5XzE^*!DS%05+ZEkOl|V;oe&@o8(*hjnB{#7*U;AhuL@x8sU{-MsYV^AEHTX z)3o&aOp|tYM4E}BFL}Ew?QCFT{I3}JLk|X?=)u66UJU#PU>@{8W`LGrtFaDKpERrw z^-ni>q5oN?#u0)gkUYT~TO(h_&Zb7vVfQ)?y%dWE`B%1FXW`}VinNk$g0~-bxG&p^ z`q_08TGK9*D6{!>@I%u)ZCh?`cscfAri+eX9nf=gzng`iE*6%ePFB`1TA!oZ08~?X zI%L8^Ol2$G`)lXAolH*Y$(*9Lh@m3pGB2Bci8-tdz}$QlwVM~QG#%+$2ZaF32F%d! z`8Tj-V##Q)No&itEz^=d#HuyLjFjgzFK-LAobje(V`LT{g98B}`XuiAG$5uiuADY3 zcXCcCC$1EpMR2R+yzA|+geZABXRBcb%wm%UvoAF{^OWqtKKkpwq{|p8GdxkyGDFS0 zi`m3Q5^YK?GZeX?5ZQd!KdHF{5!b_FMpMbtqU4V#v78hmW_6z520h)v&M zVKZNRlVYI_eKt(eR335Mk4F>6*NdhW0OvljhdyrH=5PDgIH9@V~W#a>!9&TGASF<3>z|Oh^vEYCTXi5&|rzLAg;bE zCtSJi{921gIq!jy9Sy{m(%L{P>Y93D^tE-DUgU>hBC+TR?1%#U3&DFHwh0V1*#>$J zBs_`dFTlhs$38+{ZpAo~uspuv&42`Di{(fI8U3JeZMVcLuF|N;18bh_mVB%7fu-rv zi{9LdHz`vPngBv@95fX2m;j-Tbc&625&OIH?a>TK`Shar$QDOi22a}?y=lQ z8+y(QYr%B+xURiGIOVRrz%beiJPiYheJz?2Sw+u7%WQlhMpxL#)gf4HWB$d*uU3Ss7mqUW`25Uj+Dy#mwJP_xr=7C%#J#$`p|1RqPkl#GgIeT$ zTQ&GXz}OA~|Nna#-w?FmhkjYcnQBv>zheev2^qiqk>E?+P$@t*J!_7|z(a(8f|UFs zr1QV7XC6eptI9@dag7-_(gBty`Uqhf*He6rKJ^k_O?@oPV{SHo6?=FA@foYGt3#N} zJ4w{Ey=1I9ggmi235;NLpm{mfl~bOCb#B@x^4Mf?>P5bJBg&jCc$TA89+Sji%VC!G zWWlW?Ca)3WMA9zW23_IdjEH15&4tKJ<$e`-aLcblYG-r7K3uJ#SvfuxTFhV=Q z4+@nJm6j`CBz2^eGvrk*)bBwUGtLMrf#6)FetTH*)fZH)hb-t(f5Gtb4q)z!W zh(qj+c>CTo0+-ybm{>aW=KsKVhl4;g$2!ed;r`DAMEbf|OaSI59Z975s1Imt!{@rY z@aqMB>3@S?BXprBewDz#|G&Y{4A6%u%HBsmn!zEvT9G20)p?D|`@R#dNjGY;Z%};u zy;Gc(oFo1zGw6pGb)LmfmCr}*`sBS!sXpe`&*&2@_|+YwEQiZ z3rY*iN`B=qFVA-@F6xPtmv1jwTC!xESuV+6R9t9wl$uKyIdFzPfV8Brba^55cX&ae zlrIPH5ynQNL!%*t(Tni2ghxgXlgAB{M~fdyuwlhA8_n_;F9s?#ytD-Q#l_u2 z*Y(o`v%SzE+e-=y%q68IWrg_97A?u#S#o1ekmauU<)Qr&62VgWOkK7);-J9 zQy*mXBLk{NMT<&H9cs-$Zg);e>3=s;-3?;QWhek7q7KWjvf={&Z?YaGJsDPpaqgKh z&Mbc80Ln{?WqVZvk-J8TVB*P$JI&aC@nS9FH+*;u&Be~D@~ zvr(lir!0R-ARJtKd332=bt#33Zq7qN)mpGBj&^?Br{d8RKj$CCFn6E&<)D+ zTLMwHn{)H10<(E?z*q?j;-3fNH#}zgB~GCu?3bAdRQu&(Yk_^~%EFX!=DDQOn8w7^ zy#L4csmFl{iaw88YBpo2#C*k%dF-Nxi)Fhonf~TreMMvPih_Jcp(>~xvpGiv^SkxC zXNN_N$Cj=L*qTv~na$~?b{JP=iVm5(t=6ci=CNbUqq5ES+)d_b)F{8L8h_9~l zeu=z%5xB(Y_)*NT7%=tuiysjcg}I|@s5muHvAdEeR$Fk$E0$u&2(ip;&Mq!pHPT#` zFBO{eVFt?7QvABBP+;5h{kXukgDjc1MQD?ZtY8Zo9#9OZ2?;J>7)1TjlEsDNNuSN6 zhUT=@g^Oi~GT*$obop{>kPyuB3V&TuXK`_1zI~J^7&X&uoB9AJ|Us*WbJSr1i2OjmIIDb)LF?Fb{ zuo$kwoL`0>32#ESt*e*Rx}VM>h(i60THdWj`6cGeiCKcD{KXDvu0R=;Z#HM<+aDo! z?10$@Ni?7$sN~>uAp;dz0=Xsl8CoGJ*W!Fx%v#k*E-hJ^UyRY{9#p?3V1~=);mhSR zID^eY-$zQ~RM zfs}z9g=3twv|wD0{8(A`xT)jpD~n3U&CDFPJfF&TV9T9S`bfBT^?)ffH{xUm7MbEx zfbRyB2Ve)_13mC_0Jrpj9|L^62R?rG%|7f=UIzHn9_3R3xAiEu1OB!Lyb^GG54Z@h z22WE0{7|%ey+`>>zrd~1*L<$wqGfb&JIo4?A65ELM;%Ezxw#jS`+ zSoWOkjA=7+X0x=}52`m5!VFU*URcXQSe}vsbsl0Wib|@o`2$roxanm-%)?6x5tED> zrK-w^`@`5hJ9lPMST9ltSaVxY@&t73S737|9>%OiuyXNTpYLJhy^F1m2Z1}_1dh%j zYWU(kpYJTvRVRJE$=K=m5$Ur?r(vn(KzO6W^5J1T0Xl`X?QBFFY1liW-A4~nE4F~| z#*U=}>C8`kz8gr#eCG3AKzllD+)qU~^iQNGklu&qgS+rRh9iyX%h+oi=Z%pbN4goQ z&ExZZg7iJ4!*OurK|E1^8tGZ23}lniXt$j9MK?mOp8#g55r!)5#J<6ko(h`m3|_BGk2j>nho{Dy9*Acv z;&rJ4oD^@G8qcN)Ff~401q*I2&5hShjyIq*E#8z)6buu^Jt{sJzyw)kw%)m{0m^-y4wKWy}eLJ(9s(zD-_ox1fw==2oP zX>gYp@0UTkXn&Gue{!HSLlB%6ADJE>ofaRH9uH&8mJ1v(HKj+_)xJ&*un%f8 z@rm&)wMP+%q!Zu7HKXVMP2jQ5QJ?SRO}wtxJry*`89Xb{p4tY)tBzV)fM{1|evw^m zMxX+?m>b|ir8Ol`1b(OgjGQX{F6t`SB^y}?DfK4VkS3vX)4B(Rv4!a07R=$F(7)f~ zo=pwt;Cl2<2ld0yr^QF62@$6X5!(W~^uW#h_5x=Hgh(q49qhtguorYfxl7N%GmZF^ zfSQ9j+s!1i1=!WA`2muQ4jjz}%^bfCQfW@<8;prTQ|GCmf*w?niTR+;B{ZUaQIN&V zQ1vQ5UN>D7t03gAPBm3t(#_x;0rrx6fD}zN^?v5fGE2Xi$n+kd&986jJVC$OaE*c8 zJbK*c+ec0(U>Byv8`Qpa^+XkU7c;oQjPKHC$W850naH0N&>9Iv^+> zy<+shItG4W3;YJ1sOjpbjkIEF57nFEC&V5KWKN8ao*c*oCVGttS1L*;3dwg>nI0&8 zIKUq)1C&6WFp#7QJ{YJA$}lFXrmH-t1iLaZk5wU03six8x=N9WQqX@u7(dnY!Mscg zDA*Lyck-Xn@P!We$lr90G3l>5!s^I?yUBuBVSslPoGk{h%O-TG0~*KBb>(B6)j^sQ z7-868F}9f4G#%7Z*lSF3^is8>YS%HYD1`y(IrCvb(GOK$W(d9L5_3;ug)XWMslF%B zD1&;cEq3Lo49_60$VI88U720TxB)2@>{50R>6w3%S!3l;r`3ots@{iB#(kG=VIry$ zhSgDBSDxrd*8q0SA<+N1?Nha>Ylije2n~C;o{vGZH^9S-;9(l^knXpwna-eD&<@g# zv_3Pt?%;KV.J7{o=dqn>!@OJM$|KNa)p202y5?t3tx;tL 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

}5W`<aR@ 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%0A9qI855A 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

F2wa+PkN4WkK*DO<(2yaa2{v(Yh0XY>K`Xu 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 X)U`FOFRsLR-t~nYd6RR)a diff --git a/extlinux/main.c b/extlinux/main.c index e5212a9..e574051 100755 --- a/extlinux/main.c +++ b/extlinux/main.c @@ -20,12 +20,12 @@ #define _GNU_SOURCE /* Enable everything */ #include /* This is needed to deal with the kernel headers imported into glibc 3.3.3. */ -typedef uint64_t u64; #include #include #include #include #include +#include #ifndef __KLIBC__ #include #endif @@ -65,7 +65,6 @@ typedef uint64_t u64; boot image, the boot sector is from 0~512, the boot image starts after */ #define BTRFS_BOOTSECT_AREA 65536 #define BTRFS_EXTLINUX_OFFSET SECTOR_SIZE -#define BTRFS_SUBVOL_OPT "subvol=" #define BTRFS_SUBVOL_MAX 256 /* By btrfs specification */ static char subvol[BTRFS_SUBVOL_MAX]; @@ -112,7 +111,7 @@ static int sysfs_get_offset(int devfd, unsigned long *start) if ((size_t)snprintf(sysfs_name, sizeof sysfs_name, "/sys/dev/block/%u:%u/start", - major(st.st_dev), minor(st.st_dev)) + major(st.st_rdev), minor(st.st_rdev)) >= sizeof sysfs_name) return -1; @@ -153,7 +152,7 @@ int get_geometry(int devfd, uint64_t totalbytes, struct hd_geometry *geo) memset(geo, 0, sizeof *geo); - if (!ioctl(devfd, HDIO_GETGEO, &geo)) { + if (!ioctl(devfd, HDIO_GETGEO, geo)) { goto ok; } else if (!ioctl(devfd, FDGETPRM, &fd_str)) { geo->heads = fd_str.head; @@ -347,9 +346,7 @@ int install_bootblock(int fd, const char *device) perror("reading fat superblock"); return 1; } - if (sb3.bsResSectors && sb3.bsFATs && - (strstr(sb3.bs16.FileSysType, "FAT") || - strstr(sb3.bs32.FileSysType, "FAT"))) + if (fat_check_sb_fields(&sb3)) ok = true; } if (!ok) { @@ -494,6 +491,267 @@ int btrfs_install_file(const char *path, int devfd, struct stat *rst) return 0; } +/* + * * test if path is a subvolume: + * * this function return + * * 0-> path exists but it is not a subvolume + * * 1-> path exists and it is a subvolume + * * -1 -> path is unaccessible + * */ +static int test_issubvolume(char *path) +{ + + struct stat st; + int res; + + res = stat(path, &st); + if(res < 0 ) + return -1; + + return (st.st_ino == 256) && S_ISDIR(st.st_mode); + +} + +/* + * Get file handle for a file or dir + */ +static int open_file_or_dir(const char *fname) +{ + int ret; + struct stat st; + DIR *dirstream; + int fd; + + ret = stat(fname, &st); + if (ret < 0) { + return -1; + } + if (S_ISDIR(st.st_mode)) { + dirstream = opendir(fname); + if (!dirstream) { + return -2; + } + fd = dirfd(dirstream); + } else { + fd = open(fname, O_RDWR); + } + if (fd < 0) { + return -3; + } + return fd; +} + +/* + * Get the default subvolume of a btrfs filesystem + * rootdir: btrfs root dir + * subvol: this function will save the default subvolume name here + */ +static char * get_default_subvol(char * rootdir, char * subvol) +{ + struct btrfs_ioctl_search_args args; + struct btrfs_ioctl_search_key *sk = &args.key; + struct btrfs_ioctl_search_header *sh; + int ret, i; + int fd; + struct btrfs_root_ref *ref; + struct btrfs_dir_item *dir_item; + unsigned long off = 0; + int name_len; + char *name; + char dirname[4096]; + u64 defaultsubvolid = 0; + + ret = test_issubvolume(rootdir); + if (ret == 1) { + fd = open_file_or_dir(rootdir); + if (fd < 0) { + fprintf(stderr, "ERROR: failed to open %s\n", rootdir); + } + ret = fd; + } + if (ret <= 0) { + subvol[0] = '\0'; + return NULL; + } + + memset(&args, 0, sizeof(args)); + + /* search in the tree of tree roots */ + sk->tree_id = 1; + + /* + * set the min and max to backref keys. The search will + * only send back this type of key now. + */ + sk->max_type = BTRFS_DIR_ITEM_KEY; + sk->min_type = BTRFS_DIR_ITEM_KEY; + + /* + * set all the other params to the max, we'll take any objectid + * and any trans + */ + sk->min_objectid = BTRFS_ROOT_TREE_DIR_OBJECTID; + sk->max_objectid = BTRFS_ROOT_TREE_DIR_OBJECTID; + + sk->max_offset = (u64)-1; + sk->min_offset = 0; + sk->max_transid = (u64)-1; + + /* just a big number, doesn't matter much */ + sk->nr_items = 4096; + + while(1) { + ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &args); + if (ret < 0) { + fprintf(stderr, "ERROR: can't perform the search\n"); + subvol[0] = '\0'; + return NULL; + } + /* the ioctl returns the number of item it found in nr_items */ + if (sk->nr_items == 0) { + break; + } + + off = 0; + + /* + * for each item, pull the key out of the header and then + * read the root_ref item it contains + */ + for (i = 0; i < sk->nr_items; i++) { + sh = (struct btrfs_ioctl_search_header *)(args.buf + off); + off += sizeof(*sh); + if (sh->type == BTRFS_DIR_ITEM_KEY) { + dir_item = (struct btrfs_dir_item *)(args.buf + off); + name_len = dir_item->name_len; + name = (char *)(dir_item + 1); + + + /*add_root(&root_lookup, sh->objectid, sh->offset, + dir_id, name, name_len);*/ + strncpy(dirname, name, name_len); + dirname[name_len] = '\0'; + if (strcmp(dirname, "default") == 0) { + defaultsubvolid = dir_item->location.objectid; + break; + } + } + off += sh->len; + + /* + * record the mins in sk so we can make sure the + * next search doesn't repeat this root + */ + sk->min_objectid = sh->objectid; + sk->min_type = sh->type; + sk->max_type = sh->type; + sk->min_offset = sh->offset; + } + if (defaultsubvolid != 0) + break; + sk->nr_items = 4096; + /* this iteration is done, step forward one root for the next + * ioctl + */ + if (sk->min_objectid < (u64)-1) { + sk->min_objectid = BTRFS_ROOT_TREE_DIR_OBJECTID; + sk->max_objectid = BTRFS_ROOT_TREE_DIR_OBJECTID; + sk->max_type = BTRFS_ROOT_BACKREF_KEY; + sk->min_type = BTRFS_ROOT_BACKREF_KEY; + sk->min_offset = 0; + } else + break; + } + + if (defaultsubvolid == 0) { + subvol[0] = '\0'; + return NULL; + } + + memset(&args, 0, sizeof(args)); + + /* search in the tree of tree roots */ + sk->tree_id = 1; + + /* + * set the min and max to backref keys. The search will + * only send back this type of key now. + */ + sk->max_type = BTRFS_ROOT_BACKREF_KEY; + sk->min_type = BTRFS_ROOT_BACKREF_KEY; + + /* + * set all the other params to the max, we'll take any objectid + * and any trans + */ + sk->max_objectid = (u64)-1; + sk->max_offset = (u64)-1; + sk->max_transid = (u64)-1; + + /* just a big number, doesn't matter much */ + sk->nr_items = 4096; + + while(1) { + ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &args); + if (ret < 0) { + fprintf(stderr, "ERROR: can't perform the search\n"); + subvol[0] = '\0'; + return NULL; + } + /* the ioctl returns the number of item it found in nr_items */ + if (sk->nr_items == 0) + break; + + off = 0; + + /* + * for each item, pull the key out of the header and then + * read the root_ref item it contains + */ + for (i = 0; i < sk->nr_items; i++) { + sh = (struct btrfs_ioctl_search_header *)(args.buf + off); + off += sizeof(*sh); + if (sh->type == BTRFS_ROOT_BACKREF_KEY) { + ref = (struct btrfs_root_ref *)(args.buf + off); + name_len = ref->name_len; + name = (char *)(ref + 1); + + if (sh->objectid == defaultsubvolid) { + strncpy(subvol, name, name_len); + subvol[name_len] = '\0'; + dprintf("The default subvolume: %s, ID: %llu\n", + subvol, sh->objectid); + break; + } + + } + + off += sh->len; + + /* + * record the mins in sk so we can make sure the + * next search doesn't repeat this root + */ + sk->min_objectid = sh->objectid; + sk->min_type = sh->type; + sk->min_offset = sh->offset; + } + if (subvol[0] != '\0') + break; + sk->nr_items = 4096; + /* this iteration is done, step forward one root for the next + * ioctl + */ + if (sk->min_objectid < (u64)-1) { + sk->min_objectid++; + sk->min_type = BTRFS_ROOT_BACKREF_KEY; + sk->min_offset = 0; + } else + break; + } + return subvol; +} + int install_file(const char *path, int devfd, struct stat *rst) { if (fs_type == EXT2 || fs_type == VFAT) @@ -548,19 +806,9 @@ static const char *find_device(const char *mtab_file, dev_t dev) if (!strcmp(mnt->mnt_type, "btrfs") && !stat(mnt->mnt_dir, &dst) && dst.st_dev == dev) { - char *opt = strstr(mnt->mnt_opts, BTRFS_SUBVOL_OPT); - - if (opt) { - if (!subvol[0]) { - char *tmp; - - strcpy(subvol, opt + sizeof(BTRFS_SUBVOL_OPT) - 1); - tmp = strchr(subvol, 32); - if (tmp) - *tmp = '\0'; - } - break; /* should break and let upper layer try again */ - } else + if (!subvol[0]) { + get_default_subvol(mnt->mnt_dir, subvol); + } done = true; } break; @@ -625,24 +873,10 @@ static const char *get_devname(const char *path) #else - /* check /etc/mtab first, since btrfs subvol info is only in here */ - devname = find_device("/etc/mtab", st.st_dev); - if (subvol[0] && !devname) { /* we just find it is a btrfs subvol */ - char parent[256]; - char *tmp; - - strcpy(parent, path); - tmp = strrchr(parent, '/'); - if (tmp) { - *tmp = '\0'; - fprintf(stderr, "%s is subvol, try its parent dir %s\n", path, parent); - devname = get_devname(parent); - } else - devname = NULL; - } + devname = find_device("/proc/mounts", st.st_dev); if (!devname) { - /* Didn't find it in /etc/mtab, try /proc/mounts */ - devname = find_device("/proc/mounts", st.st_dev); + /* Didn't find it in /proc/mounts, try /etc/mtab */ + devname = find_device("/etc/mtab", st.st_dev); } if (!devname) { fprintf(stderr, "%s: cannot find device for path %s\n", program, path); diff --git a/gpxe/gpxelinux.0 b/gpxe/gpxelinux.0 index 8cc5cc3367fdd5cd7378a772dfcfb9bf30f29f72..3384b20c7133daed40215455b0dc87f7df03bd40 100644 GIT binary patch delta 84796 zcmWKW_dgVl1IBN=$>E%{_ukp7&K4;nBYTvTS?&;V&dRy2`m}dcN<&duC)^>c2-$l? zch0Pgtowfdfak~O^?Jtp0TbH6gqDd4NS4e20g=qIO$31B$bZ%h=F2vMpS6J_quzeh z5%?hhym$jBltKtab0~+Ub6FYJR)$kVpF{~>a}8>uiv`~JPbgNpO*bYtc?AxMENVnV zKD+kI8pYx-Ph7s<3Q8^1`)?}a5wwIr=;{C({hq2X^a#g z^G(CIEzX{)Og!_wQ0$hR`4ZWW7u0HJba5KzrQg(4b=8!*&EJ%qx$WNt``o}<)ipS+ShKY)yHXg~@w zpHm+!%VOf;1kMpO6OYm79NetvI%$U@{z4sh8y$LJijLx_v{IBrr=SX^vyj6#FP^#Y3D5f&Ys%+os#}`RndDco&ANL zpniS&^qT{pDD`wVGpWog4BP1|yHf7m_F(eR_yn`D={&=@&)sVXoSNBhlb$ut{~jC1?kpUs1R68%gYNzP~w(i8*R3I)LN)YPiRIFcNN zJok`G1?cfwswmmuAZ_X_dX>+}sB_R4t(3b%FgMS;B?Xb&u#_;GUZ$RhSzhiLdOwMu zUZSmub2ctl`|=EV#jxU*Mw;Y{L8G`uScCB;9{!9LM*DaEXr;=x_1!N?`OEtI`GIjZ zl9T4r%$;gbo@I*Fnc<*fhO@lzCrUnh1sin?=b&^+wRj1S^84#hy$$OR-kX;G?`En% zIz7cKDSqgo?QM>t5Py*41mo>Lm@d6Xxtr#$U9)^;YHvT6$GNLucA0791;kDpWUHEV zi#OI>=!wTEtq?2;0(m#5j|1qL+o2IdMgh@Wb=8)OC?h|%r71@Qz4K0wGNtYim&yZ? zMOCNc3fRDHT0DfK5!Y+AqsMp%0hN_Xk%`jsfSiF?QmqmPAxA$8N6|%if*;d?-C#Jn zLx}b{Hi=svh-{YNVQ)gHXX1G5+C$_l?%nW#gcmIV=lQjJl#5N&nXR12++P#SP7|JU zK^vCJJ0FB=sY>6VoOB1aYQeEWZ$0-KVGYqsB$F?p^f-Nuy_ELu!K=~(Ts>@$2D|JX z-ezk=cGtJON+*dd|4o^W=h(^D2M!@W%Nqk7YuzsP)XL-t!PSAUYWIa_Hx#KdG4aTY zH{xP>6Eam&?K8NamL+pg#^Wnh)S_xhrS5aE$iFY_q`E2a$p+w$OQYg~pE{(;zZ_1k z-mYJP0iT&#OC{|<(OAE&bc>>oz@b_kZ7JoFZOs8IJ=#UPnICmN4b`wS)-`^AC%>gP z6bZIwO1gO*1JwEy{YnvOIdoq$IR>$b<5)K%um+54vNxZXH&Ql+JxeTv%PwhCB+T?jz3x(!v%Jiv($Chga>B(xF@+Q{vPH?_ZQh$sI zbIe447elgoR`OOkr(iLKR8Jl+`r72mJYG$5ZB%^DQENi;snygQ4nRb*~5|+^;pIb}H)BGG3)^^C&%6x?U zt?>y<=Gfn7&HJ3|QujGPC#iH}XFn!O<84*+qz_%>lJ1q*{C=qBIgO8Zj~G&>`KA>9 z*d08QQRXig4|Y;-h@+{ngjQOTJm@OE$*mq6K(-fyF)+|R-)uZhr=>QWW%q(Md< z{qx6C$F6e*#9|_^0je`I?v*`dj=C}+n0G(7avBCJP=JWlo-E_9w!TGzqXcWNcl{?WF_o8U3$ zr*l8)PW%(nd7A}Dep(H<$SF&#Ew#OR4gQ+@NjrdYHxw`QporRp&6Q2Xzl&qBo#QrM zmscFwLf|d#AWOjh_xs|S{(5u@`|PfX{uItj3vc& zR8{o7?)ZOA?h=gkuG!(hM{(Lf?+7>>t(AE10_+GxB!)X-`*ZD3H#|&?Zqf*vAN_-v z)iW5C+6lTV)o>^{L;v1s#N=X5Sfd#Rwl$B2EfsToy(k{b!ZgV(RzMny1NOuzTR=Df zQM+XKNE4AUzuQPdzW^T}ld|oAH}<(~CQ%XH7pfdT*hiip|hxG{;&M7;FgN@IV;;@eU zOw|l2N{YHFTo6~v$a^s?O*#}lG`nK5EmUpv6OB}zLCj>q2JrV zuZjP{KNeS-cl$DMZEe_)CH;YSa%H$@g0?&rinytd zR`2Z0+}?&d7|}QRzJ%bK04wcKJj!8(h@#HWWJJ~))?f`^kQl9Aq zKy#XyGiYD$$~n4FvZ`zJ^S0ugSi|y*q(fFr&AjHbs>!a>3RM!ZK?mFd{_a)U@y97y zwi|XXK$2lgp1zm5`#_lB36rlc&WMe-D||g}QQ>6$B<<U$&}zr> zmgO}y9%N3;!j$^S6}sLo6`XHzesM$pX1oI?#ps-oMiQI2UQ|u~Gm${*KWL^7CBNJmirVNj3vB*^n>`B=A&T$hILEwp~x*9Vl*Ha?Z& zxjRrvttOwawzX-@o;jq#k5!U30fVq^Du_0r_l^W{=D8$<0?_$5NVUq%zuX~H`aZ(p zTqbwpc1T-~vV;0D#~9Nn^8-J;BDd7)Lmy3TcK@tQlRs-%y_8IZo1MpQA_hoW9v^<% z4ls0!0Y-1JIwFRl$hsd@ArwK`jwsBdDpl~OUn5JnNMGL(`E&B}4b*9+q{OM7g(zyu z_@Y+h%9(q5gp;(3>DH1XrOk&+`J!*`=oHrjCs1XFYO)yqQtVlkq}s5ZKsmw8G%J#~ zE7S&J2a5=Z`Sj(`$hOJEOf?mArRI>jPIkrvvdssvuB4*`xU?c17kodUutmo@9Zfax zpUx}w1fQlKl_si2saK3gZmucgC~ZlZUm6%*I5@Q#4oXkh0hOxS=ok2CkTT?(P`T8# zrbsypXy*&ZFq&1qK%^Jr$ECaiAsG(0iWl^5ZSRJMoG2yqRb5}^wrxhTJZ#my5?7l* z#$}zww>m?VE5{qbiYG8UN2IOOlgf>aWKpCTDIKz#JIcLtT57Z&pkpWV8Sac%d;O*I z68nVRS(%J=>09?>3wdyOM1|YsC6lha7u$F#es(e-BmI9C*3TqGM?o@~n>n zhmoT{N@2DDjyV+el-7M=FWjX0D1#NN!Ap%xtChvM5|Px**WNdlZK+^KfjsZmQ1}iF zJ@<^833%8bJ~AK4JE`Rll?1>9fVU%gDKC2vFak!}DmEZm_>-{>$fI5?;#n>EiUbA{ ziITbP^9^^%IzsH7BSfgXM$&eXc2yF}i4msg@@kdiCz;tzkj){P>`3kXSq#numJhMI~3>tD#KtB)2b&=iaJrolKoU#zudd)?vbX z{*}aUqL}IO+^|xEe@yF2r%=(%{&xn@>QJ@6_!p{o6!QVg@{(rOw5I_QO-+Q{<)jDQ zNOohY$tg_ce7GcTWD>%p(YpO9`uz#5CFzC&uRPmN(Q9r6qOO!3`Y;$`GgdslG=}<^ zFwUOe%g%%cF+;`2Q$$pe_}T>RJLC7oniCW;>Y86qQ7X$-6ZC2B2QX$9AD6;b7&oTW zMbD#=A1%6WtBsz=As_h5-;?(r**Oj{Pk%RoDW5+j2q%zCh7unk5NU)XLWJR=q@fSz(Ws2`XQUQm zPLE=Q(h-72%7QVLF;XIg!t+>E+W)1UOTx;0P?Df1;nL{v$43YpVLnIj9AWnUd~dpS z21>;bXrz!~-{9i3*piIUK z8WJ*6D%pqxLLfEGdIoT?VtJGxL^G94LRln>jK=YnQHi8jC|O%ihIdh8YLT~X+-qw+ zZ6;ycAs8|KF>a2)%e0>$D&S<|*o8W(=~i241;uAtb& zmDHdi%dV)reS9T_N2kL|6FxYsx ze4$@y3p;{034c9`5xr@DtjBYv6>}B^FY}b@*gpm5TJ`yKERdid(O zjSydHPH2tx;AmrY*`qWAV}ZepCp$a|POoZ_g0&)PrO5s!HF%9C8UTLU**M; zEccOTt+D(MJLPXjmZf3(y`Q%g>-{nQ?V(_5D=+K4uiGEr@E&KrnFuv_&O=210E0hQ$4rwKHvqAM5Q#95}|Fso{I#qc@xJ2M+jpH53q-0K~SN=CEWJ3Zq zcccY&BdvveXrpHw<)qGoK;=2)f4WGhwv1V#2HC-@?iEFC=rE*aDi+BT;(RDh5@o5( z9?6a{4b_SY7;S~KPK>;Z(Y*#cqIdWxOlB$rrSI*RJ+sd_-?X~+AkG!~8D9b+2}PY( zwVE7dOj%zOF4@OKrHN?l6;!A)G=a1^t(dBaUTOLhx}$TODHPBA>jU>ucd6T!R&45E z$HT7qQF{5xx9mT~GJRIU)nx!JU%|@qjys|wk=pv#2Yg^mA{fp{ACSa~!qMCdc0M6N zBd^_bVUwI}YWx)OLn_wcpoYG-yGZ8d;>RkAa%fL)2jeg>yHRvzSA$)?-Pp$%6wjVr zZG=M!$|4!YCTfLUqy2Bj!=RkmQ&jE-MwW7~j7dB7lLezWaL96}ioaf@dvlTs%sBX= z&P>Y)1(YiXfGQ*A;2&Y%zl!V500aRE-Rkkf@eNh zkB0+Ce@vkkuL*EEcC~JH1bom>+TtjP^O#Wm-D9ZJ*kR4D6$>My=eSCIfGd{L`9ipQ zRGuq_sXi!gE_D0vr4ZJkf6h63prhJA?q+643a3ilk^2*5s`(^AO}j{H#)ZQuE}0^C#pVyx?x=DSIzcP+O{YEM_0bkb$BbQ{zchLhHi|lS z1j21^5V`7JJ`CIE^W_j(f#Lex5g?$su_F`kgFaQ=l+xrbLQkI({hHfSDdUJt+L~AG z`dD?U=CXln)9m&bBSvEKzWvmk!%v34BhKB=&y3SM1^)S{%wcrqDCPEV)CI#;Eu!7R z(I4m{5nobO0eg-mkjIq#949}fD*A~8ZiziYO7?YWH5e80s!=SD4_BV>fyNp*tE426%zr6KA5@Nj{%ob%Do zV0Y|Nae0@Zl>0Zfv<&__J#_c(Dwk>a0*twOmcYmjv2g#oHojcNzcO@%b!F-b=St^d zkl&*wt%VF(c>KrA*b%JkA!Ut4jnHGwiFWF@u!mZmD>Q$Z=)~RLx-<*yI1;V#jrQx$ z)iuR{oH*z=m$zS}WB;9MJva;^Wn~ZHO|ieL;}Wuq~cKisPZG+*s@uaL@e)SSZTFwS=jWr61ut=CNtK{ z!I}ZCnvkBg{r6PfRv_%iZ@3?;Wk=w)yN4%VO#TjNYok%3I_)oH$`3v0J~sU) zAmi;p5*`b({`M5Zlc9rG<}0~ApeDGA{@hY4RA%SYciF_MTJ-~DEKmNe@lFkxXY7%< zU@S3K5_)ui)_U2cYBb6>+a2@RSw$$kuR zw3H*uFq6B2G6NKIWu%%pjrh1$5wmD_0*bf&U?dbW!as8#W}ger>%UE?z`lsQbtF>? zO>a-1c{dS+S8fF+EXvnleG@F7$Jt|A0SJH_>0&DpZZ%6C`5Q$D&0$_*>TRsv*xh(% zL%vC2_yKuG{upd9EnuSzh+dx*?aK#;M?({WMl$p`qZN}ZJ$yZx24sGb`f;d!Bm7zP zSLaY32EXOQ%g6|GZNXCaIUJs#4f4r|d=hJr=Q9achpI>(ZBcotd$2$y7>*AuCU5eW z5vz2;0%T4*Nig%DE?K~K9?t9A7;g=skmYH%vBDI(Fv=D#!Ysch$b)&pCH!ZANr-(I zc!?~+)254lU?B^h)xj`LK2Hlaw?zKh5omt!9Eo1)j7hqF`ZTTkVqhaYf$l!abeRm2 zWF#mPH*EjdfOavXw*R`fB!oxkQs%$OzqWFP6I=o_bx4|YKSFn=&tyE7!bl+$G`X&v zMm=yL3(*6xgiLcm6D)U&JQttHG{5opdV3G|)vw_}PO7SGF*o=XBBAwlNG8ps1DpJc z+hliu>96ITncMjXc^P<7n)aQxHZfWd{@KAG;Q~Dc@=>X=(ewbxo@P|ctvFH{n@k$? zkUc<8d$n?->D9Z4h+!#;^y4Spo^q_!*gqn43YOtiHbkDNo(!cm<^+k;JbDNFlutg7 z*E@l~ZQvsSR$Xg)xS*SGrcwU$MN7DXzj!uD&XS=A-&ypMdB)2g1zj%V=L8xiUKU~O zw#t_|*7Ct+G{tIWu^c|3WZY8;|5f1jFPc`e)=i#qH-Y!Km449sGC#X{uJu_{lh7`A!&bm5!GByqzp|UHyvcvZ}$0=^XyOG*Og@sO55+c zR&N zAX2ZrDBIz3nY4V1j5VEQxQPq+`1Wh-iKwWuPUw+huNaC>V8PfOU5b)W{aa6(=$Yw8 z5x!905!^e&zu_N4n20r6y?G;fiFdUk?AK4$jfe7AhFo=jX0uJbyyznt1F5uWM@wvU z+tvYj!Nt4>#XlC5bVN@CgtfOTNDwdeO9NwqOg;Pr4$yi2EVny(77c0WGr>&1%)e)N z!T$yU5M@f;@cT1ddh)qt4}vF8T)p3)$&h%bZcb6`t=o-$A{U3Xj3G}k%pDsaM34G_ zqHo$lc6bkZNzUI14Y|EbJ_{qxV?!MB&LyZPoNmm~ysfBQ2lnnHB~HRBh_ZsqVJcy(82yW%Gj0&ZDC32yiA^iCo-5tWiMROpW*z$ z>AA^rw5pGr90La5t{)woi=Cx`aBu<*BrU9)i^|$;1>byM@sg2v*$xVjiv)3+HaP0E z337wlfz=SlYba5-hy(kq(+__pV)@%xlKzQ*XbGVXc^1P-;g400hWdA?l>GFJEtT@~ zpC?>zzfwCUqPNAl{e-0pnuMnpHZKb>Md>1vn9S>63X;ZhxoKkttSM@(Y!>u@Z%BVG zD{Z8J1=MdyEq8z&%>|#BOf5!)G!OU`8|=JCG4bVBOM$zemM(66zve?EBRJfMs2SAGmtT{nJvqPBoX8>}3AN5NMxIELC6M3g0Cj*{kA!}nI|)oon;L{RwA#b{@2n{bTVcqpPIepKo%ueo~v^X$nRQQ@qAZI#l+<#szu zoO&Uzyk>SA7UFdPBUK{$ehtqcYk(uti?$?oX;#Yo0X3MmDeXk_e~&5h--ppeVbEo4 zR(m2a^;t~ST;L^YNI8|(n9>6Bu`3cwJs%N@=sfG`R#C*LoJun4B08_vEDzHR^jyqO4}T>QM*php_-BWuxU816FY*qk9go>+#N?5VBbL#{Pg9?F6eC zHzmL3h)ruJ3q{6Don7GEJM1;=4~Icc1Q<(R7rRUwtg)~sb~I*MEIiFb@oa|}@8T{8 z%QC^nEtKzSo|YPS6e`KF|6JeI-O|qMb7ALxa5EYjOP=`S6Zs1%`1z)fm)Go&$Q2RZ z$e2GpD73y$FwG0@5eVouE|5m%m-~+ZUgvbJf2!m+=62D||2!-}OXi~qb~!6+TJ^%f z7X2n3(9Qz!@nSN0+XyF^k3;o}#VxnI_i%*gQ{I9!-C$s{{hQ-M?wQ@DimxWwl_B;jb;fnJSnjfC!s@g!w9QOm3+ zsA<4=Ne?I;D$0PM%&^2ta>6rbP~xU+h&20N?76fbHqkJbO!M>W8ss(+R0Uzz>NQ2M zx9m7~31SGgI^ekV`fx%vWUOJ?fOXEtuaN7Bn^o)NQ@BkNlEUYLGgN4kf@rhscb!+) z5G5Xuajz(FH#_t7^ab5?91LSbE)GJcY{4>Emh_{R;}oa|GyMAz%C2H zlJ@u?dE2NK2;5+K`O{FyBj3BB;uKLXQ)5(M)XhUV3~p{4f))OJGAko{0Z!ePo;K;F zbyova%pOo|ZjPbX*(x{G%f9U%^K^B{uI3QmRZN>khwE95iD@~_DH3Z3)1Bn z!r9Ipakf|o!1{FmIoiY{RCpw;6mhf|rfzHNsUPuF$EH}jzTI6xrUvwavX7EynP^`2 z_BG}ja{J+{cn$5}t@XfKy*)LyJ;gD5U!J^DU%fuS6@Fro^_FI2<$|e`$P5*x7DFyr zRgWf(ViT|k9A9G&M#%3_m^F@W0urOIyKs-wRNe^+G6D? zUq?i59t3Ic@(2#ud#EpeH^?6hRBK~DZ`PDA!V_v0a8lDG?5jfbEM|KVo9H)~fDgzLGo@WYTjt)!}&-z_(V zJa|x>{Wsy=Is52Q@vpec@7_x_xi?}W$kbQo2_JrYa11y_{JCKp^k>E%K|Xl%g< znX;vRx&_|kj5z#5T9)2EHO>8Yq+5efVB$j%!{{m{lo7$;HobF#DKUN$H{!VWzW<(l zifM{j&?hLN3haP6OCdvX;YL=fP+<^H$4Zy1D;jt*;SPu_D3oyRIZsmTl(d4FU|7*a zWq>4@C;c@@msES)G^!g|ZDA{d=hwMNIj!ArEg;^L+EBD^c7iIz_n+9O_pvo5x4xdC9?LR##$Px%0^H+s(jQh zGE@{{nrFodLa1$eiXuSLz}mI59fGY+Up&wl(JPHI2H&c$i^OL^#fAQ8v=)GmU=HF7 zTRg6F=(JbN>AZ-%{`5&>Xa)u=M7(ciro4tJWhmby59tUbuog)!%5Iv2val zHoFy)jPgO#_g%(vvG=*1=7khv#5?_L{<;kPNxar0vsH~DQ+pZrVmrCx`7+2;9pg#M z*(Y`O3xuxGMB<&^5}XeUKk`%vsH7cVB%*2Y@5-%egg-v}mnd#nlfVeoxFwZdkltsb zeQ<+^QgSjW+i^5>O2JD4Jv8A%GIy{=q3Y7(os$b!oc!A)cHlvY_ zANqK{yCaQtIBofp#=Pu|qM}*g>YLTmSP5{xs2zXA?&6$xJ~^>PLm~i( zFVQNaN@qSf>SyIe`%++|Q=bkS3vw3ucHS2llb~&LBWg+@RqEGaC2SnAsZD89V4N7j zv|v;n>%ybu8D6gI=9KOalv&CbTH;C+Ff#?H_kk9T=7ND(GJvGHZu1Y8^lb3lA@l0q z4fhb^K;-8J^O2f&hb^Nt|E9p-zRN9LKM9feKR%Pq!W_3$1qHTaK>oL^P93aF@xnBi zur<~k`VtxCnJRlLFE3~pFX>M016N+Q*z$Fk^@fK*v3c@o6rz>i193X-EYrlBRS6?7G?-? zXdl?_>8YlabWehlw04NdtV1i+Ef$1 z&xOw$F)|%XwZxKu-Fh4m{7(Ok+Jqe4zBnq6=sO^$Epd8zUv`4JEJnNi5ZanoD4Dx4 zKJg5qZbSo_{rHebE9VUHMY8M_KF!#l{N_=OH>L-LzrC`~o6;}wK2UV}E8~idU!P6( zGDXVP^Rlq1sPaWS{dC6>te#HVADuqx4xK!Hew~G`oc$ihp;r!(z{yWC{(QEfS4AjB zHt+-V$r8DhYch|r+vKfMTxtilL^;)5ad3(LmcD%qfz)gZTL&eBBHM2CM^15KFe z^kmb6B*Sj7e3tHkb4Xh*K&hv*M)Z9^;-l+Jp&yGkDOR290frk>G&r z-h?;N@2J~1E)~qLx)dIwtV6Hi&JF%~6FP6(X%DqWkOh6ca|(DOZN$ zGwHEEx{v9xypK!fG+$SX%O~LML2?psrLA9reqBvc!}#tYujA@12p13XJHf2bW&@T+ zDti$>n%$T@6Y366c;jCp5|VY!v%ah+6rK>H@oI-*Wk9ZNdDlY`2BzT+=$(#kNzY0_ zDQ(Laklx=kDn(x#CL};$P_w~G$EE_HeZJUr`_+S9K(T!3?tt7pfv#qANyb^fcexVt z^?x#j&UP2B>eAG)`)RM6i$nhHB`eUQ*Bo{m1J@KBzq2=nr#{2`v?fFsI7aywOBAY# zWVw%p_;LNb#5%VLm* z;Hmd5gt29?bkyTd>OFA4q*logF6Z!>GZW;JNh!PF~~+NDrRlsa>e5ZfXf9 z80!z$oD{lDG|#QqE=86Nr;EOHG@rQGkJW1b2USqK?9hQOji#z*3UD%3{Z`|PC>71; z>iQ_@tIW?Pp>L-K1e;fGJi`S7ugKbz)Q?w*Z8QYGlBBgr=M`!lb$jx~B+ME5VCWR5 z4xl^ZeG$m871c4gYoP94SE}@mbuolIVhB1@cPlUk={QQ1Mbj>xbHX@l1-;^wJQ~4l zrd`ncy?3WXfPT83nf1;Pb>FeZd#VgFqSj3@)T8=oPhTeUr^5zqE=!BtUlf-kcq@Uc zPEi4i*8`kzT}>o4i8XC4@w#cNLsh3M3QFVpj{tWriW8Hy{0sl?%@V!09PUo| zd9*?w!lIyst}l)O+G{UPE@+5Kr)FZDTb4KoHHh>Sh{KbgPcfs8jGUibXM20IpHf^; zs(S48oRWQgiD<%cxzGy4bmLXFW!F6gtTsOt5TGrh@j+&VVVa=12f)ijrISL(w(R(s zOR5ncKY}yOl+JiZryL)7{f}-~2=YlL@ACPX5A*?x_E@#Vz{SI2;#(peB}CHJA?8j< zs%b*uRLz#a`Htm9s|K;^o!8`JWfX4#Z?e;#zUVs6}Q7G$|yb|ufWztSX(0Fkqc@e?wgK3&6aq7$dZ-_>kp{4A>`vOSaa1Uo+tN&9yNPP>uM$L zrmPE)xgTa!NW!rW$>1uArYQf|CikA0!|QHTe7FO^s#wrUAH1~U_pZzpUh~I+H>+ZFet5#fr9fCnAPH#(mnD`3pm_qe z`d7yDUajpjXq=!IEiaxv^Wkxqtj>_JZx?o~PLkuaVC{J7rieIla|lx#PgRhTPt%pRR!VAiY(3BIx7h6K@L)$xG4E-~kmS+d z*o%w)nA|0vc)pNH9>~OZAG#%S*RcSvx#B?EFYpGyj#P9bFm{CHOhjaVvl+Tn82(uH zd&g0w{+r<7)^DKgLWj}(a%0!%4pc(c%F0L!1Wy5oFS<|BgMn^rtW=TUE7q%XUS0|l z$cvjl*gMYtBLUnq+3uoub^6QUmlW4Yl!S4RL-68f~7+4V+2POyPf zRiNm@?W9R+)G-toDo$IFK4bUj_#NUGR<(0xLeip_=lL2$s6;YRBHui32Lx=`=w+$RDQhe-LFI^_`ew@7Uh1Q5{l3p^ z?r5WXxlmzMXx}R|a2Gbj4yf?Ow3GGv()49y-}w)NH;#zvIIntlz@;UAxxniG{)pdM ze|E12uTcrx{UO=$mIzB)=ZzDko3g9t$?Lq=pRId%SS?Kd0Cy zK*uGb8IG&78}BRYt&0K;Isl;8eS@XMZ`NKv=U!B5+&2Z=C`mVMCm}R{E$BUi3B6%<-$FS!Q3&=nCdut zefsI4{~K~rb8t_-EdQT8Xj49c1z?$+R40f@5A~^mW$^j{t+x<-!trNB`z)ILx6to~ zF3KDAPfw%U#A#wrL+!*WDN~y%h!pu+e6UXw`_fa+y@7cXNvYG`N@T3G@qU}V8qgf2 z>{PL8(%^Zojsbg+a4qXN9Plw#R7&+MXU|qUOdqonFP@ID;)H89q|~an2z}s?UyvY~ zi)q-Y;{ZShJyqW3fIll}*Z&7B5vwYlnYJ0#1iFZKK>uMrNm8bS#?%No&25D=5fgHB z1c~a;*Ue|=cg6eMv(!(jY*YAMfNBQz7FIPgMM>TGYx#QviAgDhwav#^~R32uuyx5o|}!cfOzW z+0G87YW^pl-BSK0^o>nDjJl7oi4lK&zFS+ZR@eQhz6)=|lH?}vIR;g1A^0&3~WYkNVWRy}vijBdeuqc>U?gz`8jL+*lfMs_; zUT`TEsX~=0LPzxl1hwzKICCGPj#fs=pH(;?NJQ$+Z{SL7qvHv%TJ2Uy95j`7Q(o+8`7-BB2sq5J@CvOr>%XDn&m?k0YlRpOv?qsTzP^{r>^B3b&Qh zFLMWa+2Ks-GRJArxoBYWDM~>@EIFuSfODs(Hk_)09Q+`S2UOS`Gb>&9m+KhliKVZY?d(LSP7gQ zkm9E%@a(K$ytPbDR5f@6z@3w&+k!+a-FK&b2%5cs&v-Li$XOf8P&i%^hLe3^^52`X zw;)LG8F)igYv2s`fsQS7fjKPV`j>anmy1=u0~gAi`-i%&&2P;DOA`ME zUk%y#8CbLDEp$W@IIB4Rq>*dhy~Se}qQ*p`$O*x0cLL^B4t0U2fTXL3G~~ z&0QUT?30$Uf1N%|39@PPqF6HXY>nBVcwu?$=GXp@RY}|hF)DlN{~_$c_A8H6*D@z; zu#c#H95qbq=>78z56XP~`X!Mo@Y=+i(Z*SfVEtwhin?svjcqogAjqsbF!b9p3ja;? z=@Wi+<2Gi3AieEhm>pjzHf$2-;Yrdva?z4rzR|GyQ)v~^GD%0r{?z|#K!cY~c(@ ztKF>@g9i&zMJQslt|g&vubY@8XmgNk)ynnq+kdSwKM+EP2AE`M_T+wbssu|PJFBe zfrTG9`5x2u!d$&q_JRBQ=+T2x1CnrN+a0)K7HP=E$t||_%a7Bq?(#i#Q>Zg=+(%3q zi`tb*mUz3GB7ynG@6*nOQs!VC~sXw<<}%j3Bq$&ny{xk3wVYPE_qkp;Rizwdpu} z<)Cz0HQD`KcCN^gW5M3ebwQl%^KM^PTy)v(w>qiQFD!$(w}E$X1hQbQWPnVjc6JwT z@*Yb@^Sg6fk5Ar+4--p~moL8^_cpG}!$ZvNp}QCf2bBc7H*Q$a#7#tP9o*GGOdPq2 z#x&+rp03($WR-GSm`7@y7j*7+>A2tuJg>|sb~`$}**3p92XO72`FQCwIy4llW)OHF z3Vm284yitRJkJHxzFydqNj|;Vv6*a&RB|^4!RLk8^Puc~CCaGvdXTE%{}=X4vTuJ^ zZWrbJ3-zV`A4U1$khL$8>14htl(hpKiEUW@f1Pwio3|a{32CrDXZmZkijq>&jBRrE z*6Jm}i740OG%pQ@U)ETm0=c$VhuD>-6Bruz1kmqyq`81_(NuK!&aTffUyWNRr)lvi zi_f@bBQ||&n=&3-rR8$i2iDA&d)q_yX87RNf-42qycS)1fNd&q1_}xE6a=Fk9(MNf zdgoiK!gM#Q4M%|sj!hxHAQSPiiZ`5_!e8qS1nIvNy`vfWY9-Tzi!-1EuS6VI3S#g> zuM<09>#^t^75*UrK&?W4YCd9eKtRokVCT|0Ps8|AIN1Upoz9Hq1UwxdwejO#b%lbal)0QLbBz*wsq@Oe4lP}$gJ`NSA%w`qC#cs~{8p)Vldi{3? z{S3l8Qg$=EZ60h_|{McNBxeuK5b4&*r6NBM8OYvvh$>+^56cfz#SfHij`k!c8zT3!MjoUk4tv z!Mz%&WIZv`dk(Yk1nHGl2}s5d2)96KgtwMxYefbPG;rN2RQeTC!2BLF%c_>(@S@B zVZc;=tNSV|s)|5(*mspwG{f(G9!~yt*ej6XRXn|1;soaeTLJHinJ4 z=gNIW?qhBxnp=)SlH6&-7ulF&Gb=iEyDFg~_dPeAl#nAw*EB?jMC|J?`26&Kd_JG| z`}KUjtGV|Af&+u~&p#uhME-1mAwfbd!4G~hdoFO`dMB#*{99ieC&y3x$By^2X;qT) zT2GA2+&Jq;`7YSSr##lSwI*}pM>A9MLl`;}u<+yea8V3N-m{GpZ9e4$um!5>y z9|8!}cNDO2pMEI6&OBmUg8c%-e#ro%2698-sZM!n(VN`syk!@)kpR7b$yKdZ6mR~3 z5%4hMwX`y2ovQR&91kTF7vCzJFCkDci)uh?WV#?l^It{G0fgE;7mSDCha5e0xvtgN z0{aR>1%-psCK>s9&-TALE9jp<%pcsL)Y6C@^b?17lM)LU$9uRf_YXhg^Qrxh+Vq_| z)cE_at`jk&C7%lQ$grY*-!J+XEt;-vQzHMww0jW28S zl3SCkXY503`ZmZKEryEcP}_|5qQ_%aiY@oxE0B-~Y>SlPEd0smv5fH-Q3{*v>uZWw z($V{EFSE24i^%-P*}MXD1AX#rKe6~Qwe8(6XjjM^6daX-1m7cE}09vZ}qPv`hZ`nx+ljbR@x?^=`_H zW@_jJGAZAy2c>;{8=28Xb;y5B0!?h{3jr*){vXV=r~VCeO86ScDiJ(o^`!riG}4_g z$C6I-k}*{rr#uR=`|1MgV_R2`>k6JhZb{2Rxib+1UYWu@9e-1aBCqSDk6<7uSdxI` zqnLa-Q{veO$ldEE?vMUbn-^ypKtw`egh5E9l%d}lTK?h{H~c|=ph&$ygbX#GDKNdw zZ7*>pw_+Q$;*;0=7kb%7Cqj(ktlC1 zw&quGj(sT&eyVHv(cNx7pTIlT%C#85sUQnq1mXb}Q!)@3KAC&_O1zRW0_m#gNIO0Y zO@y{U&kB%QCa%9a(k$FS<=(I8rY)??bDzJ8J~)g(UfA zVctj63DIXO1fScrVqC!!N5)>nG>I`ygI@N$1VGP*1pNmxhwDkUV~9~?0f+Tw;!Mtr z!#ey{NAEnJj~Y~Fb1e|7TD=YdrBC$f{>R5c)4+-RM2+p4Bv z?$`;?U{Kfi7ZWK5?iW5ArTYa_>shw{zH^zlo>qu|!=k-$7zMltCq(eG)ixD|f5`T* zn`M&yRx(=jqz5yXc1YXl$pe{^K-gji>uD761aJjkDH`LDW70i^%#&}f*+CIldk}hV zUd5Li)%lE-^d)L014?AVJj%oPvY9oKj#xoQ8Bx>J69S2uMJmmrx2(nH@5n1hvs>>0 zvXY&B1m{PbwMKzt)+JwcoAEByQkbGvCyd=T@47$iBb_dJpwq`+cRU0+NIPaz&d80Y zmuCnV?cdl(AHPI@O&2$8;dN<03h*SxK^zq}j(05sfS8Ka-kZS!~zO(;Ox4p9YjB{kP8`cWTD8->QF2BK7$!h_tO`rG zs4Fz{!8+Qj^q--9Q4Ko_&kR|!gK;a`cmMnzuL||EiW%bi)mxTu?p#;tySlSK*fq(o z_3hxYHJ*R>-SUU_`_fN)mEH59Vf@x)4`(QWwu$`!))R(I-s!gOj}mK~C;OLX+ohuJ~}9%KMOU zc~W)c$jI`C-fz~yL|=Nh7=7WN`ir)#s&A9R@87CF-wnuX<{ZzSKM8C5{ixJIdMMl} zPXhiSSR(M(z=9KRv7d0lyyM1;CTiC~hOD~DxyLCJr5DTOfbsZtl){shtm0`0o`dFy zG}^#BBn1AP`Z3svmumNykPh5y44kH{OKfwb1~0G zDfOnJze!JavvBB6U&a}`kxt)W41Fghx3d$4eG#_GhVfA8!kSW&2Ce zI@rnICRZ8@$)Sx}HMibJ$RUhcyaXGwIYoJP!OL!o z``!z-0NVu>PHVwJ4UZ=WV&!3dy)mLNDK{-n$ciaaZq&;K7N?85?v$rTiGc!>DQ(wC zzfQ5wfs*JntF`l{> z(2-^W*>CDdOQV1WVLfY0w*OJOYygl}^A^{~?2|kJcZbqcGtPwV1trIB zcj~xr!dg_|l*8;ONx5lEY~(FXNkOxVayHpds`P&SsJR}C5fhO1zTnk_(0(H(_FGia zT+?_`1@O5yv6*^0TVA}ePw&J<^>JE?M6Eb}o@}=?U$gtC#`OjSR?OaXE59C9W1U1F z0F`^zXOFKbX!z685iqFJ$dep+GC5akr(-+!{W#=lL`knwk0)h5w2baJN^v?{a zB6}JHb3_U&Cm*AE&>MykxO@j7*3mzrQ1E=tGZo21DhC?O&avknVmV&OlN}Vl(W#i3 z?J)OI2#av$2&_JzXx4J?9S=sEP^uxqSyC^21w_||V*r3C&Vuu;a~#@zI&@Mkd1Qrl zsU=SM<^zDNrQy-qE&U^F%xuYPhn`%t#K+&9lV-BCWuQ1hi83S__e47bV=)OInTPw* zzE)AmV-u_vKwHh_#=2VLc!bPyl{?exaq4$JysU_G_5 z)otj&<2JKA^)N4k#OE>+x5^fu&?Zzn8H2W%6ZWXi7Rme5;xjw2Ud3Gb?@-?u)BNnk z614`c7qJe25-s?(rt%1k%syX>>z`wrf~op94g#-t?O8__W@8IU0F|x}$dAZOxicu= zI=p^Uip+FRs|%!b`TdzAp;&0m5_ zYJKABn_+3PhTRaWuX7bZ4TxB;qP?6?n*HNty`u&P9!kG!BpuRMO|!?$vOk4r@~LmD zOt}Ab`A0K!eNAj-EE5K6)Ki16IrWD)T|0m&_zY*w2Ae0I%#C&~!Wgvz)i26Cld~5K zzP2zWbW);1lJes6)2Zm1RT~UBLD5h{PoTgCCaI;ST%3goBMg|=gxEkPQ-UV3shc(G zJ1>E|ug#LasbVa(EDr3MtD0GU%~a=LyX(&PBnn&I=V^?S$DJE;ivR5#iV@#*b{#xL z1gI)aWWgWCbc>MvdU5PJ=ecPk!LanXl1MRHmG{=0n_6(JKm6JfpIh#|?zLVglqW=({61mYgKr}w zQ*;JX^W@5oaaTvO=rX=GshqsN4p|TB3ib@h61*0X;Wu7ZEC1wTyr!{FHwaTNQj7e+ zA|U=AuZNr1a}q72Rgyw)_RG2yH-EWfJ_3P#I31RIyWIC!X;mn>DP zQ=25ve5Fr{PW6aAYYkYcgjjt(Wuj%-y!4-HsLC3^C2}#q@UxEX7VuSdI0t zOampouUo~pfX&)M(ZDl7Pq~)=@+TPfEO?+nx2pIJV95Gqr||nHEynE*FE`PD$X;8X zT+h$?+xVRv+x&TP3Aa#X(lo8vlUp)+VzisSbgiB_NPQ)?n+E|gY!t?p0k}(Fmup?^ zzmN#_w6-s?;a8j!v!4?tI!*|>?|n~PCv@mZ0e#t7LP%BY zKi2*{R)U>RXyPG)P*5;W$-JP^Jz!HXKlU3ZJ(JnWqGLoa-Ec!-$cz=V80B-aA}Y=ebR9Q9!2m_w(g>FCIciH>YF!sGc7#LD%x* z@1A7kbTsD`HcIaWN4r zkOUFZV}Uq9LuAALiW-~#YFH0M&R7#O#lq>vESaZ_BNHb` zy~X*$QzNbckmf)q2F!8OMDBeEC8TF+24r$mruoL zDNCcOgrEHv`}a_P#1=ZjlKAT*J%yn3-YIzUTwe+v@fsl0I1Y&C;Ldzhc0Mmt_NWmc zOPhqCV}rkiww*qUU1&Xl?vVMOkk>FCEDx^Q6><@G>A#?>sFj$ z?%o&0)@{G!B;E&q-uv*6{qIoa+tf#L{be@>5$6&HBk(gY&B?a`T;<@AS#$w(X%DG1 z*~PIX^t!da_^{)-I>Kg)=Vf4Q7xmz!10$0<|MG;LXn)ZSR6!VW#tqjfdz~kNRKrA< zZrM-6)y0OF8s0ogcj9JWFmSY>S`!+4CiqkfeR8_RezJ�R=`+*Ly>4z1^?Sy#1@4 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ϖTWfJ;fa3Vg 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 delta 84694 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%0DomZK;EMya96=p!jN~ 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 F0RMxfH1+@h diff --git a/gpxe/gpxelinuxk.0 b/gpxe/gpxelinuxk.0 index cfa625f4e687153a7cf04445f2a148c28f83c8f0..6999d4be68ac9e6774fc1565bb2391cb04fde040 100644 GIT binary patch delta 85366 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

P^PoL+m>$$Fe5dc`1gf(6?4W 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 delta 85411 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%0Al*Tp=Ua_6b|N(RXH$ z&s_{N0~9E3t74EKrb*I4Re}G*y59IBsCj&tS8RS%4WULUd zMAHOJo0{#in}7$bQSnj(jJaLYo$X8E?Nh@8z&9791{vgYCj+dsycuMWLB!0|ve|A2 zooPGeXanFBc!k2Z?B{N?U#5xPFn5Hv<0nw%2?wC!zYDN#kY;?8gf{!_ZcZ-1wM06*hr~YF1f^YzJM}m-nf9!giMZ=iNt14nBb%!iLAJBlrs=xxL%s*d#OsP{NWj8g43-Z# zlN|^+Yc3-ID-jmJwo^Mrt3M0dh3qac7e7j86Lz!gx->hu18|ugv6uj3G*sle1No3=(=uE2L%XT2Ln@On*h6nXIHbxR%ov%9tBt*=D-9X zY!cmWuRq8J2+IJp+5rH?vj-tDv;+3Dt82Oz0SEEy0~pn?bNxokzOCNU%tHfX%WF_9 z5&y}G0}sG{wy@h{B-;T1ZMf^ulU`U0f85hA!13A3j!{%Z@>9IqQD-ltS0LPfgWFF? z*>($60|^gA>I3qDO&*vdQ|f0M>;mh!>!Z{o;0HU*be~g614R?)Y~=tSe~I{{YDzyHH;P0V5m&0e8!O&cTxp;}^5UO&3kmY`c{se-so0 z8XF-ZbW5Bz018Eom`&0|F z;P>3v7Xhcx!vn810lWltU#bTb+~qt+%fFb_eT&{$Jj zwA~nHkg)*+@ci37f!*0E2VW})0zX+R*>&C4pDY862Vetd8~6e1x~@A=e-~I2_X80N zYa8pjL7-rJ6a$(Ql>^nV*`|0 z_m0XmTXXZL2bZwtp0y#^6iaJxp2G(lL5@x2(#l_L+f6gbUe7fCm=RpHdaCGiL`#H@(*x>f&alOUx?|qX(8-S0O}y z%?CH9IBA-uX(B)kl1y9;o2KE&QqE(jpOzpn><1>PO9RJ(aJK0W@o=dB%Li<@hKL(U zUIqbW*=}sz0U!Yx0wEHXWm%RH784W~6^4JTK803k`o4e*+}a3w#vi#%``Q3jiaYteiw(S(}JEtPj^^U`I#z5o0^MX+t`7f1P1?{TKrXn`rMHyP@l| z1OtEwXyE|^M`v!Z&z(bf3j@dxBTvN$9^tJ~02ft=0CLnd4U_=LSK#}oXxr4(v@JKB zoF>5s9@VbffM2zbD+{4EXlhs3Uoikf3uZS{Ge|Q?XKxF5J&Fs~4K^?%hzmC(3pULc z>^>t4L!9(7e@)YL4$BMH7E2&?UAF)`e+yNMUIRd2T?1V^2=}xLy$@Z-BcPHe*bihg zNYgaGoZ-H9-C$ko3-u2X=L%Z|!5OS;&JRNq3mgv&oxrZ4c2{l#OyWy^Sl0~J3x*E? zmkXK?(ysd;lf4VW1Nh-T+YMNE$_vg9a*u<=UuLkbe>=f1lnbQ~zzt8qy0;6(56dUd zA)W1-v&Ih(E(t1&Ykq-xTyVrFcH-G~i53>IYr_(swxo1C30G|uV(=Rqw zG20za3k=jBE4t;d?pqlPArA#E3pEexmctJRLkmd{2m`zAx{q5EQxELl5C|W;Tt+Nh zqM&M_eT4ugk8cvc36}#9_IC@wZFj;q84HMz1567vOC4u4)gMNWMthcXr*+Wugu-8m zUT@NS@~|8GojU~E`T+ZJ3w9RQ0yLb*p9AfW?H^#%bzO3M4-be3onnsFG)-q~2ZX4m do;bLwc%#cN0J!KHENut09{>OV0000068~IGZruO? diff --git a/libinstaller/Makefile b/libinstaller/Makefile index 2beb931..e67a468 100644 --- a/libinstaller/Makefile +++ b/libinstaller/Makefile @@ -26,3 +26,5 @@ clean: tidy dist: tidy spotless: clean + +strip: diff --git a/libinstaller/syslxint.h b/libinstaller/syslxint.h index 80c40f7..7c9da51 100644 --- a/libinstaller/syslxint.h +++ b/libinstaller/syslxint.h @@ -247,4 +247,13 @@ struct boot_sector { #define bsCodeLen (offsetof(struct boot_sector, bsSignature) - \ offsetof(struct boot_sector, bsCode)) +static inline int fat_check_sb_fields(const struct boot_sector *sb) +{ + return sb->bsResSectors && sb->bsFATs && + (!memcmp(sb->bs16.FileSysType, "FAT12 ", 8) || + !memcmp(sb->bs16.FileSysType, "FAT16 ", 8) || + !memcmp(sb->bs16.FileSysType, "FAT ", 8) || + !memcmp(sb->bs32.FileSysType, "FAT32 ", 8)); +} + #endif /* SYSLXINT_H */ diff --git a/libinstaller/syslxmod.c b/libinstaller/syslxmod.c index a68f19f..8847b73 100644 --- a/libinstaller/syslxmod.c +++ b/libinstaller/syslxmod.c @@ -33,26 +33,29 @@ static void generate_extents(struct syslinux_extent *ex, int nptrs, const sector_t *sectp, int nsect) { - uint32_t addr = 0x7c00 + 2*SECTOR_SIZE; + uint32_t addr = 0x8000; /* ldlinux.sys starts loading here */ uint32_t base; sector_t sect, lba; unsigned int len; - len = lba = base = 0; + base = addr; + len = lba = 0; memset(ex, 0, nptrs * sizeof *ex); while (nsect) { sect = *sectp++; - if (len && sect == lba + len && - ((addr ^ (base + len * SECTOR_SIZE)) & 0xffff0000) == 0) { - /* We can add to the current extent */ - len++; - goto next; - } - if (len) { + uint32_t xbytes = (len + 1) * SECTOR_SIZE; + + if (sect == lba + len && xbytes < 65536 && + ((addr ^ (base + xbytes - 1)) & 0xffff0000) == 0) { + /* We can add to the current extent */ + len++; + goto next; + } + set_64_sl(&ex->lba, lba); set_16_sl(&ex->len, len); ex++; diff --git a/linux/Makefile b/linux/Makefile index ffe2272..82bf111 100644 --- a/linux/Makefile +++ b/linux/Makefile @@ -15,9 +15,10 @@ ## topdir = .. -include $(topdir)/MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/syslinux.mk -OPTFLAGS = -g -O0 -Dalloca=malloc +OPTFLAGS = -g -Os INCLUDES = -I. -I.. -I../libinstaller CFLAGS = $(GCCWARN) -D_FILE_OFFSET_BITS=64 $(OPTFLAGS) $(INCLUDES) LDFLAGS = @@ -56,6 +57,9 @@ syslinux: $(OBJS) syslinux-nomtools: syslinux ln -f $< $@ +strip: + $(STRIP) syslinux syslinux-nomtools + %.o: %.c $(CC) $(UMAKEDEPS) $(CFLAGS) -c -o $@ $< %.i: %.c diff --git a/linux/syslinux b/linux/syslinux index b3be75e003d22781ec027632c1b813131e603fea..1d5016f5a26fd8a212466fc19fe391a7cf7be95c 100755 GIT binary patch delta 27432 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 Y_Pts(ztf&gAwYo69gN$z&xg|g0qaVwTmS$7 literal 83490 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%0AjuG(_5_@HI(Gx8Sm^C72O4 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 I#Lw>k0$3vB8UO$Q diff --git a/linux/syslinux-nomtools b/linux/syslinux-nomtools index b3be75e003d22781ec027632c1b813131e603fea..1d5016f5a26fd8a212466fc19fe391a7cf7be95c 100755 GIT binary patch delta 27432 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 Y_Pts(ztf&gAwYo69gN$z&xg|g0qaVwTmS$7 literal 83490 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%0AjuG(_5_@HI(Gx8Sm^C72O4 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 I#Lw>k0$3vB8UO$Q diff --git a/lzo/Makefile b/lzo/Makefile index d88279d..cf8f985 100644 --- a/lzo/Makefile +++ b/lzo/Makefile @@ -11,7 +11,8 @@ ## ----------------------------------------------------------------------- topdir = .. -include $(topdir)/MCONFIG.build +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/build.mk INCLUDES += -I./include diff --git a/mbr/Makefile b/mbr/Makefile index c3eb97a..993bb10 100644 --- a/mbr/Makefile +++ b/mbr/Makefile @@ -16,7 +16,8 @@ # topdir = .. -include $(topdir)/MCONFIG.embedded +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/embedded.mk all: mbr.bin altmbr.bin gptmbr.bin isohdpfx.bin isohdppx.bin \ mbr_c.bin altmbr_c.bin gptmbr_c.bin isohdpfx_c.bin isohdppx_c.bin \ diff --git a/mbr/isohdpfx.S b/mbr/isohdpfx.S index 2784fb8..17e1efe 100644 --- a/mbr/isohdpfx.S +++ b/mbr/isohdpfx.S @@ -66,6 +66,37 @@ bootsec: .globl _start _start: .byte 0x33, 0xed /* xorw %bp, %bp */ + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + nop + .byte 0x33, 0xed /* xorw %bp, %bp */ cli movw %bp, %ss movw $stack, %sp diff --git a/mbr/isohdpfx.bin b/mbr/isohdpfx.bin index fa46fb4825a0ee3e4a5134440c4ffd897fd593f8..89371734bd83c8ab813358043d6465c2f1d7efa1 100644 GIT binary patch delta 50 dcmdnMyn$K4`0WJzK%LQhqJ{$F$Bmxui~xCZ7ncA4 delta 22 ecmdnMyn%V5f;yx2L=OeViyJfD87C(&DgXday#}lR diff --git a/mbr/isohdpfx_c.bin b/mbr/isohdpfx_c.bin index 128b4850c479e5a632b9014b063441e51463d43b..56f300a25e3dd7ecbfad08fd5bcaf106d1bb2233 100644 GIT binary patch delta 50 dcmdnMyn$K4`0WJzz<@DiqM-uguZ=-=i~xGJ7rOue delta 22 ecmdnMyn%V5f&rt+#6ShcTN{h)7$+AnDgXdc!3N*} diff --git a/mbr/isohdpfx_f.bin b/mbr/isohdpfx_f.bin index b28cbf011bd5613a9838c8b3bd7b0bb67fa0eaea..3c94aca914727056f69d3e491307bf5e60e3bfc5 100644 GIT binary patch delta 50 dcmdnMyn$K4`0WJzK$FpTqLu>V=Z)U3i~xDM7oPwC delta 22 ecmdnMyn%V5f+nNxL@x!#%Nw&@87C(&DgXdbB?hzr diff --git a/mbr/isohdppx.bin b/mbr/isohdppx.bin index 7f3ab128fe520895bc5262936f802cccd37c6742..fd063f6d35ef3ddea42740b6eb92244ca09fa497 100644 GIT binary patch delta 79 zcmdnMyn$K4`0WJzAW*rKje#L(i{tK9p@t_7zWqEaTqM@`J9Jg4K=VV!67IC)Y|`u- HOJo=U0k$Lq delta 51 zcmV-30L=fe1F!>;AWxZ4>IPuAg4VVt))kmo5oa{=KNHhoyfax?ypl0#a<6zRh%I5sxM;Gk zL>{B@he9TQaqh5Djc2X zI9C#p--mvVH5sIYX4y_RaOQDMmdaY}jlw~Ku{$W+44zyH!}rf#vo z(C}^_6`mK@fBpa8e1xaFM1`d{o3SgDq2&^PEA!v~|Bo>+XagMtl#7mwk3AgR_=W-K z>duRuhdLj;IQQrO|IWieMh}Q_qwxqxF8Xk9hzduy%j93`Qj8Ne3u|yNGCrIvqq&&T zcJl$v<06dPHh0)9XG4utYgc`4CRUb-j8c>9QjI1G@N7O3pv49k@!lL7eiE768h01L God*D2QpJY= delta 552 zcmbPphH=gr#tpk!c}x_H3=9o*4NPVO~KNHhoyf;}`ypl0xa<6zRh%I5sxMZ@g zL>{B*UM^S2e}jX8AtLHES4N{PP|uCc>he9TQUaYWDjc2X zIW*-0m(%l?hR4lnEXv$X0wO}J0s)c$ugRY8SOV8 z&^#`}xNmcZ-Eub6D7ALg=VoGInaC(Lxh~acq5#k4BLP}$a1rm#q2VWyxvg<`5!`tI DxO2tb diff --git a/memdump/Makefile b/memdump/Makefile index e56c7bd..6a30431 100644 --- a/memdump/Makefile +++ b/memdump/Makefile @@ -15,7 +15,8 @@ ## topdir = .. -include $(topdir)/MCONFIG.embedded +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/embedded.mk OPTFLAGS = INCLUDES = -include code16.h -I. diff --git a/memdump/memdump.com b/memdump/memdump.com index 636b597d1537cfda4e7a5f8ed755a62b529a5dce..bf9770a138bdb58a4ba888c4bf57b27260cf4837 100755 GIT binary patch delta 1430 zcmYLJZA@EL7`~^yw6~?>wxt$S0vkE?Yo>sb#o#d8sFN&2SQxNuZY*Hl+a(6YwVT2W zm-Jr4rJ1sv{UF&7^^ZUNvk;<#We&Cy(D*gUNVZH9LnOJiGw~y_q;A&toMOB`&N=se zpZ9q`&zX)+N2j8sWu~El)aMmRg1Ij$akX>&Y~2QXT?oAr7tS!9JVU10ENLWPv7gDY z`b`1e=0|O6$q%W&<>aac=@(^a`VyK}!LDV4j%Xwp;^uSz6pLJ`Xkf*t53Jve#pGi! z_pH!<$UbwlcAj%fl29WkZP0cZfA!~{PAD+<62fxhu;)MO0fa)A2E_#Ri8TcAK~B{t z2tr^ND%d{f&YEGtzwSbnwF&keewcgYAzbZmnB|O+7Iw+Gy>djrbfJ~2xpx2Ty7M3* zlr@)~==AeYz>+CgYq)n%8REYSlaGA}J__>$i=@H13se=*v`jIqE=AL?3Q1e?2h6F5 zLt=Cr+bDbfDOeDNeVLakpNG_qMr|St=3??*PSKW$1bcHHgc}Gy;-c;V@*ScIGhOv# zUI*4sn~2eJ$lv6<53WeUFJ}k44~q@G5MK}>o-fA`=gUg^Lo|qi#Ha%H8IC#(N5H(R znnOj1-xBZv0q6O^mF-w40hhsU=kWLjV!U9#z(M0n)vVE7=e{TG0<72F(|_s#N0o~L zU%~`o-sDWyA7Y>`3hi1cETR414+1d7ZePg<*uz{uzI1_`ABE%451FYcrYNy6trE3< zh1Ni~=teczzj)YyLOo5W!p!Zf?0u!xvuo?`G+R?Xb(gAfi=Fojxl5_`GncpC%~Jw< z*KC8g#!=bIx&MmMvwIR=4OU{*KQMdT*Wzf#F~h-?am6lx^(|PL>}lujNW!H}IJ1im zXyWsYg~gtAkrIr3UC}9HrQcZ8zk9gw%I_l<}?}R6{k2HhF-6 zdhI%->_$j!dd^gcaX|vg#?|l`CvXV@>jvak;d-GCcHBf^2YQ_h=!Mr3m3kqbK(iH@ z7V*;y9mxPv;=Qy&6!zlAvBIY|8Pp3ys&SHxJ*gK46P;to5K)aJ(F=!FGflE*@${-{ zjN*1uHAkW(JB-Ius_~x0v9GH}H~zn&nkPs$FX@G(YP^Gjw^Xx}WJg(-f1~?Pd>bAV zlU_`fz~}g!@Eg#}tBB$BK^OGEJU$?N$imqfv4M3*gPnNA5V@Zty`4TWgNLTp$*y*j19;EyBm0TELkqRaOPY@gVb&s7lLF+1NCwk z@+%H>obZCWu$n_Z>F`!S{N<}H;22vOeAuw>>1K+PDOxKUJSiEAsyTWeBjWEQMvH^N zp<8o$3^E!pEf^$^vyot=mfSCqSwDgOeV(6h<6!d(iw2q5Yr%aoTMR!zE;CY9^)Hg^ B5Q_i+ delta 1500 zcmYjRZ%kWN6o0pU^tH8e%jjT>WNhShiJ9p@8)J}}0i7YF3X?y>Ayc#Myt)vkt`$v; zJknRgqhfFum-)ec*ayG5g{Uo=4%QB`#OQ)C!7Pi$X?(RYSuk1Y7^~;rvbgu*zI)I4 z-ShAM&N&-68<-A|&Wn5Zk_N>kNszi-jjOfp#MN8@Yn5+OZix#Qm`S3oG4P%uytf)2-QYjR!^S>A7BoPSr2G#*AKlDT7FOlaLk6_H{in6{} zt-&z(n^?y=Y5)#H;s#BOlpu0Xz()m~CkS&Ln6!X9!Frm*BafoQ4OR~ajc4oF4y9i4 ziPG$5A*FBV^$m`CN=UMpAEXo9lDR46CFe*iO+ zo3gj~qYiDtp1Wm(CeC-nB>s6%fx=CQ|Hx%% zkF`=?omZReBtXAgfVkBN@io_Ir63O)Xkl;BnlTP`2m|I7C@jOm-Fnz{y=*}^l(k8> zUL1~A>%~YEFE7bz2|v9Uj@6>!YY6fn{gPqibt@jiJX$=VXO~_ap@vSz9@mRUqg`WF zdeKjfkBD9zpo#M&$B5osJVuSvD0zb>J|VdY+?}Gv#}db$q{az6zey9LBv+91VvHIy zD0r79faFfIp!d%c_i=7)lwxj7o4~g?YItw-W7l9sWjF-g&B9+Vx zjvH+HWK@-Nb4a9LG}wa;iI<~H#cTUn4?S5#_eaeQbc3`z8y~Z-W;zSRD zc*d3oXon62;~V7}lFA0|i5=8|C%6({naD#HG7*X*kCY~r@pyd&u>f(KY zM^(Iwa(Hlvf?91+Y)h-PRIPn6TF)wYkpIT^`~CL!`3Lf5XLn}a?(EL&?2(EuS?lq? z7W^)7q00;s$lrQ2x90$O|Z%E!l1mSYqmqN~*qf7JdJvs2z_*?Odde?27ceuU+ zZYAL8dKdC2i!gVt@8PZ|97b3IpuHs0`d@D+c|c>XRL%$U0~t@W+ALU_evsrbt{;s? zeHp-HPXxL9OgX1XiGCXk0A1yhJ4Pc-zMvCdkl}Ih$^_;TG721F9CEbS2Y*2q zEcST+hN+dzqjyGQ<(ZOaCP9Ma+$T7*a#soFPGEEcSca2~kz$fhg@VIqy``&%=V6j( zobcSA&0~JTMX3fmWpeIvoSDE(`iI59GpQs6{bo4=>d>I&ai`~4oAW_#JEocslynF4 zt;nQa2VAoQ=!#Ixsrec=*bDt7{2Kb8O(H+&jc$n&VIXp|YJ<}dV^u!l24)t1F@XR; z*cfi^4{$>5QMn!r8ja`d>(F{@TkDS|lF(i~G!ZqdwKz8hHCTT&Hmr{1IVL^Su6YQA zWiudFP}tpbb8x14Sg){TD$bz$x5cLzH4lxNJ|+sOZQS89w9Cd3PDPD2<6r`MY%|XJ zA!eA*%S}H*@=_S**Z+2ldQH6i4$hu~rr7#Vw8Vv)@k(uH{J)gR%!OC~Qa0hC0&wjN zHs>~CQ3k=eb0)w(=ZcQo+LP%zi#~M4)(JMDKWts_&@s1*fR|8$-6YN;ELC5C*4sH0 zo_5fKSbhrH5;s*d2jcRAzni?zsbF1hG9xbG^NNtxHy{6{V z+YQ#buwGsCUCc;_ou{Ll=!|Zu z(OBB1%cxNcbx9_E6&)hv(KhrnQkQgEr#Y$1IE0XWvdtE(9;WxX(TI)6)LQ1rOZ35h z3cP}RhD>m}RPaid@lY3biB1r;_Ynq`_KLA`&g&VOSs5KjH^jN{4QBs$Ja@eK)K>-{ zY-nU4o0qFSYU-%Cf3dw7`PJdmuxt(v zHC4(It`4KAcb=?==w?@^QOOrKXPx ze}(_S=V5#Z#!Um$^vS_r>OZ&|{VPr~@v|KO`Iz6kq?|KU%-xX*vemjX}-KKqZr zNK6p+AA)?0$NmRjhVhjD;JFx|^&fuhIzjq>%40D;_dmF)BA@?&6c0Nyi3VPaX29Np2pvgH4uth=TQIA`yc_;=)fd5{Jb&gOSa;!(fACd`N-fBwAN=F>_ew~ zzJzk*>-!r#f*dC=fX`9sWH%^4$0kpKw~!vEuOX``V__%?ni31!(S|9b;AwPW%4}>a zl;0>knMM1}fJf0`KQ|l$-1J+HeMgkP8{CgR_n%_dixp?;d(#I`&VYy8(uvyrZD3pd z5B@@8W1u@BI9NY2@F8Jc#8?7Vae!0Nc$IRAMy>BBkT~SW!U_fI;G$08^PM z{Xd^V(BSoWLJ{tw7Er{LLHyKNnisU|3DsHRV|2UfmUPW-D_XDKd>?~_%|;=PR7t0GZ65tcRJqqU zI2$>rSvN2Zhm$_jXkv#3 zgEru9JkUH$p$Cffpq*(It8^2+8&p#!`uHsy7pH0^Z(?_y8&2TL6%FzDJ}p^00Mvq% zxE5S7*RRvEG-fBoOqQ4)WHyL14PDGyu_52JlukClA{mZ2OMhZe8}JZU%DUxZJ@dD-HsF_d+#g$B z=w}bMkXLbwn*s4kb-*BCzI84(f_8PcS6dxsZuN^wR^{@zxT;^-XCCzvFMls?Q?rly zA+gf7@P8VW_5ZXf#opulWXy}HmvN4(`!fwc7x@ECeXn|BHO&c_U6uQt8LneJdZu(NJl(wPC!OW(cm1+aC?(e;^IqE?$ zzZ@C6VaACijf`5T8O1mbOP#_gX;eQ|87;T^sJR&I^wIp5#$0!7;XP=z0_{4>Tk%+c zYA}siDP$VZ);K>R?=<=`PGvR6Hj`;LV}2Ituf1W6x-qfKnmC0A9O7a z7=%f6!qT4xlXX}*EzId=bMR`vsR?%-T|2{!V&)o8H*v2IbHfpJ6{o=5%pn#OuEei7lYN6>P<*7<{%bhYpZ{E{=KwDoH#}EZTs)lg1F6PNUgL z;jkaoC524?r2G>iRhHT%xn=EX#tXFgO=Cua7Wy za#xhgug;Lask&FysSIi*vUD6xo6IA5^)IE%BS}g$%TQU~W?Q6bJe{W}<`f z0dvrXnFCDE7eo3x%EN6L{lD-YufKzt3LN`8s={4$%WPeb`pML6=G!5Lzxz9i0xq0E zKc|c@yl@6+Y?${vahrx$=6e3jAm_rFvT&!48l1GeaK`ZJ{Rbw__Iv!y8S?%65gcKS z@Q^C|L&c4%U#l+De=s3d+J2XOLf(ep9pje#Gy2ZKfsU?lCl}Ba?!YFy!foZCB1Tk^ zDeDR+57&2vgQJbOMwv3*G7%FwWX%7h@yKUx+T@O{(0@Ca`$4C_Jjg7xHdP%HlB(QN zbKL&Ns43Oi@tVa_LjH!vxpa&}$EVUy{qhZZp6Y3v*g%Kd)+XbpLv3mUudm#7dIK7l zrn1&!X}WM*z1F@W2G>Q@dIr^{IThYyYOI|{RApifk)O=wTD|A31075WUz!-o!(k$+33r!s8xrP2Qr5v)8BPjK1itE?lJT7cL*VH?mO| z7afsUGqjo3IWST){_C~~@+rQ)$E_mi4Lyz^+ybhq5= zC;PD`9X7!Z1`VooYk|ttSS(R*v`AJdnbp8#Eq$LX0vq;^@j)IhUgenVu@$s2Usy3c z?^Ue;FDF!~netob4sB&_Sg2Y)WngcGJ$*Bd5&^RZ31$o%bGJct&J^b8H-8#mJ8WA% zoMATE>IJVjpKQ`(@r*V2WZrftaRxL;2+;8ES>dQ|HTVaR3N`~ z!-jEw#~iR$&D6VaTJAJ5udIs#zFp&>He*~!#@+IUqhXMtEN?g%2LJ7`y?phE1l|pW-^M{mJ8m6d89_R5CgQ$!1aLT-$trZFbp2;6i;hON7JCJ|26Lr?iFhV!6T+vB_ zmI_5{RrJ5Jniq#z_d(stj76)mUCa|3s5|Q6%5vAV22_{r>x=PQYDulP-@7TCaekU1 z+KcQbhoD**Y#Q%R#C<+}!cA?1SKj0B=sokf`Dv>g_L@-Lh{OiuG}Dp5CNXKI4?&nC z^~`c2v0>w^Vf@5~Cv~2mtVK2}oT%A_@@6^UBJ{tFRW59Am2lkz^oa_ z=P@}0Ow|B(L3fJ&6t?|ImIX|2DEqDWf%$WKL}~+Ck>hNg+@RDNS<5*$|I}RoBpraY zcsM7xFty>YM@5f{4)Ji<7yGd&pr`?;tvWdvm_nt__of)B?R`fVC$RwlT-#ER^>1AZ zu?yG%IyrvR0FKd`3AViL)e-FWO^6Yg!WmZG{r*l46Aw*}>3@|F0ZkE!DX8g=r&&0% zK?~Bv$tn;D({8F_|i`kiG z?x)Fq8dJjgG}+VrV|YFL$ew1v^JvEvs#D>2W3QqM@bOb&xu#IE2x7Ng3Gmd8M@dV1 z19OVsQOGO>%;C4{y!-(_srn^$MRfu(4)1%J7jN=Ya9hkxczXxitHbbw$$N_fVrJD_ zwST?~ll8Vm+|=v^@WRNqL+z?McK`2|;sz#z-vUHT3ZIGK8}_ywZeSFjGQ#=HM82W= zn9< z6iV72+Z_{wCI?Vua$DV1eN_xDuE9Hsm_RmYB8b_CWOF5x!SwGF3zKdFZVS;+0GkwyOmK5DqK@8L!PAsc+O zF%B;P?14sfe<00s&@xb=+1pWa(!S2W%FwT|+R6gF z8#&FutEwGO74*+|?TL+?+sT>O2;Xob8$aN&+JjRVRY!6zV7ki}04T>yUUy98C~IB@ zUY=i=CnfMic7I+b-oX!=9}W+rviT7vA9-`WTll2LCPH*W)QRaKj%pN&BBBp6qXs)U zo$)~4)-i&k%C5L#nigszO|#;NL!_G5M8uwBfg7SG)5FAy0u~I#66>cgFo%<{{rl4 zP}Smwn{x^p)i$OUqohTnltqmYX3oD`1@ob4uRxVuZjXg_FLEO=7+4f<0?~_QJ{?E!m{|gjAHhyh zRg1BGOF)OG%7_;_p2eJsM&^m9N^4)%IPtM*Uxj)1T(#5l)6hJ;xWe)O38Sm-S3Pd2 zYGlfd%xV;~#ATx3=Ja>i23kSEKda2Do998nV^9FV4F~(VRIsOaEb1FBZ>Qyjbli z7DuVXD;I0TbLXhVYRqV1hFq3=Dolm*7R?cG557A>YEGXT2P_YS z)NqNvzrGjmRHJON>2}2V*H7o-0cqINJMnK0#IX957v?kUvH1c57KU@ahk(RzC+}bk zyAUTTPW3r(FpM9^;czjG*wl%4bq#y2lP~bDu(DP?+5XR7{DQPLyxj`6)+!F=_5qMp z^HJXGa0%yM9rxh&m3Vf|;qJI+*D-9)d~h3pFZR%vbMcPmrahuxBklVzoh2Vw{DR@5 ziIa!l#qc$K`Ikavqf^bn44WH|aK;M(0Dk^KwJ%LDAgK1034Rt-``QEpgKGaa!Jwep zHzpVyRQuKhLxO7iO)xa5cEAL~f@(#(A@Bi(Y!?uKJD>laxn^Vo z)wvBw|K=zfzBba~$bJBh=ptUb{A4Kxbi`}yz|U>nuit{!tWApVEVEYF;+5YO)0}yL zZrA?KdbMA5u4BL6c;vZ}etyW(Y(_?A)~*gbEdj7kp#*hs6gv+Bj<%n*Yv)E$i07&ry(eq;z*G2m1CewQh~j zUX+E!*Dc`Rqn|HJ$GyiPf2<5jWX!@*mDV1rVP0N2dCge*R9KR;gl;ZNf`l3WwIFJhjpY&JO}+&$DfX#myHN?ay6IwL2#;|K z1#9M!EH`1v%T(g?MYfB!kCtW6B8q&*YOIr^e*O5{SGrWER8CqlnF@pk7*Rf?=-pU# zKiyw)OT*RATeInz1zAR3W}BDXs$2}!{_Ghn&67^fIQp5u8gM-|N##md^v+WgR++gxa^UF8*L)gQ+;!WHO5sePd{CyvuKQ_!6X z4@!9SyI`LA;&JG>%o1onUNWWi-?!%0x_z&$M-{ zPO!U*SsTik9ch-`(0xpta+puv^Ch!2bf^0q>+B|{Z`yg(5hBGb-xZ=KQM_Q&v^to}Zx zYqm`v^E`c6^iw}dPTlIBPj*jTa7$2pv5d#c=V{jpcp*ExnXo*&*r!&yWzcRsXN4}F z!%iSAM@-|nopy4|b5;)NEEB-bEvBEc&~CI?$q5+(4W8rhl?A&&-BgP)QDzR)&}Uy- zO=S(!AALvK&9xNh`;;3`t|mpgT&Hs7@W{DbzD_BoZDl&8!QjX;=DgMK_9Bu#7X;@^01s@1ET{Nm?f)rt6sLWa!1x0xvbFwG8 z`K8ThZqr3=M^wp5C}vS($80lXlS6W|G^|=RTS=Ic1`ETWb_EIW5@GUa1rn8cx}96q z)#AY=GYyAg9lF>Bk-Jv!>SC{Oa{+4nU4p-PNq{Kfpqw)4IE_02LqRZP9w;F0Mz)P& zu0?yF*_doE7SQ%R*Ips_mmsv z$QJBIwzQ99crqPHx<*Y2mhr|Y5?MSgBhm*4#s@D(bLdggW)XkTk%B<8smXLOW$mT^ zJGEMw$4gF--=XidKVlbm=JR#osl3EQE=yyk^s9GT#dQ7=zY4HUG#pe#;QCC#1^xP-a(R= z_eA344T!MV%H^;;!&vlQy!;2>cJ-L@IAit`KyWM5jK00<5tV6!zP%drqLqW5n($|y zYEIx|PXV-q%gLy4!}pcp(7^75ASiO`4{uYe?Gh8scq|(me3K!NoT1<9;p(^AlZU68 z^+c*@8lA3KU+@jzTiXxSdD?zLSh7xG7vER9JI5gCxoLnsx@ZA?ujenhQ97MXzoh;| z!8)0f@;D%!9OzybqY!{M_$Gu}LHD*Zq#?|lLF;s$l<#B*iENbQidRUeE>=bwpzkVH#w?jg`AcQgXOha)L8?DUaBE7Y z!%}m)mmcWpV}(75Bwf@K(kt1WbWdeGY&OfXWsZ1KgnNP|f3}&lWjwQE7j&{@**9mj zg3KK>+Ef_{L(siSN73xCWRj9pinFHr)B0qm9}%}oX20H_Pd}&c(FXb>-KGB{g;UNc zp(;^OmB0O-G0EG9_(WI>OAA)=5{2eI$rhB)G*n$RnxJCP#VQYcCi|pHPRfF%UnA

=YDaW*WcJH+1Qw{aH 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 E2ODkg82|tP delta 15093 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 diff --git a/packaging/0001-btrfs-Correctly-determine-the-installation-subvolume.patch b/packaging/0001-btrfs-Correctly-determine-the-installation-subvolume.patch deleted file mode 100644 index c5c941f..0000000 --- a/packaging/0001-btrfs-Correctly-determine-the-installation-subvolume.patch +++ /dev/null @@ -1,493 +0,0 @@ -From c46d7f1567870b9a2bb0a946af741a585e96fe67 Mon Sep 17 00:00:00 2001 -From: Yi Yang -Date: Tue, 12 Jul 2011 14:53:50 +0800 -Subject: [PATCH] btrfs: Correctly determine the installation subvolume - -There are multiple ways to set up subvolumes in btrfs. Use a general -determination method which works for all schemes. - -Signed-off-by: H. Peter Anvin ---- - extlinux/btrfs.h | 105 +++++++++++++++++++ - extlinux/main.c | 303 ++++++++++++++++++++++++++++++++++++++++++++++++------ - 2 files changed, 376 insertions(+), 32 deletions(-) - -diff --git a/extlinux/btrfs.h b/extlinux/btrfs.h -index 39a861a..be0c24e 100644 ---- a/extlinux/btrfs.h -+++ b/extlinux/btrfs.h -@@ -1,6 +1,9 @@ - #ifndef _BTRFS_H_ - #define _BTRFS_H_ - -+#include -+#include -+ - #define BTRFS_SUPER_MAGIC 0x9123683E - #define BTRFS_SUPER_INFO_OFFSET (64 * 1024) - #define BTRFS_SUPER_INFO_SIZE 4096 -@@ -8,6 +11,40 @@ - #define BTRFS_CSUM_SIZE 32 - #define BTRFS_FSID_SIZE 16 - -+typedef __u64 u64; -+typedef __u32 u32; -+typedef __u16 u16; -+typedef __u8 u8; -+typedef u64 __le64; -+typedef u16 __le16; -+ -+#define BTRFS_ROOT_BACKREF_KEY 144 -+#define BTRFS_ROOT_TREE_DIR_OBJECTID 6ULL -+#define BTRFS_DIR_ITEM_KEY 84 -+ -+/* -+ * * this is used for both forward and backward root refs -+ * */ -+struct btrfs_root_ref { -+ __le64 dirid; -+ __le64 sequence; -+ __le16 name_len; -+} __attribute__ ((__packed__)); -+ -+struct btrfs_disk_key { -+ __le64 objectid; -+ u8 type; -+ __le64 offset; -+} __attribute__ ((__packed__)); -+ -+struct btrfs_dir_item { -+ struct btrfs_disk_key location; -+ __le64 transid; -+ __le16 data_len; -+ __le16 name_len; -+ u8 type; -+} __attribute__ ((__packed__)); -+ - struct btrfs_super_block { - unsigned char csum[BTRFS_CSUM_SIZE]; - /* the first 3 fields must match struct btrfs_header */ -@@ -19,4 +56,72 @@ struct btrfs_super_block { - u64 magic; - } __attribute__ ((__packed__)); - -+ -+#define BTRFS_IOCTL_MAGIC 0x94 -+#define BTRFS_VOL_NAME_MAX 255 -+#define BTRFS_PATH_NAME_MAX 4087 -+ -+struct btrfs_ioctl_vol_args { -+ __s64 fd; -+ char name[BTRFS_PATH_NAME_MAX + 1]; -+}; -+ -+struct btrfs_ioctl_search_key { -+ /* which root are we searching. 0 is the tree of tree roots */ -+ __u64 tree_id; -+ -+ /* keys returned will be >= min and <= max */ -+ __u64 min_objectid; -+ __u64 max_objectid; -+ -+ /* keys returned will be >= min and <= max */ -+ __u64 min_offset; -+ __u64 max_offset; -+ -+ /* max and min transids to search for */ -+ __u64 min_transid; -+ __u64 max_transid; -+ -+ /* keys returned will be >= min and <= max */ -+ __u32 min_type; -+ __u32 max_type; -+ -+ /* -+ * how many items did userland ask for, and how many are we -+ * returning -+ */ -+ __u32 nr_items; -+ -+ /* align to 64 bits */ -+ __u32 unused; -+ -+ /* some extra for later */ -+ __u64 unused1; -+ __u64 unused2; -+ __u64 unused3; -+ __u64 unused4; -+}; -+ -+struct btrfs_ioctl_search_header { -+ __u64 transid; -+ __u64 objectid; -+ __u64 offset; -+ __u32 type; -+ __u32 len; -+} __attribute__((may_alias)); -+ -+#define BTRFS_SEARCH_ARGS_BUFSIZE (4096 - sizeof(struct btrfs_ioctl_search_key)) -+/* -+ * the buf is an array of search headers where -+ * each header is followed by the actual item -+ * the type field is expanded to 32 bits for alignment -+ */ -+struct btrfs_ioctl_search_args { -+ struct btrfs_ioctl_search_key key; -+ char buf[BTRFS_SEARCH_ARGS_BUFSIZE]; -+}; -+ -+#define BTRFS_IOC_TREE_SEARCH _IOWR(BTRFS_IOCTL_MAGIC, 17, \ -+ struct btrfs_ioctl_search_args) -+ - #endif -diff --git a/extlinux/main.c b/extlinux/main.c -index e5212a9..201fb02 100755 ---- a/extlinux/main.c -+++ b/extlinux/main.c -@@ -20,12 +20,12 @@ - #define _GNU_SOURCE /* Enable everything */ - #include - /* This is needed to deal with the kernel headers imported into glibc 3.3.3. */ --typedef uint64_t u64; - #include - #include - #include - #include - #include -+#include - #ifndef __KLIBC__ - #include - #endif -@@ -65,7 +65,6 @@ typedef uint64_t u64; - boot image, the boot sector is from 0~512, the boot image starts after */ - #define BTRFS_BOOTSECT_AREA 65536 - #define BTRFS_EXTLINUX_OFFSET SECTOR_SIZE --#define BTRFS_SUBVOL_OPT "subvol=" - #define BTRFS_SUBVOL_MAX 256 /* By btrfs specification */ - static char subvol[BTRFS_SUBVOL_MAX]; - -@@ -494,6 +493,270 @@ int btrfs_install_file(const char *path, int devfd, struct stat *rst) - return 0; - } - -+/* -+ * * test if path is a subvolume: -+ * * this function return -+ * * 0-> path exists but it is not a subvolume -+ * * 1-> path exists and it is a subvolume -+ * * -1 -> path is unaccessible -+ * */ -+static int test_issubvolume(char *path) -+{ -+ -+ struct stat st; -+ int res; -+ -+ res = stat(path, &st); -+ if(res < 0 ) -+ return -1; -+ -+ return (st.st_ino == 256) && S_ISDIR(st.st_mode); -+ -+} -+ -+/* -+ * Get file handle for a file or dir -+ */ -+static int open_file_or_dir(const char *fname) -+{ -+ int ret; -+ struct stat st; -+ DIR *dirstream; -+ int fd; -+ -+ ret = stat(fname, &st); -+ if (ret < 0) { -+ return -1; -+ } -+ if (S_ISDIR(st.st_mode)) { -+ dirstream = opendir(fname); -+ if (!dirstream) { -+ return -2; -+ } -+ fd = dirfd(dirstream); -+ } else { -+ fd = open(fname, O_RDWR); -+ } -+ if (fd < 0) { -+ return -3; -+ } -+ return fd; -+} -+ -+/* -+ * Get the default subvolume of a btrfs filesystem -+ * rootdir: btrfs root dir -+ * subvol: this function will save the default subvolume name here -+ */ -+static char * get_default_subvol(char * rootdir, char * subvol) -+{ -+ struct btrfs_ioctl_search_args args; -+ struct btrfs_ioctl_search_key *sk = &args.key; -+ struct btrfs_ioctl_search_header *sh; -+ int ret, i; -+ int fd; -+ struct btrfs_root_ref *ref; -+ struct btrfs_dir_item *dir_item; -+ unsigned long off = 0; -+ int name_len; -+ char *name; -+ u64 dir_id; -+ char dirname[4096]; -+ u64 defaultsubvolid = 0; -+ -+ ret = test_issubvolume(rootdir); -+ if (ret == 1) { -+ fd = open_file_or_dir(rootdir); -+ if (fd < 0) { -+ fprintf(stderr, "ERROR: failed to open %s\n", rootdir); -+ } -+ ret = fd; -+ } -+ if (ret <= 0) { -+ subvol[0] = '\0'; -+ return NULL; -+ } -+ -+ memset(&args, 0, sizeof(args)); -+ -+ /* search in the tree of tree roots */ -+ sk->tree_id = 1; -+ -+ /* -+ * set the min and max to backref keys. The search will -+ * only send back this type of key now. -+ */ -+ sk->max_type = BTRFS_DIR_ITEM_KEY; -+ sk->min_type = BTRFS_DIR_ITEM_KEY; -+ -+ /* -+ * set all the other params to the max, we'll take any objectid -+ * and any trans -+ */ -+ sk->min_objectid = BTRFS_ROOT_TREE_DIR_OBJECTID; -+ sk->max_objectid = BTRFS_ROOT_TREE_DIR_OBJECTID; -+ -+ sk->max_offset = (u64)-1; -+ sk->min_offset = 0; -+ sk->max_transid = (u64)-1; -+ -+ /* just a big number, doesn't matter much */ -+ sk->nr_items = 4096; -+ -+ while(1) { -+ ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &args); -+ if (ret < 0) { -+ fprintf(stderr, "ERROR: can't perform the search\n"); -+ subvol[0] = '\0'; -+ return NULL; -+ } -+ /* the ioctl returns the number of item it found in nr_items */ -+ if (sk->nr_items == 0) { -+ break; -+ } -+ -+ off = 0; -+ -+ /* -+ * for each item, pull the key out of the header and then -+ * read the root_ref item it contains -+ */ -+ for (i = 0; i < sk->nr_items; i++) { -+ sh = (struct btrfs_ioctl_search_header *)(args.buf + off); -+ off += sizeof(*sh); -+ if (sh->type == BTRFS_DIR_ITEM_KEY) { -+ dir_item = (struct btrfs_dir_item *)(args.buf + off); -+ name_len = dir_item->name_len; -+ name = (char *)(dir_item + 1); -+ -+ -+ /*add_root(&root_lookup, sh->objectid, sh->offset, -+ dir_id, name, name_len);*/ -+ strncpy(dirname, name, name_len); -+ dirname[name_len] = '\0'; -+ if (strcmp(dirname, "default") == 0) { -+ defaultsubvolid = dir_item->location.objectid; -+ break; -+ } -+ } -+ off += sh->len; -+ -+ /* -+ * record the mins in sk so we can make sure the -+ * next search doesn't repeat this root -+ */ -+ sk->min_objectid = sh->objectid; -+ sk->min_type = sh->type; -+ sk->max_type = sh->type; -+ sk->min_offset = sh->offset; -+ } -+ if (defaultsubvolid != 0) -+ break; -+ sk->nr_items = 4096; -+ /* this iteration is done, step forward one root for the next -+ * ioctl -+ */ -+ if (sk->min_objectid < (u64)-1) { -+ sk->min_objectid = BTRFS_ROOT_TREE_DIR_OBJECTID; -+ sk->max_objectid = BTRFS_ROOT_TREE_DIR_OBJECTID; -+ sk->max_type = BTRFS_ROOT_BACKREF_KEY; -+ sk->min_type = BTRFS_ROOT_BACKREF_KEY; -+ sk->min_offset = 0; -+ } else -+ break; -+ } -+ -+ if (defaultsubvolid == 0) { -+ subvol[0] = '\0'; -+ return NULL; -+ } -+ -+ memset(&args, 0, sizeof(args)); -+ -+ /* search in the tree of tree roots */ -+ sk->tree_id = 1; -+ -+ /* -+ * set the min and max to backref keys. The search will -+ * only send back this type of key now. -+ */ -+ sk->max_type = BTRFS_ROOT_BACKREF_KEY; -+ sk->min_type = BTRFS_ROOT_BACKREF_KEY; -+ -+ /* -+ * set all the other params to the max, we'll take any objectid -+ * and any trans -+ */ -+ sk->max_objectid = (u64)-1; -+ sk->max_offset = (u64)-1; -+ sk->max_transid = (u64)-1; -+ -+ /* just a big number, doesn't matter much */ -+ sk->nr_items = 4096; -+ -+ while(1) { -+ ret = ioctl(fd, BTRFS_IOC_TREE_SEARCH, &args); -+ if (ret < 0) { -+ fprintf(stderr, "ERROR: can't perform the search\n"); -+ subvol[0] = '\0'; -+ return NULL; -+ } -+ /* the ioctl returns the number of item it found in nr_items */ -+ if (sk->nr_items == 0) -+ break; -+ -+ off = 0; -+ -+ /* -+ * for each item, pull the key out of the header and then -+ * read the root_ref item it contains -+ */ -+ for (i = 0; i < sk->nr_items; i++) { -+ sh = (struct btrfs_ioctl_search_header *)(args.buf + off); -+ off += sizeof(*sh); -+ if (sh->type == BTRFS_ROOT_BACKREF_KEY) { -+ ref = (struct btrfs_root_ref *)(args.buf + off); -+ name_len = ref->name_len; -+ name = (char *)(ref + 1); -+ dir_id = ref->dirid; -+ -+ /*add_root(&root_lookup, sh->objectid, sh->offset, -+ dir_id, name, name_len);*/ -+ if (sh->objectid == defaultsubvolid) { -+ strncpy(subvol, name, name_len); -+ subvol[name_len] = '\0'; -+ dprintf("The default subvolume: %s, ID: %llu\n", subvol, sh->objectid); -+ break; -+ } -+ -+ } -+ -+ off += sh->len; -+ -+ /* -+ * record the mins in sk so we can make sure the -+ * next search doesn't repeat this root -+ */ -+ sk->min_objectid = sh->objectid; -+ sk->min_type = sh->type; -+ sk->min_offset = sh->offset; -+ } -+ if (subvol[0] != '\0') -+ break; -+ sk->nr_items = 4096; -+ /* this iteration is done, step forward one root for the next -+ * ioctl -+ */ -+ if (sk->min_objectid < (u64)-1) { -+ sk->min_objectid++; -+ sk->min_type = BTRFS_ROOT_BACKREF_KEY; -+ sk->min_offset = 0; -+ } else -+ break; -+ } -+ return subvol; -+} -+ - int install_file(const char *path, int devfd, struct stat *rst) - { - if (fs_type == EXT2 || fs_type == VFAT) -@@ -548,19 +811,9 @@ static const char *find_device(const char *mtab_file, dev_t dev) - if (!strcmp(mnt->mnt_type, "btrfs") && - !stat(mnt->mnt_dir, &dst) && - dst.st_dev == dev) { -- char *opt = strstr(mnt->mnt_opts, BTRFS_SUBVOL_OPT); -- -- if (opt) { -- if (!subvol[0]) { -- char *tmp; -- -- strcpy(subvol, opt + sizeof(BTRFS_SUBVOL_OPT) - 1); -- tmp = strchr(subvol, 32); -- if (tmp) -- *tmp = '\0'; -- } -- break; /* should break and let upper layer try again */ -- } else -+ if (!subvol[0]) { -+ get_default_subvol(mnt->mnt_dir, subvol); -+ } - done = true; - } - break; -@@ -625,24 +878,10 @@ static const char *get_devname(const char *path) - - #else - -- /* check /etc/mtab first, since btrfs subvol info is only in here */ -- devname = find_device("/etc/mtab", st.st_dev); -- if (subvol[0] && !devname) { /* we just find it is a btrfs subvol */ -- char parent[256]; -- char *tmp; -- -- strcpy(parent, path); -- tmp = strrchr(parent, '/'); -- if (tmp) { -- *tmp = '\0'; -- fprintf(stderr, "%s is subvol, try its parent dir %s\n", path, parent); -- devname = get_devname(parent); -- } else -- devname = NULL; -- } -+ devname = find_device("/proc/mounts", st.st_dev); - if (!devname) { -- /* Didn't find it in /etc/mtab, try /proc/mounts */ -- devname = find_device("/proc/mounts", st.st_dev); -+ /* Didn't find it in /proc/mounts, try /etc/mtab */ -+ devname = find_device("/etc/mtab", st.st_dev); - } - if (!devname) { - fprintf(stderr, "%s: cannot find device for path %s\n", program, path); --- -1.7.2.5 - diff --git a/packaging/correct-uuid-link-lib.patch b/packaging/correct-uuid-link-lib.patch new file mode 100644 index 0000000..9360773 --- /dev/null +++ b/packaging/correct-uuid-link-lib.patch @@ -0,0 +1,13 @@ +diff --git a/utils/Makefile b/utils/Makefile +index 44cb54f..be73993 100644 +--- a/utils/Makefile ++++ b/utils/Makefile +@@ -51,7 +51,7 @@ isohdpfx.c: $(ISOHDPFX) isohdpfxarray.pl + $(PERL) isohdpfxarray.pl $(ISOHDPFX) > $@ + + isohybrid: isohybrid.o isohdpfx.o +- $(CC) $(LDFLAGS) -luuid -o $@ $^ ++ $(CC) $(LDFLAGS) -o $@ $^ -luuid + + gethostip: gethostip.o + $(CC) $(LDFLAGS) -o $@ $^ diff --git a/packaging/syslinux.manifest b/packaging/syslinux.manifest deleted file mode 100644 index 017d22d..0000000 --- a/packaging/syslinux.manifest +++ /dev/null @@ -1,5 +0,0 @@ - - - - - diff --git a/packaging/syslinux.spec b/packaging/syslinux.spec index 3c46974..9ee43d0 100644 --- a/packaging/syslinux.spec +++ b/packaging/syslinux.spec @@ -1,24 +1,29 @@ # -*- rpm -*- Summary: Kernel loader which uses a FAT, ext2/3 or iso9660 filesystem or a PXE network Name: syslinux -Version: 4.04 -Release: 1 +Version: 4.05 +Release: 1.2 +%if 0%{?suse_version} +Vendor: openSUSE +%endif License: GPLv2 Url: http://syslinux.zytor.com/ Group: System/Boot -Source0: ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{version}.tar.gz +#Source0: ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{version}.tar.gz +Source0: %{name}-%{version}.tar.gz +Patch0: correct-uuid-link-lib.patch ExclusiveArch: %{ix86} x86_64 Buildroot: %{_tmppath}/%{name}-%{version}-root -BuildRequires: nasm >= 0.98.39, perl +BuildRequires: nasm >= 0.98.39, perl, libuuid-devel +%if 0%{?suse_version} +BuildRequires: libuuid1 +%else +BuildRequires: libuuid +%endif Source101: syslinux-rpmlintrc -Source1001: packaging/syslinux.manifest -# >> gbp-patch-tags # auto-added by gbp -Patch0: 0001-btrfs-Correctly-determine-the-installation-subvolume.patch -# << gbp-patch-tags # auto-added by gbp - Autoreq: 0 %ifarch x86_64 -Requires: mtools +Requires: mtools, libc.so.6()(64bit) %define my_cc gcc %else Requires: mtools, libc.so.6 @@ -29,17 +34,17 @@ Requires: mtools, libc.so.6 # a system bootloader, and may be necessary for system recovery. %define _sbindir /sbin +%package devel +Summary: Development environment for SYSLINUX add-on modules +Group: Development/Libraries +Requires: syslinux + %description SYSLINUX is a suite of bootloaders, currently supporting DOS FAT filesystems, Linux ext2/ext3 filesystems (EXTLINUX), PXE network boots (PXELINUX), or ISO 9660 CD-ROMs (ISOLINUX). It also includes a tool, MEMDISK, which loads legacy operating systems from these media. -%package devel -Summary: Development environment for SYSLINUX add-on modules -Group: Development/Libraries -Requires: syslinux - %description devel The SYSLINUX boot loader contains an API, called COM32, for writing sophisticated add-on modules. This package contains the libraries @@ -65,13 +70,9 @@ booting in the /var/lib/tftpboot directory. %prep %setup -q -n syslinux-%{version} - -# >> gbp-apply-patches # auto-added by gbp %patch0 -p1 -# << gbp-apply-patches # auto-added by gbp %build -cp %{SOURCE1001} . make CC='%{my_cc}' clean make CC='%{my_cc}' installer make CC='%{my_cc}' -C sample tidy @@ -89,9 +90,11 @@ make CC='%{my_cc}' -C sample tidy rm -rf %{buildroot} %files -%manifest syslinux.manifest %defattr(-,root,root) -%{_bindir} +%doc COPYING NEWS doc/* +%doc sample +%doc %{_mandir}/man*/* +%{_bindir}/* %dir %{_datadir}/syslinux %{_datadir}/syslinux/*.com %{_datadir}/syslinux/*.exe @@ -99,28 +102,27 @@ rm -rf %{buildroot} %{_datadir}/syslinux/*.bin %{_datadir}/syslinux/*.0 %{_datadir}/syslinux/memdisk -%{_datadir}/syslinux/dosutil +%dir %{_datadir}/syslinux/dosutil +%{_datadir}/syslinux/dosutil/* +%dir %{_datadir}/syslinux/diag +%{_datadir}/syslinux/diag/* +%{_sbindir}/extlinux +/boot/extlinux %files devel -%manifest syslinux.manifest %defattr(-,root,root) -%doc COPYING NEWS README doc/* -%doc sample -%doc %{_mandir}/man*/* %{_datadir}/syslinux/com32 -%{_datadir}/syslinux/diag %files extlinux -%manifest syslinux.manifest %defattr(-,root,root) %{_sbindir}/extlinux /boot/extlinux %files tftpboot -%manifest syslinux.manifest %defattr(-,root,root) /var/lib/tftpboot + %post extlinux # If we have a /boot/extlinux.conf file, assume extlinux is our bootloader # and update it. diff --git a/sample/Makefile b/sample/Makefile index d7f439c..9e504d9 100644 --- a/sample/Makefile +++ b/sample/Makefile @@ -15,7 +15,8 @@ ## topdir = .. -include $(topdir)/MCONFIG.embedded +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/embedded.mk PPMTOLSS16 = $(topdir)/utils/ppmtolss16 diff --git a/syslinux.spec b/syslinux.spec index 169640d..2fea49c 100644 --- a/syslinux.spec +++ b/syslinux.spec @@ -1,17 +1,26 @@ # -*- rpm -*- -%define RPMVERSION 4.04 -%define VERSION 4.04 Summary: Kernel loader which uses a FAT, ext2/3 or iso9660 filesystem or a PXE network Name: syslinux -Version: %{RPMVERSION} -Release: 1 -License: GPL +Version: 4.05 +Release: 1.2 +%if 0%{?suse_version} +Vendor: openSUSE +%endif +License: GPLv2 +Url: http://syslinux.zytor.com/ Group: System/Boot -Source0: ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{VERSION}.tar.gz -ExclusiveArch: i386 i486 i586 i686 athlon pentium4 x86_64 -Packager: H. Peter Anvin -Buildroot: %{_tmppath}/%{name}-%{VERSION}-root -BuildRequires: nasm >= 2.03, perl +#Source0: ftp://ftp.kernel.org/pub/linux/utils/boot/syslinux/%{name}-%{version}.tar.gz +Source0: %{name}-%{version}.tar.gz +Patch0: correct-uuid-link-lib.patch +ExclusiveArch: %{ix86} x86_64 +Buildroot: %{_tmppath}/%{name}-%{version}-root +BuildRequires: nasm >= 0.98.39, perl, libuuid-devel +%if 0%{?suse_version} +BuildRequires: libuuid1 +%else +BuildRequires: libuuid +%endif +Source101: syslinux-rpmlintrc Autoreq: 0 %ifarch x86_64 Requires: mtools, libc.so.6()(64bit) @@ -41,26 +50,29 @@ The SYSLINUX boot loader contains an API, called COM32, for writing sophisticated add-on modules. This package contains the libraries necessary to compile such modules. +%if "0%{?meego_version}" != "0" || 0%{?moblin_version} || 0%{?fedora_version} > 13 %package extlinux -Summary: The EXTLINUX bootloader, for booting the local system. +Summary: The EXTLINUX bootloader, for booting the local system Group: System/Boot Requires: syslinux %description extlinux The EXTLINUX bootloader, for booting the local system, as well as all the SYSLINUX/PXELINUX modules in /boot. +%endif %package tftpboot -Summary: SYSLINUX modules in /tftpboot, available for network booting +Summary: SYSLINUX modules in /var/lib/tftpboot, available for network booting Group: Applications/Internet Requires: syslinux %description tftpboot All the SYSLINUX/PXELINUX modules directly available for network -booting in the /tftpboot directory. +booting in the /var/lib/tftpboot directory. %prep -%setup -q -n syslinux-%{VERSION} +%setup -q -n syslinux-%{version} +%patch0 -p1 %build make CC='%{my_cc}' clean @@ -73,10 +85,8 @@ make CC='%{my_cc}' install-all \ INSTALLROOT=%{buildroot} BINDIR=%{_bindir} SBINDIR=%{_sbindir} \ LIBDIR=%{_libdir} DATADIR=%{_datadir} \ MANDIR=%{_mandir} INCDIR=%{_includedir} \ - TFTPBOOT=/tftpboot EXTLINUXDIR=/boot/extlinux + TFTPBOOT=/var/lib/tftpboot EXTLINUXDIR=/boot/extlinux make CC='%{my_cc}' -C sample tidy -mkdir -p %{buildroot}/etc -( cd %{buildroot}/etc && ln -s ../boot/extlinux/extlinux.conf . ) %clean rm -rf %{buildroot} @@ -85,186 +95,49 @@ rm -rf %{buildroot} %defattr(-,root,root) %doc COPYING NEWS doc/* %doc sample -%{_mandir}/man*/* +%doc %{_mandir}/man*/* %{_bindir}/* +%dir %{_datadir}/syslinux %{_datadir}/syslinux/*.com %{_datadir}/syslinux/*.exe %{_datadir}/syslinux/*.c32 %{_datadir}/syslinux/*.bin %{_datadir}/syslinux/*.0 %{_datadir}/syslinux/memdisk +%dir %{_datadir}/syslinux/dosutil %{_datadir}/syslinux/dosutil/* +%dir %{_datadir}/syslinux/diag %{_datadir}/syslinux/diag/* +%if 0%{?fedora_version} || 0%{?suse_version} +%{_sbindir}/extlinux/* +/boot/extlinux +%endif %files devel +%defattr(-,root,root) %{_datadir}/syslinux/com32 +%if "0%{?meego_version}" != "0" || 0%{?moblin_version} || 0%{?fedora_version} > 13 %files extlinux -%{_sbindir}/extlinux +%defattr(-,root,root) +%{_sbindir}/extlinux/* /boot/extlinux -%config /etc/extlinux.conf +%endif %files tftpboot -/tftpboot +%defattr(-,root,root) +/var/lib/tftpboot +%if "0%{?meego_version}" != "0" || 0%{?moblin_version} || 0%{?fedora_version} > 13 %post extlinux # If we have a /boot/extlinux.conf file, assume extlinux is our bootloader # and update it. if [ -f /boot/extlinux/extlinux.conf ]; then \ + ln -sf /boot/extlinux/extlinux.conf /etc/extlinux.conf; \ extlinux --update /boot/extlinux ; \ elif [ -f /boot/extlinux.conf ]; then \ mkdir -p /boot/extlinux && \ mv /boot/extlinux.conf /boot/extlinux/extlinux.conf && \ extlinux --update /boot/extlinux ; \ fi - -%postun - -%changelog -* Fri Dec 18 2009 H. Peter Anvin -- Require NASM 2.03 -- Package dosutil - -* Thu May 29 2008 H. Peter Anvin -- Use install targets; clean up various paths. - -* Thu Jan 10 2008 H. Peter Anvin -- Add man pages. - -* Mon Nov 19 2007 Bernard Li -- Added netpbm-progs (provides pngtopnm) to BuildPrereq (this should be - changed to BuildRequires since it is deprecated...) - -* Thu Mar 15 2007 H. Peter Anvin -- Move extlinux /boot stuff into /boot/extlinux. - -* Thu Jan 25 2007 H. Peter Anvin -- Hacks to make the 32-bit version build correctly on 64-bit machines. - -* Mon Sep 19 2006 H. Peter Anvin -- Add a syslinux-tftpboot module. -- Factor extlinux into its own package. -- Move to %{_datadir} (/usr/share). - -* Wed Sep 21 2005 H. Peter Anvin -- If /boot/extlinux.conf exist, run extlinux --update. - -* Fri Sep 9 2005 H. Peter Anvin -- Copy, don't link, *.c32 into /boot; rpm doesn't like breaking links. - -* Tue Aug 23 2005 H. Peter Anvin -- Put *.c32 into /boot. - -* Thu Dec 30 2004 H. Peter Anvin -- libsyslinux dropped in syslinux 3.00. -- Additional documentation. -- Add extlinux. - -* Tue Dec 14 2004 H. Peter Anvin -- Add a devel package for the com32 library added in 2.12. - -* Wed Apr 16 2003 H. Peter Anvin 2.04-1 -- 2.04 release -- Add support for libsyslinux.so* -- Templatize for inclusion in CVS tree - -* Thu Apr 10 2003 H. Peter Anvin -- 2.03 release -- Add support for libsyslinux.a -- Add keytab-lilo.pl to the /usr/lib/syslinux directory -- Modernize syntax -- Support building on x86-64 - -* Thu Feb 13 2003 H. Peter Anvin -- 2.02 release; no longer setuid - -* Thu Jan 30 2003 H. Peter Anvin -- Prepare for 2.01 release; make /usr/bin/syslinux setuid root - -* Fri Oct 25 2002 H. Peter Anvin -- Upgrade to 2.00. - -* Tue Aug 27 2002 H. Peter Anvin -- Upgrade to 1.76. - -* Fri Jun 14 2002 H. Peter Anvin -- Upgrade to 1.75. - -* Sat Jun 1 2002 H. Peter Anvin -- Upgrade to 1.74. - -* Sun May 26 2002 H. Peter Anvin -- Upgrade to 1.73. - -* Tue Apr 23 2002 H. Peter Anvin -- Upgrade to 1.72. - -* Wed Apr 17 2002 H. Peter Anvin -- Upgrade to 1.71. -- Update the title. - -* Wed Apr 17 2002 H. Peter Anvin -- Upgrade to 1.70. - -* Sat Feb 3 2002 H. Peter Anvin -- Upgrade to 1.67. - -* Tue Jan 1 2002 H. Peter Anvin -- Upgrade to 1.66. - -* Sat Dec 15 2001 H. Peter Anvin -- Upgrade to 1.65; make appropriate changes. - -* Sat Aug 24 2001 H. Peter Anvin -- Upgrade to 1.64. - -* Mon Aug 6 2001 H. Peter Anvin -- Upgrade to 1.63. -- Use make install since the stock SYSLINUX distribution now supports - INSTALLROOT. - -* Sat Apr 24 2001 H. Peter Anvin -- Upgrade to 1.62. - -* Sat Apr 14 2001 H. Peter Anvin -- Fix missing %files; correct modes. - -* Fri Apr 13 2001 H. Peter Anvin -- Upgrade to 1.61 -- Install auxilliary programs in /usr/lib/syslinux - -* Sat Feb 10 2001 Matt Wilson -- 1.52 - -* Wed Jan 24 2001 Matt Wilson -- 1.51pre7 - -* Mon Jan 22 2001 Matt Wilson -- 1.51pre5 - -* Fri Jan 19 2001 Matt Wilson -- 1.51pre3, with e820 detection - -* Tue Dec 12 2000 Than Ngo -- rebuilt with fixed fileutils - -* Thu Nov 9 2000 Than Ngo -- update to 1.49 -- update ftp site -- clean up specfile -- add some useful documents - -* Tue Jul 18 2000 Nalin Dahyabhai -- add %%defattr (release 4) - -* Wed Jul 12 2000 Prospector -- automatic rebuild - -* Thu Jul 06 2000 Trond Eivind Glomsrød -- use %%{_tmppath} -- change application group (Applications/Internet doesn't seem - right to me) -- added BuildRequires - -* Tue Apr 04 2000 Erik Troan -- initial packaging +%endif diff --git a/utils/Makefile b/utils/Makefile index 455eb82..44cb54f 100644 --- a/utils/Makefile +++ b/utils/Makefile @@ -15,15 +15,19 @@ # topdir = .. -include $(topdir)/MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/syslinux.mk CFLAGS = $(GCCWARN) -Os -fomit-frame-pointer -D_FILE_OFFSET_BITS=64 -LDFLAGS = -O2 -s +LDFLAGS = -O2 -TARGETS = mkdiskimage isohybrid gethostip memdiskfind -TARGETS += isohybrid.pl # about to be obsoleted -ASIS = keytab-lilo lss16toppm md5pass ppmtolss16 sha1pass syslinux2ansi \ - pxelinux-options +C_TARGETS = isohybrid gethostip memdiskfind +SCRIPT_TARGETS = mkdiskimage +SCRIPT_TARGETS += isohybrid.pl # about to be obsoleted +ASIS = keytab-lilo lss16toppm md5pass ppmtolss16 sha1pass \ + syslinux2ansi pxelinux-options + +TARGETS = $(C_TARGETS) $(SCRIPT_TARGETS) ISOHDPFX = ../mbr/isohdpfx.bin ../mbr/isohdpfx_f.bin ../mbr/isohdpfx_c.bin \ ../mbr/isohdppx.bin ../mbr/isohdppx_f.bin ../mbr/isohdppx_c.bin @@ -47,7 +51,7 @@ isohdpfx.c: $(ISOHDPFX) isohdpfxarray.pl $(PERL) isohdpfxarray.pl $(ISOHDPFX) > $@ isohybrid: isohybrid.o isohdpfx.o - $(CC) $(LDFLAGS) -o $@ $^ + $(CC) $(LDFLAGS) -luuid -o $@ $^ gethostip: gethostip.o $(CC) $(LDFLAGS) -o $@ $^ @@ -69,4 +73,7 @@ install: installer mkdir -m 755 -p $(INSTALLROOT)$(BINDIR) install -m 755 $(TARGETS) $(ASIS) $(INSTALLROOT)$(BINDIR) +strip: + $(STRIP) $(C_TARGETS) + -include .*.d diff --git a/utils/gethostip b/utils/gethostip index bb35c23b606fb967834b3878aa4467777f6a51e1..81f29efc65339255e4306206405825726c564104 100755 GIT binary patch delta 1132 zcmZ8hT}TvB7`>A->x?e$+HP%u(Wtw$lG<)=r563*Mg~h*tuc{>fyF#TWf=KjxUyD? z78@TuR1ocB1Z4{SD28DvWsucFKNM6?EBY8z^fR4rB(g5tIo~c> z+0Y}5^Mt5m%o1W9BZl3`2)|KAhY+=l*)Yba3Q@-hqdSu`Y6i23JsqP*d_wdje^{1v zYNSQU6hftmEKhq7wN{`MPcF0qJh#c=)CbgB0rp^WZferz?8U@3iK!8rvnO*A^FEui zH&bVR)#mKc3^GsIoV}VM<_YHW18mx?WZ|e?P)A4PfMn7Ixj}!2Z5)sK)m^~uHox5M z^=CY&N`AGD_x7wZC|~io8aVkj`AO=I`y+$(RH5w8*~c1QOgGRKC7{;xII_QsCX{OF zEIAzOrOUM0(d2E!4u{+^9iw4~&&Pu0Jr#pwC#zl`%Zw?FH0>y;h(p9C z&c6%O0)d91S+gb|kEW6{1!)s6!?qmx>!Lb4EDh12?AGe!jGT_58f$3r3~_WYm7JEX z$(}4;*5~9ydC%U_RBG&6MXi8hV zpbvR`u6E;3q!0ZHRpqRaoYah`pRVP!O9qwXZr!vxRG|lV9B9&O_qXVg^3~;`vT&$G zY^kZK)`MHN)tA^}SYH_mheK7N%72T)WmN(N6oJABvQWUA*WPqM6wZu%G-h;r1J;BuAtG delta 1109 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 bb25?d##EgJX-1YlPSFzJ<6VuB$iwtsiwh^` diff --git a/utils/isohybrid.c b/utils/isohybrid.c index 7ee9a7f..1dcbaa1 100644 --- a/utils/isohybrid.c +++ b/utils/isohybrid.c @@ -36,14 +36,19 @@ #include #include #include +#include #include "isohybrid.h" char *prog = NULL; extern int opterr, optind; +struct stat isostat; +unsigned int padding = 0; + +uuid_t disk_uuid, part_uuid, iso_uuid; uint8_t mode = 0; -enum { VERBOSE = 1 }; +enum { VERBOSE = 1 , EFI = 2 , MAC = 4}; /* user options */ uint16_t head = 64; /* 1 <= head <= 256 */ @@ -61,10 +66,150 @@ uint16_t ve[16]; uint32_t catoffset = 0; uint32_t c = 0, cc = 0, cs = 0; +uint32_t psize = 0, isosize = 0; + /* boot catalogue parameters */ uint32_t de_lba = 0; uint16_t de_seg = 0, de_count = 0, de_mbz2 = 0; uint8_t de_boot = 0, de_media = 0, de_sys = 0, de_mbz1 = 0; +uint32_t efi_lba = 0, mac_lba = 0; +uint16_t efi_count = 0, mac_count = 0; +uint8_t efi_boot = 0, efi_media = 0, efi_sys = 0; + +int apm_parts = 3; + +uint8_t afp_header[] = { 0x45, 0x52, 0x08, 0x00, 0x00, 0x00, 0x90, 0x90, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 }; + +uuid_t efi_system_partition = {0xC1, 0x2A, 0x73, 0x28, 0xF8, 0x1F, 0x11, 0xD2, 0xBA, 0x4B, 0x00, 0xA0, 0xC9, 0x3E, 0xC9, 0x3B}; +uuid_t basic_partition = {0xEB,0xD0,0xA0,0xA2,0xB9,0xE5,0x44,0x33,0x87,0xC0,0x68,0xB6,0xB7,0x26,0x99,0xC7}; +uuid_t hfs_partition = {0x48, 0x46, 0x53, 0x00, 0x00, 0x00, 0x11, 0xAA, 0xAA, 0x11, 0x00, 0x30, 0x65, 0x43, 0xEC, 0xAC}; + +uint32_t crc_tab[256] = +{ + 0, 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 +}; + +struct iso_primary_descriptor { + uint8_t ignore [80]; + uint32_t size; + uint8_t ignore2 [44]; + uint16_t block_size; +}; + +struct gpt_header { + uint64_t signature; + uint32_t revision; + uint32_t headerSize; + uint32_t headerCRC; + uint32_t reserved; + uint64_t currentLBA; + uint64_t backupLBA; + uint64_t firstUsableLBA; + uint64_t lastUsableLBA; + uuid_t diskGUID; + uint64_t partitionEntriesLBA; + uint32_t numParts; + uint32_t sizeOfPartitionEntries; + uint32_t partitionEntriesCRC; + uint8_t reserved2[420]; +}; + +struct gpt_part_header { + uuid_t partTypeGUID; + uuid_t partGUID; + uint64_t firstLBA; + uint64_t lastLBA; + uint64_t attributes; + uint16_t name[36]; +}; + +#define APM_OFFSET 2048 + +struct apple_part_header { + uint16_t signature; /* expected to be MAC_PARTITION_MAGIC */ + uint16_t res1; + uint32_t map_count; /* # blocks in partition map */ + uint32_t start_block; /* absolute starting block # of partition */ + uint32_t block_count; /* number of blocks in partition */ + char name[32]; /* partition name */ + char type[32]; /* string type description */ + uint32_t data_start; /* rel block # of first data block */ + uint32_t data_count; /* number of data blocks */ + uint32_t status; /* partition status bits */ + uint32_t boot_start; + uint32_t boot_count; + uint32_t boot_load; + uint32_t boot_load2; + uint32_t boot_entry; + uint32_t boot_entry2; + uint32_t boot_cksum; + char processor[16]; /* Contains 680x0, x=0,2,3,4; or empty */ + uint32_t driver_sig; + char _padding[372]; +}; void @@ -89,6 +234,8 @@ printh(void) printf(FMT, " -o --offset", "Specify partition offset (default 0)"); printf(FMT, " -t --type", "Specify partition type (default 0x17)"); printf(FMT, " -i --id", "Specify MBR ID (default random)"); + printf(FMT, " -u --uefi", "Build EFI bootable image"); + printf(FMT, " -m --mac", "Add AFP table support"); printf("\n"); printf(FMT, " --forcehd0", "Assume we are loaded as disk ID 0"); @@ -108,6 +255,7 @@ printh(void) int check_option(int argc, char *argv[]) { + char *err = NULL; int n = 0, ind = 0; const char optstr[] = ":h:s:e:o:t:i:fcp?vV"; @@ -121,6 +269,8 @@ check_option(int argc, char *argv[]) { "forcehd0", no_argument, NULL, 'f' }, { "ctrlhd0", no_argument, NULL, 'c' }, { "partok", no_argument, NULL, 'p'}, + { "uefi", no_argument, NULL, 'u'}, + { "mac", no_argument, NULL, 'm'}, { "help", no_argument, NULL, '?' }, { "verbose", no_argument, NULL, 'v' }, @@ -135,32 +285,38 @@ check_option(int argc, char *argv[]) switch (n) { case 'h': - if (!sscanf(optarg, "%hu", &head) || head < 1 || head > 256) + head = strtoul(optarg, &err, 0); + if (head < 1 || head > 256) errx(1, "invalid head: `%s', 1 <= head <= 256", optarg); break; case 's': - if (!sscanf(optarg, "%hhu", §or) || sector < 1 || sector > 63) + sector = strtoul(optarg, &err, 0); + if (sector < 1 || sector > 63) errx(1, "invalid sector: `%s', 1 <= sector <= 63", optarg); break; case 'e': - if (!sscanf(optarg, "%hhu", &entry) || entry < 1 || entry > 4) + entry = strtoul(optarg, &err, 0); + if (entry < 1 || entry > 4) errx(1, "invalid entry: `%s', 1 <= entry <= 4", optarg); break; case 'o': - if (!sscanf(optarg, "%hhu", &offset) || offset > 64) + offset = strtoul(optarg, &err, 0); + if (*err || offset > 64) errx(1, "invalid offset: `%s', 0 <= offset <= 64", optarg); break; case 't': - if (!sscanf(optarg, "%hu", &type) || type > 255) + type = strtoul(optarg, &err, 0); + if (*err || type > 255) errx(1, "invalid type: `%s', 0 <= type <= 255", optarg); break; case 'i': - if (!sscanf(optarg, "%u", &id)) + id = strtoul(optarg, &err, 0); + if (*err) errx(1, "invalid id: `%s'", optarg); break; @@ -176,6 +332,14 @@ check_option(int argc, char *argv[]) partok = 1; break; + case 'u': + mode |= EFI; + break; + + case 'm': + mode |= MAC; + break; + case 'v': mode |= VERBOSE; break; @@ -200,6 +364,33 @@ check_option(int argc, char *argv[]) return optind; } +uint16_t +bendian_short(const uint16_t s) +{ + uint16_t r = 1; + + if (!*(uint8_t *)&r) + return s; + + r = (s & 0x00FF) << 8 | (s & 0xFF00) >> 8; + + return r; +} + + +uint32_t +bendian_int(const uint32_t s) +{ + uint32_t r = 1; + + if (!*(uint8_t *)&r) + return s; + + r = (s & 0x000000FF) << 24 | (s & 0xFF000000) >> 24 + | (s & 0x0000FF00) << 8 | (s & 0x00FF0000) >> 8; + + return r; +} uint16_t lendian_short(const uint16_t s) @@ -229,6 +420,22 @@ lendian_int(const uint32_t s) return r; } +uint64_t +lendian_64(const uint64_t s) +{ + uint64_t r = 1; + + if (*(uint8_t *)&r) + return s; + + r = (s & 0x00000000000000FF) << 56 | (s & 0xFF00000000000000) >> 56 + | (s & 0x000000000000FF00) << 40 | (s & 0x00FF000000000000) >> 40 + | (s & 0x0000000000FF0000) << 24 | (s & 0x0000FF0000000000) >> 24 + | (s & 0x00000000FF000000) << 8 | (s & 0x000000FF00000000) >> 8; + + return r; +} + int check_banner(const uint8_t *buf) @@ -307,6 +514,43 @@ read_catalogue(const uint8_t *buf) } +int +read_efi_section(const uint8_t *buf) +{ + unsigned char header_indicator; + unsigned char platform_id; + short count; + + memcpy(&header_indicator, buf++, 1); + memcpy(&platform_id, buf++, 1); + + memcpy(&count, buf, 2); + count = lendian_short(count); + buf += 2; + + if (platform_id == 0xef) + return 0; + + return 1; +} + +int +read_efi_catalogue(const uint8_t *buf, uint16_t *count, uint32_t *lba) +{ + buf += 6; + + memcpy(count, buf, 2); + *count = lendian_short(*count); + buf += 2; + + memcpy(lba, buf, 4); + *lba = lendian_int(*lba); + buf += 6; + + return 0; +} + + void display_catalogue(void) { @@ -320,12 +564,11 @@ display_catalogue(void) printf("de_mbz2: %hu\n", de_mbz2); } - int initialise_mbr(uint8_t *mbr) { int i = 0; - uint32_t psize = 0, tmp = 0; + uint32_t tmp = 0; uint8_t ptype = 0, *rbm = mbr; uint8_t bhead = 0, bsect = 0, bcyle = 0; uint8_t ehead = 0, esect = 0, ecyle = 0; @@ -333,6 +576,11 @@ initialise_mbr(uint8_t *mbr) extern unsigned char isohdpfx[][MBRSIZE]; memcpy(mbr, &isohdpfx[hd0 + 3 * partok], MBRSIZE); + + if (mode & MAC) { + memcpy(mbr, afp_header, sizeof(afp_header)); + } + mbr += MBRSIZE; /* offset 432 */ tmp = lendian_int(de_lba * 4); @@ -394,7 +642,6 @@ initialise_mbr(uint8_t *mbr) return mbr - rbm; } - void display_mbr(const uint8_t *mbr, size_t len) { @@ -424,14 +671,179 @@ display_mbr(const uint8_t *mbr, size_t len) } +uint32_t chksum_crc32 (unsigned char *block, unsigned int length) +{ + register unsigned long crc; + unsigned long i; + + crc = 0xFFFFFFFF; + for (i = 0; i < length; i++) + { + crc = ((crc >> 8) & 0x00FFFFFF) ^ crc_tab[(crc ^ *block++) & 0xFF]; + } + return (crc ^ 0xFFFFFFFF); +} + +void +reverse_uuid(uuid_t uuid) +{ + uint8_t t, *p = (uint8_t *)uuid; + + t = p[0]; p[0] = p[3]; p[3] = t; + t = p[1]; p[1] = p[2]; p[2] = t; + t = p[4]; p[4] = p[5]; p[5] = t; + t = p[6]; p[6] = p[7]; p[7] = t; +} + +void +initialise_gpt(uint8_t *gpt, uint32_t current, uint32_t alternate, int primary) +{ + struct gpt_header *header = (struct gpt_header *)gpt; + struct gpt_part_header *part; + int hole = 0; + int gptsize = 128 / 4 + 2; + + if (mac_lba) { + /* 2048 bytes per partition, plus round to 2048 boundary */ + hole = (apm_parts * 4) + 2; + } + + if (primary) { + uuid_generate(disk_uuid); + reverse_uuid(disk_uuid); + } + + header->signature = lendian_64(0x5452415020494645); + header->revision = lendian_int(0x010000); + header->headerSize = lendian_int(0x5c); + header->currentLBA = lendian_64(current); + header->backupLBA = lendian_64(alternate); + header->firstUsableLBA = lendian_64(gptsize + hole); + header->lastUsableLBA = lendian_64((isostat.st_size + padding)/512 - + gptsize); + if (primary) + header->partitionEntriesLBA = lendian_64(0x02 + hole); + else + header->partitionEntriesLBA = lendian_64(current - (128 / 4)); + header->numParts = lendian_int(0x80); + header->sizeOfPartitionEntries = lendian_int(0x80); + memcpy(header->diskGUID, disk_uuid, sizeof(uuid_t)); + + if (primary) + gpt += sizeof(struct gpt_header) + hole * 512; + else + gpt -= header->sizeOfPartitionEntries * header->numParts; + + part = (struct gpt_part_header *)gpt; + if (primary) { + uuid_generate(part_uuid); + uuid_generate(iso_uuid); + reverse_uuid(part_uuid); + reverse_uuid(iso_uuid); + } + + memcpy(part->partGUID, iso_uuid, sizeof(uuid_t)); + memcpy(part->partTypeGUID, basic_partition, sizeof(uuid_t)); + part->firstLBA = lendian_64(0); + part->lastLBA = lendian_64(psize); + memcpy(part->name, "ISOHybrid ISO", 28); + + gpt += sizeof(struct gpt_part_header); + part++; + + memcpy(part->partGUID, part_uuid, sizeof(uuid_t)); + memcpy(part->partTypeGUID, basic_partition, sizeof(uuid_t)); + part->firstLBA = lendian_64(efi_lba * 4); + part->lastLBA = lendian_64(part->firstLBA + efi_count - 1); + memcpy(part->name, "ISOHybrid", 20); + + gpt += sizeof(struct gpt_part_header); + + if (mac_lba) { + gpt += sizeof(struct gpt_part_header); + + part++; + + memcpy(part->partGUID, part_uuid, sizeof(uuid_t)); + memcpy(part->partTypeGUID, hfs_partition, sizeof(uuid_t)); + part->firstLBA = lendian_64(mac_lba * 4); + part->lastLBA = lendian_64(part->firstLBA + mac_count - 1); + memcpy(part->name, "ISOHybrid", 20); + + part--; + } + + part--; + + header->partitionEntriesCRC = lendian_int (chksum_crc32((uint8_t *)part, + header->numParts * header->sizeOfPartitionEntries)); + + header->headerCRC = lendian_int(chksum_crc32((uint8_t *)header, + header->headerSize)); +} + +void +initialise_apm(uint8_t *gpt, uint32_t start) +{ + struct apple_part_header *part = (struct apple_part_header *)gpt; + + part->signature = bendian_short(0x504d); + part->map_count = bendian_int(apm_parts); + part->start_block = bendian_int(1); + part->block_count = bendian_int(0x10); + strcpy(part->name, "Apple"); + strcpy(part->type, "Apple_partition_map"); + part->data_start = bendian_int(0); + part->data_count = bendian_int(10); + part->status = bendian_int(0x03); + + part = (struct apple_part_header *)(gpt + 2048); + + part->signature = bendian_short(0x504d); + part->map_count = bendian_int(3); + part->start_block = bendian_int(efi_lba); + part->block_count = bendian_int(efi_count); + strcpy(part->name, "EFI"); + strcpy(part->type, "Apple_HFS"); + part->data_start = bendian_int(0); + part->data_count = bendian_int(efi_count); + part->status = bendian_int(0x33); + + part = (struct apple_part_header *)(gpt + 4096); + + if (mac_lba) + { + part->signature = bendian_short(0x504d); + part->map_count = bendian_int(3); + part->start_block = bendian_int(mac_lba); + part->block_count = bendian_int(mac_count); + strcpy(part->name, "EFI"); + strcpy(part->type, "Apple_HFS"); + part->data_start = bendian_int(0); + part->data_count = bendian_int(mac_count); + part->status = bendian_int(0x33); + } else { + part->signature = bendian_short(0x504d); + part->map_count = bendian_int(3); + part->start_block = bendian_int((start/2048) + 10); + part->block_count = bendian_int(efi_lba - start/2048 - 10); + strcpy(part->name, "ISO"); + strcpy(part->type, "Apple_Free"); + part->data_start = bendian_int(0); + part->data_count = bendian_int(efi_lba - start/2048 - 10); + part->status = bendian_int(0x01); + } +} + int main(int argc, char *argv[]) { int i = 0; FILE *fp = NULL; - struct stat isostat; uint8_t *buf = NULL, *bufz = NULL; - int cylsize = 0, frac = 0, padding = 0; + int cylsize = 0, frac = 0; + size_t orig_gpt_size, free_space, gpt_size; + struct iso_primary_descriptor descriptor; prog = strcpy(alloca(strlen(argv[0]) + 1), argv[0]); i = check_option(argc, argv); @@ -443,10 +855,21 @@ main(int argc, char *argv[]) usage(); return 1; } + + if ((mode & EFI) && offset) + errx(1, "%s: --offset is invalid with UEFI images\n", argv[0]); + srand(time(NULL) << (getppid() << getpid())); if (!(fp = fopen(argv[0], "r+"))) err(1, "could not open file `%s'", argv[0]); + + if (fseek(fp, (16 << 11), SEEK_SET)) + err(1, "%s: seek error - 0", argv[0]); + + if (fread(&descriptor, sizeof(char), sizeof(descriptor), fp) != sizeof(descriptor)) + err(1, "%s: read error - 0", argv[0]); + if (fseek(fp, 17 * 2048, SEEK_SET)) err(1, "%s: seek error - 1", argv[0]); @@ -478,6 +901,40 @@ main(int argc, char *argv[]) if (mode & VERBOSE) display_catalogue(); + buf += 32; + + if (mode & EFI) + { + if (!read_efi_section(buf)) { + buf += 32; + if (!read_efi_catalogue(buf, &efi_count, &efi_lba) && efi_lba) { + offset = 1; + type = 0xee; + } else { + errx(1, "%s: invalid efi catalogue", argv[0]); + } + } else { + errx(1, "%s: unable to find efi image", argv[0]); + } + } + + buf += 32; + + if (mode & MAC) + { + if (!read_efi_section(buf)) { + buf += 32; + if (!read_efi_catalogue(buf, &mac_count, &mac_lba) && mac_lba) { + offset = 1; + type = 0xee; + } else { + errx(1, "%s: invalid efi catalogue", argv[0]); + } + } else { + errx(1, "%s: unable to find mac efi image", argv[0]); + } + } + if (fseek(fp, (de_lba * 2048 + 0x40), SEEK_SET)) err(1, "%s: seek error - 3", argv[0]); @@ -494,6 +951,9 @@ main(int argc, char *argv[]) if (stat(argv[0], &isostat)) err(1, "%s", argv[0]); + isosize = lendian_int(descriptor.size) * lendian_short(descriptor.block_size); + free_space = isostat.st_size - isosize; + cylsize = head * sector * 512; frac = isostat.st_size % cylsize; padding = (frac > 0) ? cylsize - frac : 0; @@ -501,7 +961,7 @@ main(int argc, char *argv[]) if (mode & VERBOSE) printf("imgsize: %zu, padding: %d\n", (size_t)isostat.st_size, padding); - cc = c = (isostat.st_size + padding) / cylsize; + cc = c = ( isostat.st_size + padding) / cylsize; if (c > 1024) { warnx("Warning: more than 1024 cylinders: %d", c); @@ -541,6 +1001,62 @@ main(int argc, char *argv[]) if (fwrite(buf, sizeof(char), i, fp) != (size_t)i) err(1, "%s: write error - 1", argv[0]); + if (efi_lba) { + reverse_uuid(basic_partition); + reverse_uuid(hfs_partition); + + /* 512 byte header, 128 entries of 128 bytes */ + orig_gpt_size = gpt_size = 512 + (128 * 128); + + /* Leave space for the APM if necessary */ + if (mac_lba) + gpt_size += (4 * 2048); + + buf = calloc(gpt_size, sizeof(char)); + memset(buf, 0, gpt_size); + + /* + * We need to ensure that we have enough space for the secondary GPT. + * Unlike the primary, this doesn't need a hole for the APM. We still + * want to be 1MB aligned so just bump the padding by a megabyte. + */ + if (free_space < orig_gpt_size && padding < orig_gpt_size) { + padding += 1024 * 1024; + } + + /* + * Determine the size of the ISO filesystem. This will define the size + * of the partition that covers it. + */ + psize = isosize / 512; + + /* + * Primary GPT starts at sector 1, secondary GPT starts at 1 sector + * before the end of the image + */ + initialise_gpt(buf, 1, (isostat.st_size + padding - 1024) / 512, 1); + + if (fseek(fp, 512, SEEK_SET)) + err(1, "%s: seek error - 6", argv[0]); + + if (fwrite(buf, sizeof(char), gpt_size, fp) != (size_t)gpt_size) + err(1, "%s: write error - 2", argv[0]); + } + + if (mac_lba) + { + /* Apple partition entries filling 2048 bytes each */ + int apm_size = apm_parts * 2048; + + buf = realloc(buf, apm_size); + memset(buf, 0, apm_size); + + initialise_apm(buf, APM_OFFSET); + + fseek(fp, APM_OFFSET, SEEK_SET); + fwrite(buf, sizeof(char), apm_size, fp); + } + if (padding) { if (fsync(fileno(fp))) @@ -550,6 +1066,30 @@ main(int argc, char *argv[]) err(1, "%s: could not add padding bytes", argv[0]); } + if (efi_lba) { + buf = realloc(buf, orig_gpt_size); + memset(buf, 0, orig_gpt_size); + + buf += orig_gpt_size - sizeof(struct gpt_header); + + initialise_gpt(buf, (isostat.st_size + padding - 1024) / 512, 1, 0); + + /* Shift back far enough to write the 128 GPT entries */ + buf -= 128 * sizeof(struct gpt_part_header); + + /* + * Seek far enough back that the gpt header is 512 bytes before the + * end of the image + */ + + if (fseek(fp, (isostat.st_size + padding) - orig_gpt_size - 512, + SEEK_SET)) + err(1, "%s: seek error - 8", argv[0]); + + if (fwrite(buf, sizeof(char), orig_gpt_size, fp) != orig_gpt_size) + err(1, "%s: write error - 4", argv[0]); + } + free(buf); fclose(fp); diff --git a/utils/isohybrid.h b/utils/isohybrid.h index 826e90c..eecf1ca 100644 --- a/utils/isohybrid.h +++ b/utils/isohybrid.h @@ -20,7 +20,7 @@ * */ -#define VERSION "0.11" +#define VERSION "0.12" #define BUFSIZE 2048 #define MBRSIZE 432 diff --git a/utils/isohybrid.pl b/utils/isohybrid.pl index 333a2dd..9bbd7d0 100755 --- a/utils/isohybrid.pl +++ b/utils/isohybrid.pl @@ -256,43 +256,11 @@ close(FILE); exit 0; __END__ -33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 66 53 66 51 6 57 8e dd 8e c5 -52 be 0 7c bf 0 6 b9 0 1 f3 a5 ea 2b 6 0 0 52 b4 41 bb aa 55 31 c9 30 f6 f9 -cd 13 72 16 81 fb 55 aa 75 10 83 e1 1 74 b 66 c7 6 d1 6 b4 42 eb 15 eb 0 5a -51 b4 8 cd 13 83 e1 3f 5b 51 f b6 c6 40 50 f7 e1 53 52 50 bb 0 7c b9 4 0 66 -a1 b0 7 e8 44 0 f 82 80 0 66 40 80 c7 2 e2 f2 66 81 3e 40 7c fb c0 78 70 75 -9 fa bc ec 7b ea 44 7c 0 0 e8 83 0 69 73 6f 6c 69 6e 75 78 2e 62 69 6e 20 -6d 69 73 73 69 6e 67 20 6f 72 20 63 6f 72 72 75 70 74 2e d a 66 60 66 31 d2 -66 3 6 f8 7b 66 13 16 fc 7b 66 52 66 50 6 53 6a 1 6a 10 89 e6 66 f7 36 e8 -7b c0 e4 6 88 e1 88 c5 92 f6 36 ee 7b 88 c6 8 e1 41 b8 1 2 8a 16 f2 7b cd -13 8d 64 10 66 61 c3 e8 1e 0 4f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 -6d 20 6c 6f 61 64 20 65 72 72 6f 72 2e d a 5e ac b4 e 8a 3e 62 4 b3 7 cd 10 -3c a 75 f1 cd 18 f4 eb fd 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 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 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 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 -* -33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 66 53 66 51 6 57 8e dd 8e c5 -b2 80 52 be 0 7c bf 0 6 b9 0 1 f3 a5 ea 2d 6 0 0 52 b4 41 bb aa 55 31 c9 30 -f6 f9 cd 13 72 16 81 fb 55 aa 75 10 83 e1 1 74 b 66 c7 6 d3 6 b4 42 eb 15 -eb 0 5a 51 b4 8 cd 13 83 e1 3f 5b 51 f b6 c6 40 50 f7 e1 53 52 50 bb 0 7c -b9 4 0 66 a1 b0 7 e8 44 0 f 82 80 0 66 40 80 c7 2 e2 f2 66 81 3e 40 7c fb -c0 78 70 75 9 fa bc ec 7b ea 44 7c 0 0 e8 83 0 69 73 6f 6c 69 6e 75 78 2e -62 69 6e 20 6d 69 73 73 69 6e 67 20 6f 72 20 63 6f 72 72 75 70 74 2e d a 66 -60 66 31 d2 66 3 6 f8 7b 66 13 16 fc 7b 66 52 66 50 6 53 6a 1 6a 10 89 e6 -66 f7 36 e8 7b c0 e4 6 88 e1 88 c5 92 f6 36 ee 7b 88 c6 8 e1 41 b8 1 2 8a -16 f2 7b cd 13 8d 64 10 66 61 c3 e8 1e 0 4f 70 65 72 61 74 69 6e 67 20 73 -79 73 74 65 6d 20 6c 6f 61 64 20 65 72 72 6f 72 2e d a 5e ac b4 e 8a 3e 62 -4 b3 7 cd 10 3c a 75 f1 cd 18 f4 eb fd 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 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 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 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 -* -33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 66 53 66 51 6 57 8e dd 8e c5 -f6 6 17 4 4 74 2 b2 80 52 be 0 7c bf 0 6 b9 0 1 f3 a5 ea 34 6 0 0 52 b4 41 +33 ed 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 +90 90 90 90 90 90 90 33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 66 53 +66 51 6 57 8e dd 8e c5 52 be 0 7c bf 0 6 b9 0 1 f3 a5 ea 4b 6 0 0 52 b4 41 bb aa 55 31 c9 30 f6 f9 cd 13 72 16 81 fb 55 aa 75 10 83 e1 1 74 b 66 c7 6 -da 6 b4 42 eb 15 eb 0 5a 51 b4 8 cd 13 83 e1 3f 5b 51 f b6 c6 40 50 f7 e1 +f1 6 b4 42 eb 15 eb 0 5a 51 b4 8 cd 13 83 e1 3f 5b 51 f b6 c6 40 50 f7 e1 53 52 50 bb 0 7c b9 4 0 66 a1 b0 7 e8 44 0 f 82 80 0 66 40 80 c7 2 e2 f2 66 81 3e 40 7c fb c0 78 70 75 9 fa bc ec 7b ea 44 7c 0 0 e8 83 0 69 73 6f 6c 69 6e 75 78 2e 62 69 6e 20 6d 69 73 73 69 6e 67 20 6f 72 20 63 6f 72 72 75 @@ -303,47 +271,48 @@ da 6 b4 42 eb 15 eb 0 5a 51 b4 8 cd 13 83 e1 3f 5b 51 f b6 c6 40 50 f7 e1 e 8a 3e 62 4 b3 7 cd 10 3c a 75 f1 cd 18 f4 eb fd 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 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 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 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 0 0 0 0 0 * -33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 21 f6 74 26 f6 4 7f 75 21 38 -4c 4 74 1c 66 3d 21 47 50 58 75 10 80 7c 4 ed 75 a 66 8b 4c 34 66 8b 5c 38 -eb 4 66 8b 4c 8 66 53 66 51 6 57 8e dd 8e c5 52 be 0 7c bf 0 6 b9 0 1 f3 a5 -ea 55 6 0 0 52 b4 41 bb aa 55 31 c9 30 f6 f9 cd 13 72 16 81 fb 55 aa 75 10 -83 e1 1 74 b 66 c7 6 fb 6 b4 42 eb 15 eb 0 5a 51 b4 8 cd 13 83 e1 3f 5b 51 -f b6 c6 40 50 f7 e1 53 52 50 bb 0 7c b9 4 0 66 a1 b0 7 e8 44 0 f 82 80 0 66 -40 80 c7 2 e2 f2 66 81 3e 40 7c fb c0 78 70 75 9 fa bc ec 7b ea 44 7c 0 0 -e8 83 0 69 73 6f 6c 69 6e 75 78 2e 62 69 6e 20 6d 69 73 73 69 6e 67 20 6f -72 20 63 6f 72 72 75 70 74 2e d a 66 60 66 31 d2 66 3 6 f8 7b 66 13 16 fc -7b 66 52 66 50 6 53 6a 1 6a 10 89 e6 66 f7 36 e8 7b c0 e4 6 88 e1 88 c5 92 -f6 36 ee 7b 88 c6 8 e1 41 b8 1 2 8a 16 f2 7b cd 13 8d 64 10 66 61 c3 e8 1e -0 4f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 6c 6f 61 64 20 65 72 -72 6f 72 2e d a 5e ac b4 e 8a 3e 62 4 b3 7 cd 10 3c a 75 f1 cd 18 f4 eb fd +33 ed 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 +90 90 90 90 90 90 90 33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 66 53 +66 51 6 57 8e dd 8e c5 b2 80 52 be 0 7c bf 0 6 b9 0 1 f3 a5 ea 4d 6 0 0 52 +b4 41 bb aa 55 31 c9 30 f6 f9 cd 13 72 16 81 fb 55 aa 75 10 83 e1 1 74 b 66 +c7 6 f3 6 b4 42 eb 15 eb 0 5a 51 b4 8 cd 13 83 e1 3f 5b 51 f b6 c6 40 50 f7 +e1 53 52 50 bb 0 7c b9 4 0 66 a1 b0 7 e8 44 0 f 82 80 0 66 40 80 c7 2 e2 f2 +66 81 3e 40 7c fb c0 78 70 75 9 fa bc ec 7b ea 44 7c 0 0 e8 83 0 69 73 6f +6c 69 6e 75 78 2e 62 69 6e 20 6d 69 73 73 69 6e 67 20 6f 72 20 63 6f 72 72 +75 70 74 2e d a 66 60 66 31 d2 66 3 6 f8 7b 66 13 16 fc 7b 66 52 66 50 6 53 +6a 1 6a 10 89 e6 66 f7 36 e8 7b c0 e4 6 88 e1 88 c5 92 f6 36 ee 7b 88 c6 8 +e1 41 b8 1 2 8a 16 f2 7b cd 13 8d 64 10 66 61 c3 e8 1e 0 4f 70 65 72 61 74 +69 6e 67 20 73 79 73 74 65 6d 20 6c 6f 61 64 20 65 72 72 6f 72 2e d a 5e ac +b4 e 8a 3e 62 4 b3 7 cd 10 3c a 75 f1 cd 18 f4 eb fd 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 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 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 0 0 +0 0 0 0 0 0 0 0 0 0 0 0 0 * -33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 21 f6 74 26 f6 4 7f 75 21 38 -4c 4 74 1c 66 3d 21 47 50 58 75 10 80 7c 4 ed 75 a 66 8b 4c 34 66 8b 5c 38 -eb 4 66 8b 4c 8 66 53 66 51 6 57 8e dd 8e c5 b2 80 52 be 0 7c bf 0 6 b9 0 -1 f3 a5 ea 57 6 0 0 52 b4 41 bb aa 55 31 c9 30 f6 f9 cd 13 72 16 81 fb 55 -aa 75 10 83 e1 1 74 b 66 c7 6 fd 6 b4 42 eb 15 eb 0 5a 51 b4 8 cd 13 83 e1 -3f 5b 51 f b6 c6 40 50 f7 e1 53 52 50 bb 0 7c b9 4 0 66 a1 b0 7 e8 44 0 f -82 80 0 66 40 80 c7 2 e2 f2 66 81 3e 40 7c fb c0 78 70 75 9 fa bc ec 7b ea -44 7c 0 0 e8 83 0 69 73 6f 6c 69 6e 75 78 2e 62 69 6e 20 6d 69 73 73 69 6e -67 20 6f 72 20 63 6f 72 72 75 70 74 2e d a 66 60 66 31 d2 66 3 6 f8 7b 66 -13 16 fc 7b 66 52 66 50 6 53 6a 1 6a 10 89 e6 66 f7 36 e8 7b c0 e4 6 88 e1 -88 c5 92 f6 36 ee 7b 88 c6 8 e1 41 b8 1 2 8a 16 f2 7b cd 13 8d 64 10 66 61 -c3 e8 1e 0 4f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 6c 6f 61 64 -20 65 72 72 6f 72 2e d a 5e ac b4 e 8a 3e 62 4 b3 7 cd 10 3c a 75 f1 cd 18 -f4 eb fd 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 +33 ed 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 +90 90 90 90 90 90 90 33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 66 53 +66 51 6 57 8e dd 8e c5 f6 6 17 4 4 74 2 b2 80 52 be 0 7c bf 0 6 b9 0 1 f3 +a5 ea 54 6 0 0 52 b4 41 bb aa 55 31 c9 30 f6 f9 cd 13 72 16 81 fb 55 aa 75 +10 83 e1 1 74 b 66 c7 6 fa 6 b4 42 eb 15 eb 0 5a 51 b4 8 cd 13 83 e1 3f 5b +51 f b6 c6 40 50 f7 e1 53 52 50 bb 0 7c b9 4 0 66 a1 b0 7 e8 44 0 f 82 80 +0 66 40 80 c7 2 e2 f2 66 81 3e 40 7c fb c0 78 70 75 9 fa bc ec 7b ea 44 7c +0 0 e8 83 0 69 73 6f 6c 69 6e 75 78 2e 62 69 6e 20 6d 69 73 73 69 6e 67 20 +6f 72 20 63 6f 72 72 75 70 74 2e d a 66 60 66 31 d2 66 3 6 f8 7b 66 13 16 +fc 7b 66 52 66 50 6 53 6a 1 6a 10 89 e6 66 f7 36 e8 7b c0 e4 6 88 e1 88 c5 +92 f6 36 ee 7b 88 c6 8 e1 41 b8 1 2 8a 16 f2 7b cd 13 8d 64 10 66 61 c3 e8 +1e 0 4f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 6c 6f 61 64 20 65 +72 72 6f 72 2e d a 5e ac b4 e 8a 3e 62 4 b3 7 cd 10 3c a 75 f1 cd 18 f4 eb +fd 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 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 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 * -33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 21 f6 74 26 f6 4 7f 75 21 38 -4c 4 74 1c 66 3d 21 47 50 58 75 10 80 7c 4 ed 75 a 66 8b 4c 34 66 8b 5c 38 -eb 4 66 8b 4c 8 66 53 66 51 6 57 8e dd 8e c5 f6 6 17 4 4 74 2 b2 80 52 be -0 7c bf 0 6 b9 0 1 f3 a5 ea 5e 6 0 0 52 b4 41 bb aa 55 31 c9 30 f6 f9 cd 13 -72 16 81 fb 55 aa 75 10 83 e1 1 74 b 66 c7 6 4 7 b4 42 eb 15 eb 0 5a 51 b4 +33 ed 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 +90 90 90 90 90 90 90 33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 21 f6 +74 26 f6 4 7f 75 21 38 4c 4 74 1c 66 3d 21 47 50 58 75 10 80 7c 4 ed 75 a +66 8b 4c 34 66 8b 5c 38 eb 4 66 8b 4c 8 66 53 66 51 6 57 8e dd 8e c5 52 be +0 7c bf 0 6 b9 0 1 f3 a5 ea 75 6 0 0 52 b4 41 bb aa 55 31 c9 30 f6 f9 cd 13 +72 16 81 fb 55 aa 75 10 83 e1 1 74 b 66 c7 6 1b 7 b4 42 eb 15 eb 0 5a 51 b4 8 cd 13 83 e1 3f 5b 51 f b6 c6 40 50 f7 e1 53 52 50 bb 0 7c b9 4 0 66 a1 b0 7 e8 44 0 f 82 80 0 66 40 80 c7 2 e2 f2 66 81 3e 40 7c fb c0 78 70 75 9 fa bc ec 7b ea 44 7c 0 0 e8 83 0 69 73 6f 6c 69 6e 75 78 2e 62 69 6e 20 6d 69 @@ -353,6 +322,39 @@ e4 6 88 e1 88 c5 92 f6 36 ee 7b 88 c6 8 e1 41 b8 1 2 8a 16 f2 7b cd 13 8d 64 10 66 61 c3 e8 1e 0 4f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 6d 20 6c 6f 61 64 20 65 72 72 6f 72 2e d a 5e ac b4 e 8a 3e 62 4 b3 7 cd 10 3c a 75 f1 cd 18 f4 eb fd 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 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 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 0 0 0 0 0 0 0 0 0 0 0 0 0 +* +33 ed 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 +90 90 90 90 90 90 90 33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 21 f6 +74 26 f6 4 7f 75 21 38 4c 4 74 1c 66 3d 21 47 50 58 75 10 80 7c 4 ed 75 a +66 8b 4c 34 66 8b 5c 38 eb 4 66 8b 4c 8 66 53 66 51 6 57 8e dd 8e c5 b2 80 +52 be 0 7c bf 0 6 b9 0 1 f3 a5 ea 77 6 0 0 52 b4 41 bb aa 55 31 c9 30 f6 f9 +cd 13 72 16 81 fb 55 aa 75 10 83 e1 1 74 b 66 c7 6 1d 7 b4 42 eb 15 eb 0 5a +51 b4 8 cd 13 83 e1 3f 5b 51 f b6 c6 40 50 f7 e1 53 52 50 bb 0 7c b9 4 0 66 +a1 b0 7 e8 44 0 f 82 80 0 66 40 80 c7 2 e2 f2 66 81 3e 40 7c fb c0 78 70 75 +9 fa bc ec 7b ea 44 7c 0 0 e8 83 0 69 73 6f 6c 69 6e 75 78 2e 62 69 6e 20 +6d 69 73 73 69 6e 67 20 6f 72 20 63 6f 72 72 75 70 74 2e d a 66 60 66 31 d2 +66 3 6 f8 7b 66 13 16 fc 7b 66 52 66 50 6 53 6a 1 6a 10 89 e6 66 f7 36 e8 +7b c0 e4 6 88 e1 88 c5 92 f6 36 ee 7b 88 c6 8 e1 41 b8 1 2 8a 16 f2 7b cd +13 8d 64 10 66 61 c3 e8 1e 0 4f 70 65 72 61 74 69 6e 67 20 73 79 73 74 65 +6d 20 6c 6f 61 64 20 65 72 72 6f 72 2e d a 5e ac b4 e 8a 3e 62 4 b3 7 cd 10 +3c a 75 f1 cd 18 f4 eb fd 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 +* +33 ed 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 90 +90 90 90 90 90 90 90 33 ed fa 8e d5 bc 0 7c fb fc 66 31 db 66 31 c9 21 f6 +74 26 f6 4 7f 75 21 38 4c 4 74 1c 66 3d 21 47 50 58 75 10 80 7c 4 ed 75 a +66 8b 4c 34 66 8b 5c 38 eb 4 66 8b 4c 8 66 53 66 51 6 57 8e dd 8e c5 f6 6 +17 4 4 74 2 b2 80 52 be 0 7c bf 0 6 b9 0 1 f3 a5 ea 7e 6 0 0 52 b4 41 bb aa +55 31 c9 30 f6 f9 cd 13 72 16 81 fb 55 aa 75 10 83 e1 1 74 b 66 c7 6 24 7 +b4 42 eb 15 eb 0 5a 51 b4 8 cd 13 83 e1 3f 5b 51 f b6 c6 40 50 f7 e1 53 52 +50 bb 0 7c b9 4 0 66 a1 b0 7 e8 44 0 f 82 80 0 66 40 80 c7 2 e2 f2 66 81 3e +40 7c fb c0 78 70 75 9 fa bc ec 7b ea 44 7c 0 0 e8 83 0 69 73 6f 6c 69 6e +75 78 2e 62 69 6e 20 6d 69 73 73 69 6e 67 20 6f 72 20 63 6f 72 72 75 70 74 +2e d a 66 60 66 31 d2 66 3 6 f8 7b 66 13 16 fc 7b 66 52 66 50 6 53 6a 1 6a +10 89 e6 66 f7 36 e8 7b c0 e4 6 88 e1 88 c5 92 f6 36 ee 7b 88 c6 8 e1 41 b8 +1 2 8a 16 f2 7b cd 13 8d 64 10 66 61 c3 e8 1e 0 4f 70 65 72 61 74 69 6e 67 +20 73 79 73 74 65 6d 20 6c 6f 61 64 20 65 72 72 6f 72 2e d a 5e ac b4 e 8a +3e 62 4 b3 7 cd 10 3c a 75 f1 cd 18 f4 eb fd 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 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 * diff --git a/utils/memdiskfind b/utils/memdiskfind index 3b9c0544ddfc329de0d2355d6eaad44544890f49..8a4f57eda37d2c5bae8ed800fd892d1b552290d7 100755 GIT binary patch delta 1147 zcmY+DYe*DP6vxlinRQ0T*4@=CdTr^7Mb>OZX%QAZKS)evpxDD8W1^SENF zX(0oE9~Ed60SFT5>ru4Oxp=AGMZqqDu5*u;=vD!M)vah23UQ=(%Js{&L#ghuvEa>W8iKs&1j(8;O;L|F4FPgY7X%1U|1SPKEpvrd5NaDfdsKo2Wb zyE&ZI(v%-Gofz!H8%m&~fg(;|E4|t61UN;T&CGj;Mu1bbIhGlf%qiQn5@a4q=G5&; z%-1Dz3AUfPS2CAkS2D*Wb4j+z+{xS#;M(kJcC^X~T%)~$xmhyTYOiOuBy-KS#k@i? z*KRj3o054C>}F=aWZny#E6Nl}<}I;XnSnUh3H0DAwL!c?(=|t=vB|YP-$fliy}DeB zCvebpEq~@;JeD_Kti-E%&0;MY+Wz7sEe371@qW@&C!LxTAKLM(R$9sqr}$Jmxn!{B z_2Kl8n#7bgwIo8$Qx8MlJCp>Fp${wN5zK0nw3~E{2yUUFFQ53B;Pl+`^r!ER6CTfP zs~cWjuDrk%D9&hiF1gyigr6u)+XiE?f1Cb* zPGR~vUdq2etM{AZL@9&BPsgbvjs0?*yPOhj%Q#7ngC`3rgoRfMYK4KBg85hTY5g?9%G4!Vw~Rf_{QiEUD#OIvU0Jx&|kT!WtV^b&X9l6yv6g(s-QU= z)~#B#)L*%7!@LN4e?s_-V%(H=x-FWF8D2x>jzn;pw@j5c zAJ>p&Q3oyD?=92o$*QMYRfmVXKJ2IYz2xb|dlXBMm7tg**ZSctQkfdj<115tl9k0V Gx9>L#M0N%M delta 1150 zcmZ9LYe*DP6vxlanRR9zTX)qIdM)XSMb?^9R+NTC4Hu+8H|5DnDcY=*_hr^xfGezXVG;DP;Q>gn zQnhEe?gT}L?w{TDibnmB#6KJ9@yPW{1XtFu^-k~SJshS*{9Fxo`o3s*4K9tO< zo5jonlDP!a&zz9VrI_W+wq!2J3^GTVy8~RCS;LMFIe=?4>zJD)bFJn!=3SDxW^)&F zon)@v3^NBM^B$N@%znwd7baIUnJ1aI#Oz=O;w&eSz&C1Ge88Y!90BC*Hfc zRO?UTsOz>n@E1>JuM}JGR(6xvfri#rkfOz)tG0iDbfkxF&DrTFUet<;*x?kMi;_zQ z*S+gz%=#Y4I!+A*z1HjYGSp;%h!mpbEgDbt?b*Us35`pm_>nHV{~#-1pR2S#n% z{`cS?&`q3pf!Eykm-PK`9E-9@{BoQIQft<6?viFmXGmvf@k~ycXuumewL-&>IV;6; zEHu^^W@rLkVEOQEct`IPwis)KjaTU##&M%tShz2@rLL-~(qF!(rP;sjaHqd|#p)Ho zid9QtYkmDXfBDv(`_fv@CM5$pk88du_%7+rig}xG1 zHa~75D@2DF!Zu%t9wsYHjn#n1eEFE7@z=?79q&;rNmi0#hFmM-%Tt-c=*=%tVJ<)# Izk2e215oaJuK)l5 diff --git a/utils/ppmtolss16 b/utils/ppmtolss16 index 5af9083..ae2d546 100755 --- a/utils/ppmtolss16 +++ b/utils/ppmtolss16 @@ -229,7 +229,7 @@ for ( $y = 0 ; $y < $ysize ; $y++ ) { start_new_row(); for ( $x = 0 ; $x < $xsize ; $x++ ) { die "$0: Premature EOF at ($x,$y) of ($xsize,$ysize)\n" - if ( !defined(@pnmrgb = getrgb($form)) ); + if ( !scalar(@pnmrgb = getrgb($form)) ); # Convert to 6-bit representation $rgb = rgbconvert($pnmrgb[0], $pnmrgb[1], $pnmrgb[2], $maxmult); $color_count{$rgb}++; diff --git a/version b/version index 427de92..c85bb01 100644 --- a/version +++ b/version @@ -1 +1 @@ -4.04 2011 +4.05 2011 diff --git a/version.gen b/version.gen index 86f40d5..2e64b09 100644 --- a/version.gen +++ b/version.gen @@ -1,6 +1,6 @@ -%define VERSION 4.04 -%define VERSION_STR "4.04" +%define VERSION 4.05 +%define VERSION_STR "4.05" %define VERSION_MAJOR 4 -%define VERSION_MINOR 4 +%define VERSION_MINOR 5 %define YEAR 2011 %define YEAR_STR "2011" diff --git a/version.h b/version.h index 6613499..3f2bd85 100644 --- a/version.h +++ b/version.h @@ -1,6 +1,6 @@ -#define VERSION 4.04 -#define VERSION_STR "4.04" +#define VERSION 4.05 +#define VERSION_STR "4.05" #define VERSION_MAJOR 4 -#define VERSION_MINOR 4 +#define VERSION_MINOR 5 #define YEAR 2011 #define YEAR_STR "2011" diff --git a/version.mk b/version.mk index adcb437..6200f54 100644 --- a/version.mk +++ b/version.mk @@ -1,6 +1,6 @@ -VERSION := 4.04 -VERSION_STR := "4.04" +VERSION := 4.05 +VERSION_STR := "4.05" VERSION_MAJOR := 4 -VERSION_MINOR := 4 +VERSION_MINOR := 5 YEAR := 2011 YEAR_STR := "2011" diff --git a/win32/syslinux.exe b/win32/syslinux.exe index a67dc0d10bdf6e8d232de1d394777c136a17d093..9c82cf901ad2a1793494a8bcb9dd86b664adeba4 100755 GIT binary patch delta 14877 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 delta 14788 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

k=^RAtqfWbv+0^U!9jQ_rCFAY9(02u};rnRL% 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ℜKg+RwlWaz_ldEC58C5J0G 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 delta 16048 zcmZX*30xCL^f!Gh!wm|EiYqE!n20C}7_=-g79F+T zx7OlO6;SX%5CygMw$@f_t>?yQtJNZklHY{l|NHxW|KYRyj(PKD=FQBTH?u?eMOOKF zR!x;t>cN8vSl{n8HVC)E@lY&$^|s;oc(2vJ9T#BXC{c`_aJUKhgGks8e84&Q7Z?X_ z!U)_4Jb)DL1E=D)b=&X*0E~cRi0Rh9hGLkqqt%Rl%q-YKkiZ{4BIKeKh;KR|@{Gik z2I~*rb&l*(;Og&-gbmh}IEI-W2LOO6Y4+E@V;D0E9^i}sA@Dh89gx5!Tu&cf2!=%) z3P8e?S1Q`bycvpN@igJ4)H`@4(2SC9RqEP!%uU$FoeaK)-n?iq2F~Qk!9ZBU3&Y%9~L|ecwuw8V+%;LrW*xOScZJgD=rj|HfavmHXg%)0L!Y;Z6P9(RhsyS!niQ}}?B-pHJH zkX?tIx0qL*#~eW%T{o_^>t*MEVQ+-l{XBS!P$K<-8C|!mUo-%*u){e4?~+3&mq@Gi za#WK@OLOw!B$t_}E3UZo2Xbh1sRU(kw(B4;4sLVx0$FwEU3tKg++Pi@)p@uD18})6 z#XSKBm2ju$Adm`gc!s#Sdmt;fXbP1E$8%>fEUJ-*R4Zwt;vR!TnIs-G!da4Gc$XX8 zC-DZq*Ikj=19z1hvKo`3q<>WEUP>4P*OKK|rS80Bf-wkwCL_RX7%ue%Ep=0+YJk6E z!xJ(;a0&h?i$`_zmj{4km?_Wj57oObYC?JS_3|C4*l5FUGwP_Q)|dP!L!lfGdm&mm z7>z@f!MzP$mAfhT$t=cWU)zcX8u+NxhsB6a%&-|nhx=L(v9k4VNzC#~7FuH!B|5Rl zj_M#nuQ*51ztRlVF-m|V-9}u;z#uQrvI|R{%#Q7kEE=tKCoMpoXZ+jJdP5cu@jOvs zNNr1$`KK7gt9WoxIpt!aLH<}d^O8W(qM|$A)~e`yxv!!np1yw;D@P_tO3(+(<8|kG z$fChfbVoe6mJrsXbw_Aa>vMh#_&Z8rj;eT$#)7#_%Qd5%S4|G_G>?j+BYE+<7C{vK zxzRFKD>^Vs!|6Aw5vU05ex#81MGmzLH(ya1*h{6TvQu6u^(xbA6=+c|?^Mz}3)Q8h zl{`(XqD85@WLDDe|2d5Ej3VCO2)npMVs^awC(2i5ux_;2-ZBC=yBYpaf6{BHjDW?XBYWpciIC2p~Yolk+ z|H(2`ml9zYm&#N$n`uUJw7U_34t5Gkv)E19!9I@|mY;s;D7f8c6fna_KJ$VrenkDF z&@JQvt-s!}3{g?1zd};VDVLRc;g8DYmz1=1He!n^|3z%`IofeN{MvV*V*eRSbw=*A zfcH0)=1WSy>&mc;@uIkoN_u29Vn>UbeN=`yAfE0~(E}I4r@n*bXD*}SLX`Sw6Hkfy zPKcanEn?}~ag)^C9;0|d58Vex__+yai=b;X?NwSg$uABJftxT4*9bb;Ut17V6WvE# zW2gHFG+&|l<=ZVx4ypd4~hYZz}cH zD!9=<%+J-r(IQS0&(da^4J?ecb{70D(i=3P4NYLP<38B!KOT&P=>bv@080W?c~%Wb zW{LwUkHF0jQK=#IsKS;1EgJ5Z>M+cxv3O|DNK_a1yB0eCe`uqHPW>M`9%VL0{|{|j z54{G)fMsyzz!RVo$^yrL-EekbI#9w3fl{2^2#tYbY?_c3r2H5H9qj!uYEXZ94Z@ed z(hBt>t1XyWlT6hp!|oz;EI{-EgVHc?D=Z&0N;ue(+^Kay`TgP5K{C7UV@O$8n@DGc zs)6MDpNFiVP!LrY9^?*yscyXD5kL#;$RWeILw~Ro*bSEsaT8BQdXzNNgw_j7U2ehJ zAxpWpkuI}iH5?Q?3_OF=g8hkeXwAN1)Ypg`a&P1Qloq4;_b)4))$g4C516O9y*9!g?nL&EA7hB%1S$C2vd%LdXAyUNk#C zxq+AlYg@!HJHAJR*^!UlCoM|QLT+}vg(zkQ8a>F)`mz`vs$vc*N@?gt|3URJEt{)TNnm4a#4{ezhi@iT;8I6tY;rXRYPJvXuw)3jAo;z ze+PR5LM=bDaXLfvg#gc(N8L^Pm5DTD3 zruKq3vDq;ZjtKMcdyHl)vZ%=7pV4C6Ch{z|7!YMJq7<{^*Z(OYj>BbPa_;e7-hFr| zOxAB@FMbTAn{F%hYOy7HqaC-w=V3vqUMNl11+-6*o-l-Wutn%?`I#LXkmEJ|)K`w4 z{Sl1`)R9gd?3W0$n5x%fSzK2e8aXJ;L~OHTzbkO&@R#;&D7s4+ul-dy#nBSzp{1e@ z&KNOA8r93!hgCTwV<9&1=Ec5E@V|=Lqr%y1pkKf)0zZA6MfARmi^j}3o z`uN^`@OU5p3!VOj-v^y~VcD0K_ZryJqh1kx83X&^DzsGeTIhel<9&2bA8hY~oIbd; z4@Uei{)#@jy#whjL#F?t;IM^(Xs14bo<4egAHA=SKHdjo`}kifvagT+!vCvJ?n}Ne z@IfEn2Fd4G3iRm9nA-`G|0rwc{IwLLL$Dx51t>$vlQQa*B?i^oNS4Mw_M`L!rB5X&(TPHy zpK&UcLbaNRRc$D$kHe@5RO?ed1x&hjf$8UFten!@$d^(TMwA_+cKR-*ScI;f(DGLP zR&fp!ulkLO*S=i!D@C@5Dr(icyXEXo=03@Mhdqyp#3O-qhG3JmnHRrrPDBII@?BVk*?fNf z&06LaEKTw*JEPe*uKAy%%)b)TR_3t;MOsXNn=#jH$qq~=UBvxlO#38*{!n4W&M@aB zls+V&o*EGn8opp~5_Oh9-kmCl#Zl#S{rs+FrRzRm8ev9KGpd;PzO0E_!4U~FSwi

IXJbeu!GIS?{FaP5q4uqDN>4L!0kyaZ!{1VSO+x0X zXN4I%qq!c`Qj0R54UbQ!3V2*p)iqAJ2g4=B-I5j!`(QXUB|CV0Y1G93r%mIX{H~>= zywE+Rf7CU-4RP)59`7n^I^s?;7wOArCayMN;O(A?ihDaa*LLj-4L9#3u8JyGd7Aum z5f73v&2&zB##uDtJDPdFz><_9WgAYUpqx}es{mExxZ?!T@24Duo=eK)4WlhX|yT^E}r#a%7akLfl#)Wb2Zw?79ZD2Gatv}<|KXU}9 zv_bQVGTUqj)o>Bm5~}?pi@D~~%=-gr*W27oMhd8&ET%-nG{GsU;duTrxHFY1D{#nV zS_RB~vGHJG}rCa~Zjy2`g9J%cTmISu7plQ1JmHM9UuacvnR9fV5iC z@?Uz=^~iqB509ZkmbZH>&HBT|yFJD%VJ`FZA-h7E>n>-pF7Ik~9O|E?;gSXK#xI1aIeL6=uN)Io6E$Ax z%?pk(L0EJ6SY`m$Tycz%W4TB_Dv7DHqiBzoP_AcN^Vwreor^{0kc*{j3OSveYoQWR z-l<1iE zj>A+3=XO0-?ud1Nq6&VqK_$D07{czcmBqpl&h%9#%-Q^yskLXOVwU&2eqC+Vu@213 zKKOvw)y9m$pnkkaaJ8T5->$auh=w}2XZ(<|hB{1Z&vf%7Em~fccYR$Cr=hMY)~#&^ zLTwuAOmDkCF{uvM(0f|HYuz3k(GJmmD(}xgyp!a8D|38Ev`L4mDI6tB#ccf=Aqj&{Uidm6ghR^`g|3&hOWepA2TXjC${ z?F-zhjX(Aj7-{2$9%il`N{mH<1XZxmV(wSg6dmhECpyy$h~AW3F-p`YI#UHcmJxZy zdOoh`M2QrVY3t3`+f5Dd)Pz6>RXrW+urm?8op-A1c@L|-lk4H<2~^ojRE|E@!MMU{ zWg@Dj_(UD5I>35O7|s)Yy$nOM-{Ze3Bd^Hpw(~@kH`3ob+k4&4MWJWkyl)nYD(Cmm zA!|da-8G@i{Lh?|XtN744L$+RxLnnDL^nwhwJP0vphzvEC8T0PS;pY%*V1n7wut^BSQt#|J-s z7|zRaF2iloDK)bgvrLnR%~)6Ogujy<<@e@ozGY6H#ZEJ{Epw}zLPsS|7?qi;xOr;b zdgi({g$_dy135M1`kUBjfoFDEQxy@IxUoldMeAA~L5NAMJ+(75T+u@9zFm)^2qbIV z*gFunIW)hkV>a}2FbdytdgrLc88CKO@630Gp1CA}ib;ggxxPRMXXPdWZ+JR48NYu5 ziYEq^B?!~eq-N?q5@(Ho@gf+1 zn=3A+9wtU^bH&-z)7OoA`5KQDy+?Gt&LpnrelonsmPQ0UOwmHe;Z<>*$O&JZz+%3l zWkOp@dIm=y5nT`QyaaTNs?L+TN7w6z^*M@vc)B*RMM3U_wu}^uT-`T$Qve>>0N+h2 zLmmb$m^=iJuZIT^2;2l8PIj_O-*k4R%7hmD7bCbGoF^j^H$vVNH}Z_Y6YllL_4>T2(#dZ?WehO6q~ktr@=$@MQK z4?`b{*0uCp>_%ZyH>0ttx4q(|jn;egX8C((aQMd&oWbE*H$w*d<$j>KKdN`K;Q66! zwiVj4!|?oSZ&khSoF!FDjL+QqBPXK~8@#F|P#-ZkJW%hXs()D<*qiBPeym%~W;C7- z=vsJ>KAdd<=v1kXuoMUrr|v4NKXLYaGIEq?aX%X#9@Nrvp|+>xQ8%>{t=+pr!`nu1 zo+OKwsaU(8B%dWNFsg2}reJMnd4Dib-4%cH|DYpoCL{7WGZ>M)=XAvFWaQ$QWUN?p zmiG(eX5s!qM_jiEU1O{*+3CIK#}v3l(Qb(S7M`VCKr8%}>aV)o zr3IO7X3nGJHsUxI$P^4hyeqc6zDDtCHm_;9oc+8{^jQ#_1WB1CR zi&~x&RT0VcRew}Gwt7u_sOw?mG*7$4dbQ5XD(2jHu0MkjbObWtylJES)%AZpD}PqL zpNHbeai7a07S>}L+jb5Dme{MU+Y)r0>2B-bAo&N=+(uk!!r6+Jw+GOYft*^C8AD;y z0#@y#u67QS3@q;I|7&U-KoJfyoZjYoGK~TyIJ97R_NOisxaGE?yo#14Lh!bhnT^fw zW*)yc+dN9v{_~$1lTa=eGHiK7_*hJ1-;CEaaeD)Uu}meWH!z^P2J)`$CayJMJik^{ zpIQnP4Sy_fpO#wB9Obt$^D$=Mdre`{hj5wZALN;8g%T9;-(~*lEXqJNwzANzZS0^n z(@SRhdlWD;#qTvEi@ccZ_s!17(Fq*d6NR;Dys1Nv{%tO)XL9(>n3&1nGjV*=uI8Qf zaNKm)ek(iYzi*?qP(<#Z_?bpVQIIPxFV2X=5C)EDoBfis+l z2ldrEp>l={A&ooXoEiOzhxNwWaMg@;c<=$}H8aCjdPXCHNUZDBJZRZ3w zfKE2f!l&*^?;!_3V09x*Ee&BjinP`44Y%q(KuK>CT=~BGNo7#!C znR>L%qyVR&fwFZfY(Ust3#MtU95j^nWPtXjPfc+1T$kxh^Ihl%Ro82)F4m&;7;*hRSjK(V#N5ob52g=P z9#Yh_1fvu;zwG84r}ZOtQ-0SCr39)kMMo28!;iYwvO!i;J5eL8IE4)w4{9fBr4>ih zps}|!54z9uAH1;PihVQd`y!i)?zCDhud@|sSk1Tg_vX?g)0{#EutWQJlv9uFa|$~N z7tM3SQSJ@%d@P`KUa|!^7Rf{FzDI%RTx{F-7}iGZMAYuNSX&@vMthCG3QlDM^D>aq zIh8kryg-oy#=L(`Z3*lhSo4Zjy8J&;?5anrUNo<0V5-f`Lg+N#3wOH(N6zo>Vn)Z- zmfs94wZIZtn1^mUieUw)Q|8V0O+^t6*3@qshP^$|)*0i6Ye2U-Es#2OXNO6GA_B`K z#I7Il{clbl;fb)jdM^|=V>Dxa{P7dri@$K+X;GXfI2WN91W6=rz9nFw32C4HP(V&3HZDu zFu_`2NuEA?T7YEI?0iYQqa3BT2KGGd^r@Nw2JZCP(=|o;BZCas($&tZlh$O1<%Q*k6@(Rr#jF{-W?@)q zSb5mk)m7-J30oVs0YP|wvCFijtHFuY_=VNPmDRkTSMz^cZS`t(5LlyHy4tK-UA(4b z&89Vb*PK{$X3e=Z_t$)0Q@q9s4u#pUc+Gma1HCPOKfro;5?+FX*QT$Xz1G4ptWDa# zdF}CDym(E^+V-_DyR;kyVZWDtj~DN(t6CBP%1&RgC50Zu3 z)Q$GnIf(yLeF6GVaBu6~kbgM(&P`-Ox?N?z$ZD~igja1>?JszUVdJ)aR@`+ykNB4c zKfZl2`QNSIUr+k`Cj^^vAKyk_ueQ<`3eaKU@~z_El}-^#QU9>ECd+Ao)pRBigs8e;j zjDLUs+DyORZzGtHlRI&18(M2HYhF<|(LOb!U^ns0YDPIpcole}go{{j7aK{keM;1G8VQK`&dG5KlnNzR;C&K)s1 z*xFc5ibx^OAhC*f+6eut+`}@DfTRGreU^)2E{7c{ z)O86&%j=f76mou1ys8vLj*nfyWRG7*Ur1efn+xo8i-MADyOP*uwiZ@YIhDC`k~kfc zgx52{cTyhxF+C(Hh{G-uWjg?L#BpFui}Bbf0(9-QapsK>nFnczc5G0jApz)9+~zqvTW8I>jx(Gcua9` z4KJA3>Ki_nhiiFd9Wlg=eHE|rV)(6}@#(J))YjG-VnFhCQ)G7dCYItJZ+G^R**p^~ zUjSY+pSmYdy2_%vx5;9o>0{wKaf#YkaF5x~V9Vb9y$P2d*>e zpUvjwEhY9p!$dgozUiU)cw}j z_YaxdC3X+Nu1}M#7KW3bB{%OE5ZA}dyeX_WSH)u$@pMatym6bZGs$}#F<`Pq2P5IL$_Ae3)Hxx`Ytx z(ea7eJ#reCuUAWG2f1GD4F6CIsT@qew_1q1pzm~m{C0qxd7k0d&JNBRH%K(6;;DHK zoKx*KJ~GalkBQcuGi&6+4AF^bxt%&5hzqgw;j*D=lJ?}`^w3G%MvAX@T!5LAMJLYb z+M+5;fP_VM2W&Lu5&iNeYFRrqY&C90n5<1bx`hO$VKajQqT$o(K<~{|dz~Mb$TjT; z{Y#ab7jN!hFZA)kH0YU&p2Actb9*#^!}T)z>ApC7G&Tw_k5vGOPO$AWDL7Z}!cobx zpUWNKH~JW-O`-ZM{`5>frUV61{AwkRM>!B%;R}7J%lI@}NqFZBA0@vS5Shy2=@_wb zRBBTCY&c@2e*!1&F|8Cv3UbrvQRK}*#($&NMi=tZQxx~;2d&T8741cQeQYLAnaX8p z1-ej{md#w9v@w!r%XzIej<(#ux~1YA_NCj%y91(N-O8CZ*|UFRsU429buD}@x<3(M zP$ZUWtR&^#*&23v_aLopbs9Fhf>r(z5WIyZ>HQ%X9y88R461X?<=v9vpTk-;1FMtF zg(eK=8nVn`cQqb{te&vDTC4JsoeDsi^`U%iex0p^qdc7;F5z zM+EZd3#H%Snc}f@c4W=mWBg$B=~Yvx>%v8q%T$iJe=OfN_l5A*4HLMfPY}`%ZvCY& z%f_?mf5`8k^C~%rh9g(Gf+sL@Rp9UsVb0Pg1Ef_!qoeiX8)Zd<=>K%M+T;FM0?K>15XRcpNGMOZw3rpFE9G@x(J{NmA}4|!KdL56*qlH zf&y#%!X^IB&HnULFWIm*`Ud!oCso5e-;^W~{K=AsI9YCOR;?1IfR9Qf&BB1hS<=7`PR<*|40Na?WD8n=9bV z8sz|1Jg>5wFnv?M&^SBM^3oDss>mud-J0wg181xb!2e8u z8&>-PH9WUkK|G0)QSkk0caRSq*Mtf#4q)>|$1hdWYM8NRfWLjT&_qp*0Mg1R`YW?~ zEc(DE(ZvxGtW!EPRIL5GnE!pcXg8M$k=};~*SMx3S2kN#nw@b-XJp?UTRg^8r;nU2?%6JR;ad#3VMw zRS0w~e-C1Op)2$P-@r)t70Vcs4wu0ZIIj(!g`SclS&6~6*ytPw=MOyuoSvq5L zp>gdec?P_?&WjzUP9Yb-u61s96~6!a;OtBNV^~L0FglheoesU%2Z22>W4#((H{HL! zJZ;UQ)L4g02i*RSNTJ()%x3Nz2Q9PmbIlzhc3oV<(GtBy#atX1CTHBaGC zFd|`?I3YBc?4J~*&yJ4cImk^T4Z)uD>ofRP#bx=rh{DI1;Nepd_^ zZi;jnoMOd@9Le*#*cc?2W%&4Fh&4{(3-NKQ#bm9lxm=GyEl5T{)C!d{b~lNjrRqoso(v1KYZ z!y}7-2~FO)TYNGX<&XG~+nhM#?zr4w(-Sh?}U6|?0X0K+@EECBog|i(z1e$`f>QT6EjoCurAWSG1c(zEfTO3 zinn?OheiuP&Un8LX^QF`{b6h*v(7Dn+cjW=fmiV|+6wLSE_ASusN7{CG3@$hfRNWj z`BcIwTT^(eqiZq}#Qu()!X$K@y0S&QhMBB870{_94WP8L?`3efuGFuCjE8Ge5u; zl#e|9!x$dix+4|cN&08U`2P2%PD~#?Gt;Qa77Vf#Y~K+}360ZzDwav4#cdj5h_y zt`Aa&NXMoyHU2~`3OwoLf;jj4|ggYFE3@82aWw(%RVWstYxJqrxdtnNY9^8 zmvJ&b;BIPWu%p-Mz48A@T?Z?E*z!)f>n_~|z{(*hiH0Mc{jKSlY@ssGUF*mhD{R zC_i!-XO|Bjr14HY%pR3!SPH7gn{jC&6z`UO&DVw%;v~}_3h%j6Dq4GmtHh zQ!+DP?jBdL9+vEJcb%I`@b&3D(GN464Q{?o;j@N*%nCS^8ZW&FkL>XU0{H75cMl(1 z?cQ9!4Q#0*-C;(F9`|bd!GYPTC8DM3?W8Ak*h{(${ekdW8#s|o=op^gs6taDIVjng zH$cESJDMkT%*iBG zklgo`+jI6zE}^)YHg3BzGwOPxkV8a@6*rl1(W>?WSh}wSxr@$y)5?A<2*Frsj3F|W zst6Ul)s91_Qo4m4%%IFH!mQ@vT5HodU5ikk!;Ek)Vvh>@r}WJj-AA*=cjir5Q$vxp zy_Vd&;^EfG$(b%9R@y`RgeUqqf+<3umQ1w;m(pWRt_mRlT5-Yi{4vsLM{|v?sn{&R z4emI`Ujdv-%2M}PDQ<@Kh;#(n6N^qHag+h173c^rj6tWek(oJ`{_4tL>%&O zKQezN$*!5`9U!ZS56BVSA&sM-%NPyo?cOcpD;`P9D^s_ye9Ow8e&%0}{lQl)a~lg% znAMkNi9_!fdf8uS{C-Ko${!|*-sM~YPOikq@tC#3f|6?BZMAq| z#d#vX*mvZ`0IzX*Li&m{+)#3ww{VC2_4;uv{aj+qeZPMSelKKMDTOSxc+9OAVLvax z>7V0gys|mB9cXzMZ`m*@;i^C3F2ALcaArW zj?VT3zWT+=fnm5qq>c3aZyRG+>N;{=rkr%&@0#;7+*C^ry(N9W@BOXkKDj{aAaXQo zMN;|Y*|(W1Vo?!9LUXT-#G33VB1lg^J3BfU)TDTJs~1RYjEB9fR-e= z!skZL@UvCN@aGi0P^dg35S=g^GJMf3AAZMZ-uA&79RqwiCUv|gS2x&58_07>w{B?N zcw|)rnN|VFZw~VGQ9==s!lTu^4zMXdifF_PL+Q-JxXF{AC-$F<$=wdi1dVqh6DnIH zZ?YEKgq3xb-dT{NSC^_H3F%%RWgMH=5m{~55jk}=CJ(<#4jy2L-NGU3y)fK5Oi5^o zFtNr;*Wxfbth@AYee6Om+2l`7=Oy_D0)2X+qXr|X+POmIzdi{$7gFY5W429kXbW37 zMG&NMl?4^3^7x_?F+z1lx;_SD{A7Cq%E+f);v)m(0fRSg>zKB%8jX|S!6d)RbJk~7 zriwjIqMs<&#|gL3sFZJ!yM*q@#0rmiRgFtM!bKlE_M8*6J`{xI0@2sf6IDh0Fml-f z-RI1q?Obp%lZOip+43N-mLak0*K%dkpLmi5Ur)42({s}?RiiYa!AmMUD7XF!otgRN zVAWA}x1<~3&V$ZnN6wK$Wxg3KYym%(;+$?Vo?%u;caz#7spDNF zRdU-@NzNXYbZ<7UMnfW!e?1phSF5ebZ>FPvMk3dtYi$#3&<$=f`oL5Woa-nt$8m}W zH%H2(e?G`2<9vb|?UMi_g)?E^A(t{jKB`fiDaLj?up4<%{J{stQ#DUQQ}Vl)5i=h)=wJAU4rYKXxVxj7HB( z5R$g51KvfGlQy!~Mfz5-6PR_*8wIXVT3U9b8!^a!7lKS z+QAL0G$1*b(QO zIviaVsL2;zN%MP|7H@U&`_zlZ)G9i4^z_sVvT0ELgB$*$8P5K}8Go#URX>D)d+_WJ zK2}Q)EqA%MX?N9ZX%Kw#g9~S0(odb_VkkZ$4a|SW6D?mDCG`(grq$xC&Dd64of*9` z1e-msgI$7+F$k1Cjy8gy=ZXWSqSZFCxf3}N87aA(syk%Y?`UJvdX(g?8kv#KJBxNxFOK#fF6b&Bj%h?6 z{m#+X+puau6>n7KB@HXmWPhD)olf6TT&i}ksdC^&q0_&Az3yMjDEe8^Y0XxU3*lGC zyvv>~*AThlN8^`sQe;nB@d*`e0!JBVu!B1CfYg1RSXSsi`XV-d!a-5|qWn(weFxc+ z_{^-_(6q{hi_ql|Z}GSsOzvfU#_e|?{2k+cd-=KUeP|fjym-FVwDnb-SaNo?*qkUZc4e@1jKu1D z(bpH0AlidP|LVU|cYCJb&zjqbyamET*k!)}Y!>!l;7E-59V|xvp(O$6G7b~Qno?mL z;2BqR0I{*O14xWT9RL^$qJhvb_d5Ni`~$z(ai&V{Cdf!JL<8yb+$J|;d?t$(K0qtg zYo#RyH&T;DZW>JwNypzmD92NHxKXAdK%i)Ok4^eX*4+V%e2o0S5+L_m4CKZaqd4IM zfX#($3^&9O`dQM_zuEHTujmUR`f4I>JONwlTt<91m9>a04K2m+d0KyyXW=l}vxK!A z`HR1e`aF=18<#}^-C~w;A!o-m9Q~KhQnqYoBE25;ERmH%$9hS^wH(|iJu;gUp0Al5 zK3%lDIT9yK`Qh_Lm7#fTu1)wHjc52=(eiy|_<(S&HG7?wy^u|;ozC5KROT>mtZ^!< zBGNbS+Lpm-0SYMrm(}M44&j`%QGMD}_eS#x{Lo>dg1aMX#R>BsWsvob?iafxA9%ihQ;?-j7J2tb}0=@)NLYvV7*;5?4I z-+QmU#~rvEtA)eJA1{hWXujqNM#Yln=4fA3^0HY)u8Nz*wxU&@=`QrSm39sqt{1#^ z!lP_*YZ~VJ#@6rXHxWm_iHh>A9#2<^mA>U4;Bn)2Y{OqH9z_dGE-J#{610ji>SnPD zvjIMUzF_(r4LVxTF-nF@Os{;_+65l;0HzBkf#0WZLuw@^--Okw>Psf~DzJ!cvirm~ ztQX4X?jz)?YA!lKj1j7&Z-Vx!%0~Kp0Q|+Gb`G}sP^fj3b&^l!0# zGZz!)VN3x#n*fHXT@zM1&0?pM1*hW)nykvRPJ4$g!)6e43`3{A)Q{uYAMs@?%=~j& zyDOMUhQaYrPsdJFL_5R=n_JA-Z|IjATG^Z_@e)}f~x+~hl^w{Tl3sx zPfz*CzHb$h*QV&x-udij`2Z~2c4X-7L~KK%yr62vFONhv_);4i%+bmQd&0HG?n6_P zOPLU}vkfj!#H`Q`jkU)0FrPQf27C$>Vedp@pJs4yAX#2TPHHk-B~IAefQhy?*sJtr zuoc}a5PKcw?g$Kcg%LUUSTZ7}O-kOLM=m=1Kw^WP&uF$04-U8w0$*XAT$YQ%20J#$ z8XKI5eHeP5t-|sr=jE63O2Z5B(aO5YlXC(0Wg-?M#%$|8o|;Fvi0jXwSZAwGS0biO zlfUx9$-lhC83%za+=<84?Py5{c1sx>3|-)JTWa|)0

X3CpU0EX&md#AMWfTulv8aettxIHNUGL~2^3yS6zvi=ExP z$Lki%v5y~>O*870I)h>PQRAS3=nwN_a;%xgfj_!evJWMdGPdXJE)CPpJ?A{{`#$f- zdC$3byBBpY$~`{pxmfrpLhxI&<1BR%67F0~F^j?W+{qO&sQ+!Tkm8}!hUwnHuvayQ zzx9A|A{9RTl}EE}TTQxc{=I#=sDpYr?~B;m{VMggf8wBP+Q0Tz+;kG63l(&oO~D+o zS&{AR%KBB$t{TaF1{{8lU*|moW&Aw1s*$%u16@cri2byvxCYjfCh0mW1H3crd^B{` zZ$BYbCy|tdnHr5oBYVYNT0^gkD$}(5Vla1flUAg9K9-C9(m0ZBw+Nc%1!^sXu)oa8 z&N%@5M(I&;xerlp<`ocfeS`x@~vo zB|ew#BiKY9>oJG!D|`mD4{pR1$YC;yBx{-y8cs&5$Dq}{)v7#7Vx;~*zB($tYTSl{ zyF>}~U=1%c>zfGQsH&kmyhq{RLuV{MCK(&OPX(;*b>33<2JZy7XJD+`s{{{7%Qhvr zSFUgPN(Ty%)hbWh*aKD6qgoAJ0%(o50hlx!ej&_r-ItO;y9lnk(fgWvy%IVF#XzHb zixR9f6B4kwU-uTco0ZUhsV{N+l;Hc4?N>s3Ix~`dlwR#*$yp})f%wo;KtJs~W|>KC z1-NGX%>8QgLa=_^Sfm9?nWs4sJ%SOV&uD;JY@zF3y#sM?FLxGJ`4M0-F~)Jh2&_&& zns#~AF`7OErY8Q8Gkb(t=I#^A?XIfnAkpN=G~9lTO@h$W%cjbl_y~*xbFs#XA?hqI zE=++Sy{+P~ePYpbkmyOLlaN+_J@KYA>EdVbnz&e<;8luW?NerPNU8jHjcEX%y@>W{ zY&)Qi`w-bWEOWO&MD8FK8q3fqmgW>yAB9Yk`3lv{@v$k3QNNI$&}gDVBCD$DMbv zMaj-4&ScMYrefZ;Le10amSD-(>T2Uhz-uh=_VXHRlpO-Ayo+^D#phBybU3WCZsMEB zFCn+c9k+hYJiPuV(xEKx;@9sTMA?ndq!WIn!xdTj09jc!th!hWbra9jMMDhKnRKzb z^Ypl-skB*SxN>QwD0bD0wnFn`&G;uUms-fJK^p5(muPool~vjhCh@y9m_!!f4ex+% z55oVM6F1x%w8T7q6jxkXa|Xwb@JFn1uR(lGM|;)7d&rJXVKiXeMZ_*qSX5B>av>p` YFmPX^G6oKkY({l{3=P8~UMPC$U#p)Qx&QzG diff --git a/com32/samples/fancyhello.lnx b/com32/samples/fancyhello.lnx index 3c4f3950d2b572345380a0f09f2312eb22e16895..1123f623617c6de3f9a5cfa60f2d468703ade14f 100755 GIT binary patch delta 3012 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ΜwnA|5H$3lI=v6*-AX1WVTr|}Ek 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 OQ7)qlMNj*FFZ~yXg1Mdm diff --git a/com32/samples/keytest.lnx b/com32/samples/keytest.lnx index bca1bba9406df25e1ca228c5be70c65f9f59d480..ec504f483f1c93d09ad5ff2ab1b5f2fc2b5ff5a6 100755 GIT binary patch delta 9967 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 diff --git a/com32/samples/resolv.c32 b/com32/samples/resolv.c32 index c6b9649e4b6ba4d22439ce1c895c02729d58af45..eeba5eed6b49e6085bab1ed72d8f9bc1235bc7ed 100755 GIT binary patch delta 1067 zcmZ8gZ)g-p6rb5_l1*-NbBRS8|K*g4kffALTWo9=Ycy6X*H-kZACy9=w6>(S#k~@W zc*ecMOg9I24E`Zs3I$Ox1?9wAOX)w;d=znI%@QnWd=rgGQcoOd7{c>CV_ zz4v?b_RY))AK}X`7o$_F9_0zvo}r)Hn+Zwh&cjK|U$e{ByjV8fcj^q%@$g4an?IMf zxt{*^A~L>dz(>6Is5khj<_7!bPrLFmkR9Upd^S7Cmu!bqfb8D2)0usyy2DU5*H5Ri z|Eylz8UlSnOuN!Vmg|J^&0m)hdW1Ui0*$opU`Uu2CKnUkbAH6t`BrgHEaWHU0_|-r z20@ZffmCYAWHLLe8{CnvYwPJ5nbx+^z4E5Ep?kYQh_j%xW1C=z+g%qW`MXpq-I;A7 zGh1ju4nC#LI;#Sv)6I0YbGBI%O);^YPPuL23 z>wo_KivKU_S2-JiIZ>|b-U+o2EW;bASRwCdJ!vU}VQ;VkQtyC#P_we{4fs}Pe6<@V z!sg4JaXodPiFH69+%5wsrFk7H>sgl4p|8|nMic#OflS!DqAhG94=>>Y;X#<=M$XoqX%y#AbZ9i#H5z_a$*2dwv5>M8(#pLLKWdvrn) zLF*&C&H9+7#uVOZ#aZ&W${u8?(cIg$aZ0CiH|iE?bX59A8~rjDXn27J+bPcYr~Cbw z0!uzEUu%3hk!WxZakCT;`5nrjcArw3y~W*3K96x@ID{#7|E7MUh{N^HVi)&K;zqgg zu4wd^Bh9tBAtL28PgKGKfI7vvKU>KajT0NuH+uaOKiabnl@A6$Tof9vdj&@m!bA-J z`zvUW$T=-6djh@m3uy<|=Eef+X?+B5Z>SiN_sr*MOtv>=X)O13(|Ao{7WXEz#2_<; zTCx#i9K+35>rh3{6hcH54dcC3*G$1EV;MZM>Y6E-kNHnvD)txZBSduE$s=eY3CTcC MLC!W4S!!n+a delta 1037 zcmZ8gYe-Z<6rQbIWyBmyXcf# z30Gg~p9q4nsq=AZ0Yd&@FBpFQDlldCf)q5jWhtoa_d{D6y6V@d?7w>pJZ|T}#J2sZ zbsUsTNBz(xliveoE&CAh2Ri7aW-wwP8(P*GUn|o)90>#)@RPvEjENJR5FTc)O|F8M zX_UYmdCsfwG3?>jaaGZ30uHa4N?EviAX;V0bOrmt;*l_q2t#Uuwdw{H?UKx=BIEh|A>UVgT%YMK6~JlgZ@gNIpW3K<0wHgc?L0+AQJ? z^OYIXJR{i<6)Dl2__Xu;4cSXSa>n!;n86qXB2Q zs4Ux-*awhepBO_<`*1cYOpzt_{xK5U+xc+D^!k-xYvt}4rW-MxPBlWZ?-yY;zz)Ap z5s*r?OK6gd57;>wU$bAN=q>HMyDFCqcaR7!` zwmSfs%~Unw($P#lB+u2JL96UOh|}8i-P#V~yAMRPO*=rm3uS~n4sDNKtnDSf%YrZ0 z+{AlUcy|!rnc$X8H^wi5Z?eWo_#BTa#rQ%nFJ~Th6l1vKN52}N3&dN zS(fDoaBJ{xekg$LI>vN=%!%M!Xe#`O^yrT%DXt5? lQF`>p)Y15VII;Ex@_z?G@am31Azly*G$a53 diff --git a/com32/samples/serialinfo.c32 b/com32/samples/serialinfo.c32 index 578ffd684a1ed71cdaab7431276cceace880a037..4eebd6b906a24c99739b6e3394fd4c14923463ce 100755 GIT binary patch delta 1050 zcmZ8gYiJZ#6ux&d$xb$#y^}=LnrLFV2C@;!s@OzFYHY0iv0$iCkm9dOtP-`7SqUO; z?d)Q%lfW*QiUh$?z#c-!kP2k@0{<< znRD+Xd6HM3n~aRkeV-v%KkU19%Os>fty4TDPgU1{m4|M^iCu6Ww`iGG{w{TB^n zoG*n&Y<|BixJz?`t>edB836sg_%E|O)x-H82v5M)ubrwMMs*~CbDcUoGpAESJLyTe zkcOxuH_`=kgY2W#v{??)72$S+5a+GV_J0E)9ygwm{Qq1o_w+`PkfX3lSh}2$ZkRQX z#Yg2A+U(e*52{R^WwQM@0omCh@u0EK=~2=r$tGz2DfwvipJ2r;{cPV>*xy6_DNPMH zC&G2zJE-0RWO#iAWO~2)NM)X^^Lh#-^|s3qZBFYN?5$ArOE*e{&1;-tJ@JZ(7O<}$ z=LwY3yatuEfF*SJ3q_dFNE_#H#AC9)Xin@U+O$F}aTC6OmF{jMqKosy3o*>Zzu>$} zDxu3>8VguI*^Sm#dzKZ+R$4ZT|D__kS^SvtJEM)+TGS3`s`db=T!aU_lmcMAUI0gh zy}dwg2M;)JwY|miTG2x5PBA2-&{>=8?ba5SxDFz_$?9hDW}T2&(Ar_wT0gVIpNbDz zQ5OGAW%sbeKsu~PDZQIMUR`WDmRJlq^{^;H|Dz~VFI?9#7eu~KIb z59Fd|wm|`Ew<@REtKC)PKnFK^O-wO-TYbhP4%ZvRTikWTjc}t=__H-gb8T*jrhJ+w z3gIqLAu*hNUdR>xk(KBhy*|T-Hn*U1cNv6LW^c*2I2scZF|wC0pg|%p(K>1Pm(e4# z&A%kQ$3Khu9^q2&n|ve>mo1`$@>W@j4yJz$w9u+1^^cT66&@1z#!qyPI34ou^6Aqe z;5&us%Jw{H*IfBs`a$_SjV9$C^LXqKG}mVsWNf0Cti#RgFSci1V|eZ+pLAS4b;!VXmsnX9Py0Nv^;4*&oF delta 1037 zcmZ8gZAcVB7@k?zZcn${Jqt>$G@C@vl1`=1tyJmdEe)q_vU7UBuKLF z#XUny|3ndt-KU-msR*@)Bn&ev=*Z4rlceUv90?Wvd}IleeeF6C+XrOGxNip!ZTPdn zaZE5B6_Zy@rh>ekeu%E?Xd$E*!c%~qJ7%h{gz6@fK{Jh9n4>p31`p%wtOUETkL|(5 zxR$lyY+S~Aak;x%Ldf_fDrYwWq3?@svx2XQMB?*P2SQx{2jJ#hgqi``a>XBEnZjb< z4;#3mxtgk+4Fgr~4AM76ZAL4%ehjVv&+wdo$eYEvw)($)`Skt;)SvMz1kLaeQM7{m z9AJ`lW}2y1s|{r&#a!#iw1}-n77>jbwEcRP=80u!y5jHQk>iTLo3DqxMX?;HEepJMCrAkoku8%GP_5HI3?8;xfSEN! zHhu{wQrVM~675+kScbr-)#(SdeM;aV2(dctsN!EMBII*u&3cY@NC{lyx=Zsa{tG<2 zMG16<+@crbkx)`PKAqfkMLg-hyT~=hJ#EGk?Lt$EE94}ok(<5GRHD_tO@om z8jelyESeUngpQ%haW-tv!eM6F_u{LpI&HNO42DjoWntSWJlRw6QFbN06!)`N=^eN~ z)F7|J8_W0?kPc?|AbmaAS06EUfs&5s^ILgQA3w{O&u6v`Dq|!4W4R diff --git a/com32/sysdump/Makefile b/com32/sysdump/Makefile index bffee3a..98e7f15 100644 --- a/com32/sysdump/Makefile +++ b/com32/sysdump/Makefile @@ -16,12 +16,15 @@ ## topdir = ../.. -include ../MCONFIG +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/com32.mk -include $(topdir)/version.mk -LIBS = ../libutil/libutil_com.a ../lib/libcom32.a $(LIBGCC) +LIBS = ../libupload/libcom32upload.a LNXLIBS = ../libutil/libutil_lnx.a +CFLAGS += -I$(com32) -I$(topdir) + MODULES = sysdump.c32 TESTFILES = diff --git a/com32/sysdump/acpi.c b/com32/sysdump/acpi.c index 8671fc8..5022233 100644 --- a/com32/sysdump/acpi.c +++ b/com32/sysdump/acpi.c @@ -18,7 +18,6 @@ #include #include #include "sysdump.h" -#include "backend.h" #include "rbtree.h" struct acpi_rsdp { @@ -151,7 +150,7 @@ static const struct acpi_rsdp *find_rsdp(void) return scan_for_rsdp(0xe0000, 0x100000); } -static void dump_table(struct backend *be, +static void dump_table(struct upload_backend *be, const char name[], const void *ptr, uint32_t len) { char namebuf[64]; @@ -171,7 +170,7 @@ static void dump_table(struct backend *be, write_data(be, ptr, len); } -static void dump_rsdt(struct backend *be, const struct acpi_rsdp *rsdp) +static void dump_rsdt(struct upload_backend *be, const struct acpi_rsdp *rsdp) { const struct acpi_rsdt *rsdt; uint32_t i, n; @@ -196,7 +195,7 @@ static void dump_rsdt(struct backend *be, const struct acpi_rsdp *rsdp) } } -static void dump_xsdt(struct backend *be, const struct acpi_rsdp *rsdp) +static void dump_xsdt(struct upload_backend *be, const struct acpi_rsdp *rsdp) { const struct acpi_xsdt *xsdt; uint32_t rsdp_len = rsdp->rev > 0 ? rsdp->len : 20; @@ -231,7 +230,7 @@ static void dump_xsdt(struct backend *be, const struct acpi_rsdp *rsdp) } } -void dump_acpi(struct backend *be) +void dump_acpi(struct upload_backend *be) { const struct acpi_rsdp *rsdp; uint32_t rsdp_len; diff --git a/com32/sysdump/backend.h b/com32/sysdump/backend.h deleted file mode 100644 index f2b3bc2..0000000 --- a/com32/sysdump/backend.h +++ /dev/null @@ -1,55 +0,0 @@ -#ifndef BACKEND_H -#define BACKEND_H - -#include -#include -#include -#include -#include "serial.h" - -/* Backend flags */ -#define BE_NEEDLEN 0x01 - -struct backend { - const char *name; - const char *helpmsg; - int minargs; - - size_t dbytes; - size_t zbytes; - const char **argv; - - uint32_t now; - - int (*write)(struct backend *); - - z_stream zstream; - char *outbuf; - size_t alloc; -}; - -/* zout.c */ -int init_data(struct backend *be, const char *argv[]); -int write_data(struct backend *be, const void *buf, size_t len); -int flush_data(struct backend *be); - -/* cpio.c */ -#define cpio_init init_data -int cpio_hdr(struct backend *be, uint32_t mode, size_t datalen, - const char *filename); -int cpio_mkdir(struct backend *be, const char *filename); -int cpio_writefile(struct backend *be, const char *filename, - const void *data, size_t len); -int cpio_close(struct backend *be); -#define MODE_FILE 0100644 -#define MODE_DIR 0040755 - -/* backends.c */ -struct backend *get_backend(const char *name); - -/* backends */ -extern struct backend be_tftp; -extern struct backend be_ymodem; -extern struct backend be_srec; - -#endif /* BACKEND_H */ diff --git a/com32/sysdump/cpuid.c b/com32/sysdump/cpuid.c index 372a70d..e7fc576 100644 --- a/com32/sysdump/cpuid.c +++ b/com32/sysdump/cpuid.c @@ -8,7 +8,6 @@ #include #include #include "sysdump.h" -#include "backend.h" struct cpuid_data { uint32_t eax, ebx, ecx, edx; @@ -29,7 +28,7 @@ static void get_cpuid(uint32_t eax, uint32_t ecx, struct cpuid_data *data) #define CPUID_CHUNK 128 -void dump_cpuid(struct backend *be) +void dump_cpuid(struct upload_backend *be) { struct cpuid_info *buf = NULL; int nentry, nalloc; diff --git a/com32/sysdump/data.h b/com32/sysdump/data.h deleted file mode 100644 index deacf72..0000000 --- a/com32/sysdump/data.h +++ /dev/null @@ -1,2 +0,0 @@ -#ifndef DATA_H -#define DATA_H diff --git a/com32/sysdump/dmi.c b/com32/sysdump/dmi.c index be4cce4..ce25efa 100644 --- a/com32/sysdump/dmi.c +++ b/com32/sysdump/dmi.c @@ -6,7 +6,6 @@ #include #include #include "sysdump.h" -#include "backend.h" struct dmi_header { char signature[5]; @@ -60,7 +59,7 @@ static bool is_smbios(size_t dptr) is_old_dmi(dptr+16); } -static void dump_smbios(struct backend *be, size_t dptr) +static void dump_smbios(struct upload_backend *be, size_t dptr) { const struct smbios_header *smb = (void *)dptr; struct smbios_header smx = *smb; @@ -82,7 +81,7 @@ static void dump_smbios(struct backend *be, size_t dptr) write_data(be, (const void *)smb->dmi.tbladdr, smb->dmi.tbllen); } -static void dump_old_dmi(struct backend *be, size_t dptr) +static void dump_old_dmi(struct upload_backend *be, size_t dptr) { const struct dmi_header *dmi = (void *)dptr; struct fake { @@ -108,7 +107,7 @@ static void dump_old_dmi(struct backend *be, size_t dptr) write_data(be, (const void *)dmi->tbladdr, dmi->tbllen); } -void dump_dmi(struct backend *be) +void dump_dmi(struct upload_backend *be) { size_t dptr; diff --git a/com32/sysdump/main.c b/com32/sysdump/main.c index d0d40a7..f672585 100644 --- a/com32/sysdump/main.c +++ b/com32/sysdump/main.c @@ -19,8 +19,7 @@ #include #include #include -#include "../../version.h" -#include "backend.h" +#include #include "sysdump.h" const char program[] = "sysdump"; @@ -32,7 +31,7 @@ __noreturn die(const char *msg) exit(1); } -static void dump_all(struct backend *be, const char *argv[]) +static void dump_all(struct upload_backend *be, const char *argv[]) { cpio_init(be, argv); @@ -50,20 +49,20 @@ static void dump_all(struct backend *be, const char *argv[]) flush_data(be); } -static struct backend *backends[] = +static struct upload_backend *upload_backends[] = { - &be_tftp, - &be_ymodem, - &be_srec, + &upload_tftp, + &upload_ymodem, + &upload_srec, NULL }; __noreturn usage(void) { - struct backend **bep, *be; + struct upload_backend **bep, *be; printf("Usage:\n"); - for (bep = backends ; (be = *bep) ; bep++) + for (bep = upload_backends ; (be = *bep) ; bep++) printf(" %s %s %s\n", program, be->name, be->helpmsg); exit(1); @@ -71,7 +70,7 @@ __noreturn usage(void) int main(int argc, char *argv[]) { - struct backend **bep, *be; + struct upload_backend **bep, *be; openconsole(&dev_null_r, &dev_stdcon_w); fputs(version, stdout); @@ -79,7 +78,7 @@ int main(int argc, char *argv[]) if (argc < 2) usage(); - for (bep = backends ; (be = *bep) ; bep++) { + for (bep = upload_backends ; (be = *bep) ; bep++) { if (!strcmp(be->name, argv[1])) break; } diff --git a/com32/sysdump/memmap.c b/com32/sysdump/memmap.c index 251107d..929873f 100644 --- a/com32/sysdump/memmap.c +++ b/com32/sysdump/memmap.c @@ -7,7 +7,6 @@ #include #include #include "sysdump.h" -#include "backend.h" #define E820_CHUNK 128 struct e820_info { @@ -16,7 +15,7 @@ struct e820_info { uint8_t data[24]; }; -static void dump_e820(struct backend *be) +static void dump_e820(struct upload_backend *be) { com32sys_t ireg, oreg; struct e820_info *curr; @@ -63,7 +62,7 @@ static void dump_e820(struct backend *be) lfree(curr); } -void dump_memory_map(struct backend *be) +void dump_memory_map(struct upload_backend *be) { com32sys_t ireg, oreg; diff --git a/com32/sysdump/memory.c b/com32/sysdump/memory.c index 6552e7f..377f9a9 100644 --- a/com32/sysdump/memory.c +++ b/com32/sysdump/memory.c @@ -7,7 +7,6 @@ #include #include #include "sysdump.h" -#include "backend.h" static char *lowmem; static size_t lowmem_len; @@ -29,7 +28,7 @@ void snapshot_lowmem(void) } } -static void dump_memory_range(struct backend *be, const void *where, +static void dump_memory_range(struct upload_backend *be, const void *where, const void *addr, size_t len) { char filename[32]; @@ -38,7 +37,7 @@ static void dump_memory_range(struct backend *be, const void *where, cpio_writefile(be, filename, where, len); } -void dump_memory(struct backend *be) +void dump_memory(struct upload_backend *be) { printf("Dumping memory... "); diff --git a/com32/sysdump/pci.c b/com32/sysdump/pci.c index 1d68727..9c23a84 100644 --- a/com32/sysdump/pci.c +++ b/com32/sysdump/pci.c @@ -7,9 +7,8 @@ #include #include #include "sysdump.h" -#include "backend.h" -static void dump_pci_device(struct backend *be, pciaddr_t a, uint8_t hdrtype) +static void dump_pci_device(struct upload_backend *be, pciaddr_t a, uint8_t hdrtype) { unsigned int bus = pci_bus(a); unsigned int dev = pci_dev(a); @@ -31,7 +30,7 @@ static void dump_pci_device(struct backend *be, pciaddr_t a, uint8_t hdrtype) cpio_writefile(be, filename, data, sizeof data); } -void dump_pci(struct backend *be) +void dump_pci(struct upload_backend *be) { int cfgtype; unsigned int nbus, ndev, nfunc, maxfunc; diff --git a/com32/sysdump/sysdump.c32 b/com32/sysdump/sysdump.c32 index 2930498b46da32e8865eb159dcc7da022daa4bc8..0e2a172fbf34bc7fb72135a98fbad4a22b755d6a 100755 GIT binary patch delta 7150 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 diff --git a/com32/sysdump/sysdump.h b/com32/sysdump/sysdump.h index a5b963f..72e4875 100644 --- a/com32/sysdump/sysdump.h +++ b/com32/sysdump/sysdump.h @@ -1,15 +1,15 @@ #ifndef SYSDUMP_H #define SYSDUMP_H -struct backend; +#include -void dump_memory_map(struct backend *); +void dump_memory_map(struct upload_backend *); void snapshot_lowmem(void); -void dump_memory(struct backend *); -void dump_dmi(struct backend *); -void dump_acpi(struct backend *); -void dump_cpuid(struct backend *); -void dump_pci(struct backend *); -void dump_vesa_tables(struct backend *); +void dump_memory(struct upload_backend *); +void dump_dmi(struct upload_backend *); +void dump_acpi(struct upload_backend *); +void dump_cpuid(struct upload_backend *); +void dump_pci(struct upload_backend *); +void dump_vesa_tables(struct upload_backend *); #endif /* SYSDUMP_H */ diff --git a/com32/sysdump/vesa.c b/com32/sysdump/vesa.c index 017f9e4..42adc3d 100644 --- a/com32/sysdump/vesa.c +++ b/com32/sysdump/vesa.c @@ -1,10 +1,9 @@ #include #include -#include "../lib/sys/vesa/vesa.h" -#include "backend.h" +#include #include "sysdump.h" -void dump_vesa_tables(struct backend *be) +void dump_vesa_tables(struct upload_backend *be) { com32sys_t rm; struct vesa_info *vip; diff --git a/com32/tools/Makefile b/com32/tools/Makefile index e34296b..7badabd 100644 --- a/com32/tools/Makefile +++ b/com32/tools/Makefile @@ -10,8 +10,8 @@ ## ## ----------------------------------------------------------------------- -topdir = ../.. -include $(topdir)/MCONFIG.build +MAKEDIR = ../../mk +include $(MAKEDIR)/build.mk BINS = relocs diff --git a/core/Makefile b/core/Makefile index 33ad7e9..112fe3a 100644 --- a/core/Makefile +++ b/core/Makefile @@ -20,7 +20,8 @@ MAKEFLAGS += -r MAKE += -r topdir = .. -include $(topdir)/MCONFIG.embedded +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/embedded.mk -include $(topdir)/version.mk OPTFLAGS = @@ -109,7 +110,7 @@ ldlinux.bss: ldlinux.bin dd if=$< of=$@ bs=512 count=1 ldlinux.sys: ldlinux.bin - dd if=$< of=$@ bs=512 skip=1 + dd if=$< of=$@ bs=512 skip=2 codepage.cp: ../codepage/$(CODEPAGE).cp cp -f $< $@ diff --git a/core/diskboot.inc b/core/diskboot.inc index 68672e4..141986e 100644 --- a/core/diskboot.inc +++ b/core/diskboot.inc @@ -278,7 +278,7 @@ Sect1Ptr1 equ $-4 cmp dword [ldlinux_magic+4],LDLINUX_MAGIC^HEXDATE jne kaboom - ; Go for it! This also normalizes CS:IP. + ; Go for it! jmp ldlinux_ent ; diff --git a/core/diskfs.inc b/core/diskfs.inc index fc80a15..41391e7 100644 --- a/core/diskfs.inc +++ b/core/diskfs.inc @@ -30,8 +30,8 @@ LDLINUX_MAGIC equ 0x3eb202fe ; A random number to identify ourselves with ; This indicates the general format of the last few bytes in the boot sector BS_MAGIC_VER equ 0x1b << 9 -SECTOR_SHIFT equ 9 -SECTOR_SIZE equ (1 << SECTOR_SHIFT) +MIN_SECTOR_SHIFT equ 9 +MIN_SECTOR_SIZE equ (1 << MIN_SECTOR_SHIFT) ; ; The following structure is used for "virtual kernels"; i.e. LILO-style diff --git a/core/diskstart.inc b/core/diskstart.inc index 02505a6..b2ef2b6 100644 --- a/core/diskstart.inc +++ b/core/diskstart.inc @@ -23,6 +23,14 @@ Sect1Ptr1_VAL equ 0xfeedface %include "diskboot.inc" ; =========================================================================== +; Padding after the (minimum) 512-byte boot sector so that the rest of +; the file has aligned sectors, even if they are larger than 512 bytes. +; =========================================================================== + + section .init +align_pad zb 512 + +; =========================================================================== ; Start of LDLINUX.SYS ; =========================================================================== @@ -110,13 +118,15 @@ ldlinux_ent: ; Checksum data thus far ; mov si,ldlinux_sys - mov cx,SECTOR_SIZE >> 2 + mov cx,[bsBytesPerSec] + shr cx,2 mov edx,-LDLINUX_MAGIC .checksum: lodsd add edx,eax loop .checksum mov [CheckSum],edx ; Save intermediate result + movzx ebx,si ; Start of the next sector ; ; Tell the user if we're using EBIOS or CBIOS @@ -132,6 +142,7 @@ print_bios: call writestr_early section .earlybss + alignb 2 %define HAVE_BIOSNAME 1 BIOSName resw 1 @@ -140,8 +151,9 @@ BIOSName resw 1 ; Now we read the rest of LDLINUX.SYS. ; load_rest: + push bx ; LSW of load address + lea esi,[SectorPtrs] - mov ebx,TEXT_START+2*SECTOR_SIZE ; Where we start loading mov cx,[DataSectors] dec cx ; Minus this sector @@ -157,7 +169,7 @@ load_rest: xor bx,bx call getlinsec pop ebx - shl ebp,SECTOR_SHIFT + imul bp,[bsBytesPerSec] ; Will be < 64K add ebx,ebp add si,10 jmp .get_chunk @@ -170,9 +182,11 @@ load_rest: ; by the time we get to the end it should all cancel out. ; verify_checksum: - mov si,ldlinux_sys + SECTOR_SIZE - mov ecx,[LDLDwords] - sub ecx,SECTOR_SIZE >> 2 + pop si ; LSW of load address + movzx eax,word [bsBytesPerSec] + shr ax,2 + mov ecx,[LDLDwords] ; Total dwords + sub ecx,eax ; ... minus one sector mov eax,[CheckSum] .checksum: add eax,[si] @@ -260,7 +274,7 @@ getlinsec_ebios: add eax,edi ; Advance sector pointer adc edx,0 sub bp,di ; Sectors left - shl di,SECTOR_SHIFT ; 512-byte sectors + imul di,[bsBytesPerSec] add bx,di ; Advance buffer pointer and bp,bp jnz .loop @@ -350,7 +364,7 @@ getlinsec_cbios: jc .error .resume: movzx ecx,al ; ECX <- sectors transferred - shl ax,SECTOR_SHIFT ; Convert sectors in AL to bytes in AX + imul ax,[bsBytesPerSec] ; Convert sectors in AL to bytes in AX pop bx add bx,ax pop bp @@ -418,10 +432,10 @@ safedumpregs: rl_checkpt equ $ ; Must be <= 8000h -rl_checkpt_off equ ($-$$) +rl_checkpt_off equ $-ldlinux_sys %ifndef DEPEND - %if rl_checkpt_off > 3F6h ; Need one extent - %assign rl_checkpt_overflow rl_checkpt_off - 3F6h + %if rl_checkpt_off > 512-10 ; Need minimum one extent + %assign rl_checkpt_overflow rl_checkpt_off - (512-10) %error Sector 1 overflow by rl_checkpt_overflow bytes %endif %endif @@ -434,8 +448,8 @@ rl_checkpt_off equ ($-$$) ; alignz 2 MaxInitDataSize equ 96 << 10 -MaxLMA equ TEXT_START+SECTOR_SIZE+MaxInitDataSize -SectorPtrs zb 10*(MaxInitDataSize >> SECTOR_SHIFT) +MaxLMA equ LDLINUX_SYS+MaxInitDataSize +SectorPtrs zb 10*(MaxInitDataSize >> MIN_SECTOR_SHIFT) SectorPtrsEnd equ $ ; ---------------------------------------------------------------------------- diff --git a/core/head.inc b/core/head.inc index 18ce132..71eb574 100644 --- a/core/head.inc +++ b/core/head.inc @@ -20,8 +20,8 @@ %ifndef _HEAD_INC %define _HEAD_INC -%if __NASM_MAJOR__ < 2 - %error "NASM 2.00 or later required to compile correctly" +%if __NASM_MAJOR__ < 2 || (__NASM_MAJOR__ == 2 && __NASM_MINOR__ < 3) + %error "NASM 2.03 or later required to compile correctly" %endif %include "macros.inc" diff --git a/core/init.inc b/core/init.inc index e06ca96..8c6a178 100644 --- a/core/init.inc +++ b/core/init.inc @@ -69,9 +69,15 @@ check_escapes: shr edx,10 cmp ax,dx jae enough_ram - mov ax,dx mov si,err_noram mov cl,10 + push dx + div cl + add [si+err_noram.need-err_noram+2],ah + cbw + div cl + add [si+err_noram.need-err_noram],ax + pop ax div cl add [si+err_noram.size-err_noram+2],ah cbw @@ -83,15 +89,15 @@ enough_ram: skip_checks: section .data16 -err_noram db 'It appears your computer has less than ' +err_noram db 'It appears your computer has only ' .size db '000' - db 'K of low ("DOS")' - db CR, LF - db 'RAM. Syslinux needs at least this amount to boot. If you get' - db CR, LF - db 'this message in error, hold down the Ctrl key while' - db CR, LF - db 'booting, and I will take your word for it.', CR, LF, 0 + db 'K of low ("DOS") RAM.', CR, LF + db 'This version of Syslinux needs ' +.need db '000' + db 'K to boot. If you get this', CR, LF + db 'message in error, hold down the Ctrl key while' + db 'booting, and I', CR, LF + db 'will take your word for it.', CR, LF, 0 section .text16 ; diff --git a/core/isolinux-debug.bin b/core/isolinux-debug.bin index ef1c75960730b79e64fccb23d0483a191ab90f08..50d5106eb00c51fdad50466b004175c369f78622 100644 GIT binary patch delta 8401 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 PPbu@Rlc%EcMq&R0Ii!d7 delta 8649 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 j%;eQ85l8!$i@*jw;cg!fwxvp+yNTlq= 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 H)&Tqu0?vYJ diff --git a/core/ldlinux.bss b/core/ldlinux.bss index 2fde94bfe1522e4051efacf0bd428d65bfa5fa99..884c5a8e5cebb8ea1558f89479e7684b05194637 100644 GIT binary patch delta 30 lcmZo*X<*r)#wgVAf{!7s(N3npI4z){wB+RvrpXqJCjgg@3gQ3& delta 30 mcmZo*X<*r)#wb+xf{!7s(N3oB{5rYf(vp`y7$#dVo&W%#fD4fT diff --git a/core/ldlinux.sys b/core/ldlinux.sys index 7d78187745c16f3147c47e333214a4c952aca1e9..cee0f82ffadde50dacf85f68532a10d6fe309470 100644 GIT binary patch delta 12399 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 Im;u250Vyqo-v9sr delta 12389 zcmZX430M=GdCLD{r821P|kSQG^eT84;KN39#~ zTE(R*pinh}QP8#ug0;TYTB=qjMynP@5GCKl_kI8W|DGS7+;f+6?sD!q=bm%t{xt|) z7=)@UIVqVbve<+)g>Z_0z!V{{1d1^E)R@ zdAbPzQsRis+^qnBx0XIcK0wKD>_~Su`Eh&;eAE8Gp}?bv+Uuqb_CxLz1Yn)dIYGT8 z4tTHb;^{M-p*JAkd;8EED8iHc*Ly?PJBkHud}5UC7PcBwezf2N@}vVc@ACOorwvVQ zueW&*AIFqGGN|fp4k{YCV;tG(dKMzTa(ird8C)7XB<*OD-XJU8ifJT^n9K3BG@c<> zpk0i^fq-f!zTpJgT~hryM3o`l+5@1*WV%|?*F?S~9&kLWE~$i#)Hz7rZ7$;U!N zzKQg6HsqMhN zIPad!bj=7*aWj&1)WkfFWag?lr-kHvAwEWK5#|`X$r_=tIN(X0$Kk->fZ_&~fT*#E ztMU+%N}f@Wq1$tY^b~5%!YCA)S?(m%QEL$hb2GZ=fa;QD3v&(Mk7+`lP?NIJwVxq} z-83P;B~zQwG-&v0Oov>fR@@HYLF}-ROWty;F@Z~}-hhrKiuiJHY&xc7F{!C;w$C{c zEG!!pcBtqlf{8e;!1ce2%Kcw!nq%+XlTOhRtGMICdbCzZ&)^}CI!ip{ZZebVFGGji zY6sBZpcXHMC^C=W1 zrtIWU6FFx$m$&vLz_d*5w0(gXj&wyJK%+-$Mo*kC{Z(sqCmFp#EmU}xyy&V6jwR2z z>Y`c-#C&E<4w~7D_cnwPwh)Ok5|lKRJN*KVkWEYfhr~ib_c5e$Rv9lb*w+A-nCYJ z$y5i}SSDG)BijkRWiXt7mVm6VDy1NY?BtLS_=X=xbwg*!Iv2yo(R3x?Gf4@j9aKy2 z=U~b;W=@9)YDNIUTk~klqb6hwN^9b+{dFu|OYu)PaJJn73?4Es>kmhdu1J%R{E?-d zb|8@Kb-WCQJ?iPv)c&jv7M8wE)EUq6&T${xXG9GiQ9BV&t?t6*X9*oI7=0+nL5Eb9 z7aF!EbzNAuPcGKLsEfkIyG9!EW<95m~4K415*W^w~jY?BEg#LqU9xG9?` zmCn>vgA3edf@3>{Rb|u80XkVT5oPO9)z+-c+hmk%CL0|n-AQoROzt;lA{{V%m^|n} zVh)C9Lm!k2>ZCX3N{2Q)+|Y&b&U)-Sg>^ITw18?mF!~Ww{$@pu?8qY#o5vPr4u?44 zx5yv|(_^y9mRtbL>DzI``uZpV`QktDA!}Gq&IW|hmdCj@&iHOvUmeogOdx{ERjtiH zZA*@_gdJ*DokvUa7^AhhF3MTIkIGuLHX8>=Ka#0}9x7cpu4mMh!Q00>isgM=e{;j{ z8?NDhkx|x~VfSKK+Cf0~P2VnRHgt`R=)0qw-9dMh1A=r%38Y|s0)Ksuq&o`PccwcE z9BLibZ^)5oOZjBnxCQ^sQ&LIZu~jpYK)=~5lmTbX7@`=43Bcg z6CChT==s(ka-lkS!yq&*5)`CX~_9sxO!+v=S zYoOjExrNBK!>V3T<7lGT<5y|NAGo9UTw)3K5a`Nc5q`LS@MbT10}9kbjVFg^2voZ9^I5W0H)c_ zbTbYFo@6n~c3CwCTpaa9775;8=nD?8(e6vno z1{X=(n(QCNE(2f>Fh!2E@50t?WUnQr`&>a8HOln2)2YLrJYb2{gaCfqnCzz7sX7GV zqiS1he_*h*13P%9h4LsUT*Hpfg1ASZd)rKIA15$y2N|Dr)NBk$8}M249f+!NC_)XB zKpYz91#yX+;}Reb!r37iesG>Ba`3N;=cZFiO*W6@kV8B&9Z^~4k?WA)@hV0zO$E=> z>jGOYET}WmF7$1ac5Jw}q2vEk4${@u^!VSVmA7{OTf@3HW(Pvrchi=1`#>JG!R8sf z7`pyea>%AS1x(~GTf zs(^nX?ZBhqx@bn|-2WPZm27FpTzyJ<216SX(L&63jE988X-APuM2q%|{}_sYSQ5~0raHt9Prua_CA z1ONF9W;f%>jD#J8(%Bik#4);Rr`5~45TIKxySyR(KZoCB2D#>=>M}WrIPC0hA!|YJ zt6b#u9!V|4FU~=*tcBpaI0hxRybulq4)C^ij9nk4+@w)bWzk}N(_S5+b^T28YX6kr z4>K5(g4NCq8T1!NA=QIfpOt04OCX(Yv2o)@Vz*1Zhpa_&#oVe!<|rC}Vq~;|NgF!+ zwIP#&{k8V8mKRO_pNV9yQO+B8QSx+L)4_T)a=8O)XZ^Qe9*{WYdZ4Q1{N=03l%b>! z_shY-0Ucx4n#MXFjbi($v-@CRuzm*PNiuJZjCSxz@@3>2DI2BE6rjJ%`hyG`t$D@% z0}ts-ri#zVNmP;b3=g@JOqn<`8ILh}M<7Gb%t09Hn#CVjfC(n%V*4zOpm|1z`EhIitEG3IZ z$ekm_-dGB`Vx*Ww&Kn`MBa|7tU;T{N@eHX8Np7k8qvo;2Yur`dLhKW|*(9{cH6~ga zP^NeM~T>q zPS5%{OgU~jdWu%s(T;Eio5-c0WR!gT-emPCS^dwy*_cF8(J01NhXls~m8}kLZfAaW z4C2UI#%IR>AD+PKIf(SM1D1CuHJ>Jo8k+DGxhza=A5IXe~Y)mQ;rjBB^lQI zla%c>e!`$047#Pi&~=h{DRJa~YB9788ZN!1*wBsu@)%+7?iE}8w)h6Q?k%;dx)8rs zMmq@D&`B9~{9m00v$M?XV)(a0LyXYYkCbHeQ#q=rieX%$@UC3~pq?TMxNmMJzIM-s zmJ@%ui(%@F;dtag^N0eEDCh`r+9TR*szy9KEhe_M!Tg*2E;GKbr_fv-?>Wvjv=wwQ zx{{gX+fUd$%6Y=_PUjjCDiv0Tgtj)X@w9-xpmcd2*2vV$Pc%{9#s`HSllx=)D_i}s zgAuKmVw5VoGS*)=TlU?Gp{uakJv~V`yOp@=C0bnBiup1qEX^=d%*K?75Ov)5jWFFX z1*MGnmzEybS;;0NM2A7_}N9`^Ax1JpO!4Aj1oz~*C=BU%LZ90Nd)?Waly zi-6uAGf}aIe+{Fym3-lkY3!?8r#+`U2SC1mjqUdTELgXF*E{|%FLuMD4bOG!TFH77 zSx%Jtxx>!=M5Et$M^m4f5`aY@RcZDtOjCEB0YFJ@%56WdRLY|P?c??UFnC-)6zL7C zpixtrKX&2nKBJKG2+T?ddQW@(TPIJmc;KGao${LjPMRKn_=tbbKX=)0?l_NkP9+gu zNZ#KZKVb)qn$->e)%&0J`PASIYhF^t!NaD3h6DEB15k4%?-aodSPWA@6)?+Q`NhQm z09}*<=n2#ToFF0eBeZAo!8Z_0{5;7ezi>fGiBP4Sw^SGq5D+I^h6xLol?lB>5s4`x zZ%a;cSiHYbm{L(vSg=%GE?l}`L4JvFo=RA_U|xxeqAQ?EOO~mZQu$@V`OB86DC}5F zSg}kkT)04G$@z>yL{IjQx8#_c3zjbQ6V6+jFN_tI6%-ZQu6|NG8qQh-!CAz;b`X&})#`M53kTU)TcV(Y4{6g z>M1KC-mXWMELbwrt%1H=U9dpq)4(iPTA(V7|Gy_%h#!a>#H20hTb6Dy z*EDQNI=XAixzG8s%^h31wh$MmR#Q&c%xTBqvi;5Ev=FH3hrOy@GpNnowAXZxxpVfO z$$Jj%2)YKqmPSd=FL#3DqW5?t@EoUZyu>+I$FyVJc z9wu}5$lGjt8C3nxEy`X1?l<0>_KpEjaLbthitc`+?K%k1D7c^p0tf|nv%X89S5cYu zX9gS?6ilAPU@$2dy|t@@MZuquHw*wm_o}AbKf6Z_kl6uI6Rq1TJE|N2AaTzp={<+5 zRQ-)fkMCShe%E-cH|f>S6l~9Vd4a{B$Q{rnE)1B9*rVi+COW__tlngJ+C)T7 zk8#*_0D$A#=(p~_S_uIj{T4fpU8p-?_?kF8JuTo|osCRDMO4?#2i{@4Q}ZWn@DO&P z`GDcovDYU2^-(L%-0Ym(Mm=@b0B|sZ@R@-^G0n0W4FX2>C}_CE=5n;=iX<|5^J4Zx{B>y-0NWYJ-G;DK^6$v}wAdsE#!H9p z$ZW7BijiXEXcY+gl(_k&r`-`s+EU1`AYhV9_Qvv+WhtrTUj#d}t7=|;-N~=hAedwM zhMQe(3m-Gxw&bv46J8eVFv$T^J4a{=XOZ?1V7U@uN_e&ZDBuN41oLKv` z&FmQRQ~w67!dbzHPeT-dXN02b$5nrrs2awHYx~qpL&5SbuPl)|))l%%ZC}GONJXDZ zQ@`lqOvGOiiZB=Zn(t~8xY`mcyC_x?R3?Ywg%+{)I|yx&u+%UVw8oTySVYtB~uTI%{cOvpyFA|T0nIEiketBF6u?5ms@NsR7! z++GFrorr~hNS~Gzz@S(0vIG!y#c_OghvDoj1R6eU<-nT3Gfh+>U0`BpLp-ESmGH^1 zz}#wD7ueiDRzxroX4ZV9&%_ga4b>?jcn;FabfHTT$a(X;uhVaes(JQ!!1*=(A-I2(mBQ-DcBH5jv;DVROo0^&$BBA8H#?Y+boiyov*1@b*OIb!* zJ_mYDejLqZ-Xq^-0!^YdP_egK+%334ZlR^z)m#;9*$Cl-hQXMrJBvdZ7nibGP%oMO z$z)pFQDOUiUU#^p$kIX+=M`%7z^`Cue>hL)q9?C>5qFq zK;Ega8GsIaoNrMcjD8aKJy0UOvlsVqYp&F>XvHkeYA!2rXD^w2$PPe8YwBVIpRBdf zCUfx=>Lw$O`5 zfOr)VX}>d2o5?Ovut5x@3}e^Fz;KuVX(VPx20G43!($MS?CG;4*Zo3MX)F!NH_S>+ zN?%Isiu8?VL_fx3xS^b!G<+7?H_`AeVoO9JD?LSeAAi{SlwQ+S%+^LJSTU(gnwp~t zq^arTt$8~_S=Nl#YD2hY6jt}k7^l2&J$lb4jIfPbY?Zb2H=0~IA*He`+k-BVjsSB&|qlm8|xqMcIG@4Q!Ru}e+muxPfnafmh)nQPeS?J>ij zgw~0yg!N*)Tu!M#T^zjB%sF-Ov~hIBS?t#-NhuHv%$EhQWB3vA;Xi zLq=Q8?w6paC!{cVhp!+LE^^Rcz93G<_)OR)DgLvU2T=-@zio(w7s3P5KChXO($cnY zm9K-&7pKCJFZB3r=r@)~P9U)r2?5hkZ?OcOENW1Up>1K@z8N_VB^LNSe58MX7WpCu zai20ZtAXBy_ctU%?VMZzdC(vI+cU+A{S`;NdNN5gLe5q+`}XY1AZJ$%@l$M!4=t8e zOh(7E@RW}eOD8NYRB(2F-T#QKh!u+?(-BluBg~yW6E~zg-y&wtme|W@vhmmWL)?ge z!n+NBWiaX)wP*!VHhZT1w-eHLjth*o;jOK#V5Rab0@E$g;n~EGv;E*dXSxZ9+{n zA_POCseyd;t1|YnblyQGIZgC{;L4oRC{wmnT$z<|Qe&Xsiz}OLY}STt3`326g3d>1 zaa6byu$<+|$2s~aWZ4mX7Q!V_fiGhgi+3*ELNmZmy5R^ve1y=8k$H5CDdlK7UQHyu zh!rw-=o@06>`R(qS~~GaHUnnq3AcDR;pxnTDb^r7TVPmK{qu59ggHbGp=nT@%D+P= zzl5d{Iq@RryOAnC7He^-weHJw2pwZmgI)Pe)Xws{YxO6wJ6-~<_|5cLUDAZOxof*3kQJWdF;_*qf8Xjh?O%STBD z;h*SE50a;#rGz5U*`~(pohMAcF+P%ZItAcSEKvcmE-?T)M4V5QL#GLrygF_3iqt5< zjpNR*LQ-)3Pg&#x!^AZf-cC7_`A#c0vb0I`)3HJ})1o_+EAEu&-Iq%R${F!r@Z$rg zpyQJQv{@0+EP=#0vtf!G{`wN!DE%Z)K&KPG%O_I1Z<*vw-|UGR^9lc?(zvA(593q^ zTrcjAR!RIC#G#^hbGfP)Ni(L1UrZ{T9x*>MhhGz2;VFpDvJ^k?fwMEUi;>7lSJ22Q zKP+F=8M!deXFDkMCgo^2@g_+EZ6)lJ4^f(VA^8$Co2W?1qV8|MDH;+p-&3iAxS8q+9VOnSqRdGw zgcNyY6E0~!E>9jwFcGg-y!?wIt0PK&O0PS3jebfZEl-4tCK35*3z!+Mnd}>s^7f{A zDpusr7|9urNGir3oVb!kk|T3y_!ZzT`cR{`iyyyZ|Dwh+CP_kK@9NV71GaBM%2Fl9YxQJKv2u&b{GHx*wTs1$6 z3Z%qO3e@t(dQK7)C0Y`59t-6XBZ|q$=|xd;A|Uf5b+7U;(}C^h1Xa(x`2B1a@hLME znolIpnKSvb+g2B{mjs8Seqii zdp))*OUBVF6%6*pQ;~KX!=ScO$Ur+3c=5Ohi7tAKZc0Cz47dA&!Y6}#6$SlAa{i)rg6!V2Dx^p)Rc)5b^mpphX%5HlbH4pmzuIej5x#Qh}H zbkkzLSUV(fI-t1*(XvrYsA7ngertRxE|1A`{MZC1&B8l%;{7Y^B&Sco^y=voRUWCQ z=(7?URzvl3Ot7esD9RFlDQHS5u<8yKw@47Y*HHPZ$rL&Pohn@v=1k9XfDx^QHd7)C zNB8Xii{r7b8vix^UXkn`glOXhvGz0I1foA{iVq+Cn3D=yaCqku7!B#HhG;I?XcM|E zm);e@1jiV>^HB&Cjz~LvP7u=UAZP}$INO>2$61oJCDvz8pi81-$VG%M+X>o6{43kV zsVEg;Ytvc0?-w~VID54RFPZuw)9++ztmrzy&+&pdL{N^4tEaX4aE|wOx=5NXSX7~f z-SyuK$VN31A(HP!-3V0<>Nxd##C?l@E*;U3Ebm!`#!z%(vIET-bs$dV2;pHq(VLU+ zP?6#BCcSVDi%eO{j$-}HfK)chjq}2jh`3xo4&!n-OJtX=KxITt?w8Kb=!=<%v@b1j zZ;T?WH-XDQLiy4@GMKlaOG!M)t)R?BdfvjSpOn)8EsbmlO~q;gIfLp%>Q+iq&HxQD zieg|<1gkBLiJA_sHk+K`P)wf{^iSoR*_sa~mDl1vaeHgArL7u0yl$XzezL-mM@t*9 zjenwzM#y67(~_}Cc_Tf_=p^MrkeaW2mOopx@Jx=uDHSZ?+-4?{zEa4(qAK->g|shd zjHf}Un3#7yi4o&Rk7Y^kL!H+BVof&F`#mq|H6942)1`gTb?e^@_m}Xa*(=MyI!iT4 zJy<9U*L<)j3(?Am)HRF=I?-#PmG|9-N+MNyf9(z4R(%6v@k5sv@-0(73%ZARMtWtl z?QG$4L)|iQSLYaFy&8R%sp)ttDvehU&}TeRxex>M#&aY4pZc;R#%BkpBcllBe7CBv z+o(@_8Jjcb8rP#9th`mb(stjY18tGOw}^Xb`%>sl|6lP}w)8(2UG;42gvC>`<_xeq zd2_qNBgAXG!edqdqcfN5_u?BmZa_!aop_wbU*EjpG0<1uX#Qf9zA@LsPh1o0m(9D2 z8p5B6NfmAI@a{P^k3`kAsk>=jRn>oeV*eQRy_a0<90#S4n{F)O2Rz3@_)#T;lM~ zn;J5_s8>Gh?r_%LNh%Eqd3Mk1evfWywGy?WSCaZ~tDRYBT`QVa1EJrXU}?j+JS2sM z%URvf&ipW>4Kz%}6{ldM8@`=_eHXLX0x+jNI6*aRfOx6nyG4N zEnp>i`9s?DLOT^ev8Ez!%sbEc>}x3{J>;IR1p1)zuQ&lJCvkvMmdECukL1cT(zTI* z^cElTt3v;B=b!eG_)Xfer+Z;}JtZeoCZX&)w07sLhpVqq%z*)k=0t90T_$ zK;dcky2RAeOzMNjp(~uu0Zvd3#QR!wzOI-Zgsv&od{Rv9VnWvyESTGnB?)lvm>jij z3sYS1#0^z`ookh*Wu^mJn<&23UBo>hvHX&{GxN>{^-^H4=zHYgMIUR+!+)MjmW7Bx{{cM@~;zOt|dKSe`71r4TwL3G<; z)p+smcU6`f@8OmM=*4)HH-{uQMU0~A$*FT3g>@3^RAKfZn&@yAET=>wl--*H%j@Nq z=r;xNIEikhp194milK55#}`0Ta_oerXhzv2U8q>}=ff;C+B2ZdHVGm{#A2cYbF4xn zv)cFyJ~$|#x3OdpYE>c$kOA1s)FL^dy4eooqD`{x^C6`}20|)7h^tHK0h+5qVzpEin66y!-PIm(5MOh#4nq6ZFCJ@T^CeH} z3S~Yo<|z|IE-MAG3BAXo61=r>iz&w_e0e+^SK{PjMB-;~LqC;;Vcm44tH_4nDgB{RB1GxHk*6cKjg}>9v5d%5Is{hq z9}q2%=!!)iNZy|j^bg27I6+-%Zg;d->U8S0z{Y&;%{1>9X|Wd9kELEWq}Ji7;RUJJ z#0!bjN@w`Fj<}_CfFElJQaKH}Pq-C$TC6^~*75$%gLO+q0Yp-PBjZTY&qL@+qNqUR zpZ}D_TU#C`@(qkhYl3OJKqD+yMC_ObmL_)7E5PgqPK>9W73Y^CzTX1sxa}x#f!|Cc z{wP45+84HqtxKw?3|<)Pzfys`bQD)6kD&#QjB{ZX{xH6js65Ve0ETbV!k#lgkLnNXcQ;-9?9gry>({ zG0NI7Gb5dKnF^<7FCIUgGh96#sCXZ|ui(9UP|vAj&8oejqJAi2FNWefwjN zVfHLY^8sy_%nXGP{Go3PQEiN3JS_~fh>8d2;umJbgK-HU*d6>Ks(TexWg8fT>Q2(W4=e!> zC(H!o@6bxhKy<`Inv7G3VPhpX8e$pNbwhkZWj7==6n8_AK^XyY8;W}IH`OETGP}hx zi8Ci7r6B?mJb75`&U2`@0F0m@O%~{*axz@mIdI3NJP6tRQZZ7S^E;d#=~zVz=rb#y2NqD zcME7M(8|C{054bj8r=%N5I>FI!jL?FWzgn9>9Ao<7^GQAGn6y-^}w1B@M^kve*(S@ z8e1i8*#{A$CUTt6=ooN-kOyw3_#9Mo$3ib(B zThh0x>E(1}O96A|8L?n_oM8d2Ce$mhXZNHuKdA^I9xciC%m0B2VR+}$0PSykBipAA z5(k{f^$QG2P0wTbN?Hy=QyR3xqWQaI646~^@zQCDe`g4GWV5`))d6UIywNtZ&5si7 zIT`+$nWoBjqV~vVRU9F2D{3`CWs~kGV4)W0WD=oBe@n6oiG?J&rNT;{ZJ+~;53^sZ z?2p+Jua~BB!WXAXgq6F{W4DQfWl?OyE{_jTz$`SDXk3=eDa&&(;3wrV=+DH+vWdyp zPPj&?=VXQ>@_K|P-#YZyEwX-Ytwd*nVNx$pwwtxM35>}j5fVf_Y^oo=yqa7ktd`g4irsIKbu!VQ%s{pCj{N9dLypA zucT!n5PE5*cdRY0j=dfUvluSk@7)id6EJtwbH6};y3U`W`kKX=6@^||rhZ<_%AyrJ zN&CvIc^ll)9q}vcZ3HT&J27#&Yt{VDG~o5d+WX8mA!oh`3-hX%ETI)g&G?EEI-JuzOAHH*FFm)|_@8ivjMsjEygz4pi9d>7q(NO|tUmL*Dg!f8{ zGUDk;Z|FT6>8)|^%i{3sIQsh|ZZdOiN5nkzr_AobL$(q-uS@PblNm|L=yxKyR)e{k ziU? z83-Op;%P6mi7eaGUUaF6eMN0^6Nn13jmS>`>agyEhOA9ShBlJaroC9(SMlN^y^z1vHKjkou!3V{aU-~EiT0?5Y1JG9M2Q5 zNKyWL{I{IC@uGnh;uoEH&f>o=c#4m8a?zfzv}tcWkJ3CLkYznH@J<5Qo*+@yE&BBl z&k9~`Wd-aktiThdC3rx@l{i*$fsOT)>I7gxg=nn9z{u1GbQ#E>pO;_BsthiK!(*DCloUbC7YQJe53HN# isFx$-`7M_yXQ$C~I02~BBrn}z^luM-#tFz8fd2tQXLHg3 diff --git a/core/pxelinux.0 b/core/pxelinux.0 index 3430ff2ffea123f1534426242a8a8ca1a7ed933b..528ad2c81d48688d75c5f036bb3b7efedc93896c 100644 GIT binary patch delta 9004 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 $@ +%.img.xz: %.bin mk-lba-img + ./mk-lba-img < $< | $(XZ) -0f > $@ || ( rm -f $@ ; false ) -%.img: %.bin lba.img - (cp -a lba.img $@ && dd conv=notrunc if=$< of=$@) || rm -f $@ +%.img.gz: %.bin mk-lba-img + ./mk-lba-img < $< | $(GZIP) -9 > $@ || ( rm -f $@ ; false ) %.bin: %.asm $(coredir)/writehex.inc $(coredir)/macros.inc $(coredir)/diskboot.inc - nasm $(NASMOPT) -o $@ -l $(@:.bin=.lst) $< + $(NASM) $(NASMOPT) -o $@ -l $(@:.bin=.lst) $< mk-lba-img: mk-lba-img.c - gcc -o $@ $< - -lba.img: mk-lba-img - ./$< $@ + $(CC) $(CFLAGS) -o $@ $< tidy dist: - rm -Rf *.img + rm -Rf *.lst *.img + rm -f mk-lba-img clean: tidy - rm -f *.lst *.bin *_bin.c spotless: clean rm -f $(BTARGET) diff --git a/diag/geodsp/geodsp1s.lst b/diag/geodsp/geodsp1s.lst deleted file mode 100644 index 2a0cc39..0000000 --- a/diag/geodsp/geodsp1s.lst +++ /dev/null @@ -1,539 +0,0 @@ - 1 ; ----------------------------------------------------------------------- - 2 ; - 3 ; Copyright 2010 Gene Cumm - 4 ; - 5 ; Portions from diskstart.inc: - 6 ; Copyright 1994-2009 H. Peter Anvin - All Rights Reserved - 7 ; Copyright 2009-2010 Intel Corporation; author: H. Peter Anvin - 8 ; - 9 ; This program is free software; you can redistribute it and/or modify - 10 ; it under the terms of the GNU General Public License as published by - 11 ; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - 12 ; Boston MA 02110-1301, USA; either version 2 of the License, or - 13 ; (at your option) any later version; incorporated herein by reference. - 14 ; - 15 ; ----------------------------------------------------------------------- - 16 - 17 ; - 18 ; geodsp1s.asm - 19 ; - 20 ; Display geometry translation info for diagnosing misconceptions - 21 ; 1 sector variant - 22 ; - 23 ; nasm -Ox -f bin -o geodsp.bin -l geodsp.lst geodsp.asm - 24 ; - 25 ; nasm -Ox -f elf -o geodsp.o -l geodsp.lst geodsp.asm - 26 ; ld -m elf_i386 -T syslinux.ld -M -o geodsp.elf geodsp.o > geodsp.map - 27 ; objcopy -O binary geodsp.elf geodsp.raw - 28 ; - 29 ; # OF=/dev/sdb - 30 ; # dd if=core/geodsp.bin of=$OF - 31 ; # dd skip=1 seek=1 if=../dbg/lba-img/lba-img.bin of=$OF - 32 ; # eject $OF - 33 ; # dd count=$() if=/dev/zero of=$OF - 34 ; - 35 ; # OF=geo-2.255.63.i - 36 ; # (dd if=core/geodsp.bin; dd skip=1 if=../dbg/lba-img/lba-img.bin; dd count=$((2*255*63 - 256*63 - 1)) if=/dev/zero )|dd of=$OF - 37 ; # OF=geo-20.16.63.i - 38 ; # (dd if=core/geodsp.bin; dd skip=1 if=../dbg/lba-img/lba-img.bin; dd count=$((40*16*63 - 256*63 - 1)) if=/dev/zero )|dd of=$OF - 39 ; - 40 - 41 %include "macros.inc" - 42 <1> ;; ----------------------------------------------------------------------- - 43 <1> ;; - 44 <1> ;; Copyright 1994-2008 H. Peter Anvin - All Rights Reserved - 45 <1> ;; Copyright 2009 Intel Corporation; author: H. Peter Anvin - 46 <1> ;; - 47 <1> ;; This program is free software; you can redistribute it and/or modify - 48 <1> ;; it under the terms of the GNU General Public License as published by - 49 <1> ;; the Free Software Foundation, Inc., 53 Temple Place Ste 330, - 50 <1> ;; Boston MA 02111-1307, USA; either version 2 of the License, or - 51 <1> ;; (at your option) any later version; incorporated herein by reference. - 52 <1> ;; - 53 <1> ;; ----------------------------------------------------------------------- - 54 <1> - 55 <1> ;; - 56 <1> ;; macros.inc - 57 <1> ;; - 58 <1> ;; Convenient macros - 59 <1> ;; - 60 <1> - 61 <1> %ifndef _MACROS_INC - 62 <1> %define _MACROS_INC - 63 <1> - 64 <1> ; - 65 <1> ; Identify the module we're compiling; the "correct" should be defined - 66 <1> ; in the module itself to 1 - 67 <1> ; - 68 <1> %ifdef IS_SYSLINUX - 69 <1> %define MY_NAME 'SYSLINUX' - 70 <1> %else - 71 <1> %define IS_SYSLINUX 0 - 72 <1> %endif - 73 <1> %ifdef IS_PXELINUX - 74 <1> %define MY_NAME 'PXELINUX' - 75 <1> %else - 76 <1> %define IS_PXELINUX 0 - 77 <1> %endif - 78 <1> %ifdef IS_ISOLINUX - 79 <1> %define MY_NAME 'ISOLINUX' - 80 <1> %else - 81 <1> %define IS_ISOLINUX 0 - 82 <1> %endif - 83 <1> %ifdef IS_EXTLINUX - 84 <1> %define MY_NAME 'EXTLINUX' - 85 <1> %else - 86 <1> %define IS_EXTLINUX 0 - 87 <1> %endif - 88 <1> - 89 <1> ; - 90 <1> ; Macros similar to res[bwd], but which works in the code segment (after - 91 <1> ; section .text16) or the data segment (section .data16) - 92 <1> ; - 93 <1> %macro zb 1.nolist - 94 <1> times %1 db 0 - 95 <1> %endmacro - 96 <1> - 97 <1> %macro zw 1.nolist - 98 <1> times %1 dw 0 - 99 <1> %endmacro - 100 <1> - 101 <1> %macro zd 1.nolist - 102 <1> times %1 dd 0 - 103 <1> %endmacro - 104 <1> - 105 <1> ; - 106 <1> ; Align with zero bytes in a progbits segment - 107 <1> ; - 108 <1> %macro alignz 1.nolist - 109 <1> times (((%1) - (($-$$) % (%1))) % (%1)) db 0 - 110 <1> %endmacro - 111 <1> - 112 <1> ; - 113 <1> ; Macro to emit an unsigned decimal number as a string - 114 <1> ; - 115 <1> %macro asciidec 1.nolist - 116 <1> %ifndef DEPEND ; Not safe for "depend" - 117 <1> %push asciidec - 118 <1> %assign %$v %1 - 119 <1> %if %$v == 0 - 120 <1> db '0' - 121 <1> %else - 122 <1> %assign %$dcount 0 - 123 <1> %assign %$n %$v - 124 <1> %assign %$d 1 - 125 <1> %rep 20 - 126 <1> %if %$n != 0 - 127 <1> %assign %$dcount %$dcount + 1 - 128 <1> %assign %$n %$n / 10 - 129 <1> %assign %$d %$d * 10 - 130 <1> %endif - 131 <1> %endrep - 132 <1> %rep %$dcount - 133 <1> %assign %$d %$d / 10 - 134 <1> db ((%$v / %$d) % 10) + '0' - 135 <1> %endrep - 136 <1> %endif - 137 <1> %pop - 138 <1> %endif - 139 <1> %endmacro - 140 <1> - 141 <1> ; - 142 <1> ; Macros for network byte order of constants - 143 <1> ; - 144 <1> %define htons(x) ( ( ((x) & 0FFh) << 8 ) + ( ((x) & 0FF00h) >> 8 ) ) - 145 <1> %define ntohs(x) htons(x) - 146 <1> %define htonl(x) ( ( ((x) & 0FFh) << 24) + ( ((x) & 0FF00h) << 8 ) + ( ((x) & 0FF0000h) >> 8 ) + ( ((x) & 0FF000000h) >> 24) ) - 147 <1> %define ntohl(x) htonl(x) - 148 <1> - 149 <1> ; - 150 <1> ; ASCII - 151 <1> ; - 152 <1> CR equ 13 ; Carriage Return - 153 <1> LF equ 10 ; Line Feed - 154 <1> FF equ 12 ; Form Feed - 155 <1> BS equ 8 ; Backspace - 156 <1> - 157 <1> %endif ; _MACROS_INC - 158 ; %include "layout.inc" - 159 - 160 ; global STACK_LEN, STACK_TOP, STACK_BASE - 161 ; STACK_LEN equ 4096 - 162 STACK_TOP equ 7c00h - 163 ; STACK_BASE equ STACK_TOP - STACK_LEN - 164 - 165 StackBuf equ STACK_TOP-44-92 ; Start the stack here (grow down - 4K) - 166 DriveNumber equ StackBuf-4 ; Drive number - 167 m_CHS0 equ 00534843h ;'CHS',0 - 168 m_EDD0 equ 00444445h ;'EDD',0 - 169 m_EDD_SP equ 20444445h ;'EDD ' - 170 retry_count equ 16 - 171 dbuf equ 8000h - 172 int13_ret equ 7e00h - 173 - 174 - 175 - 176 ; extern real_mode_seg - 177 ; section .real_mode write nobits align=65536 - 178 ; global core_real_mode - 179 ; core_real_mode resb 65536 - 180 ; extern xfer_buf_seg - 181 ; section .xfer_buf write nobits align=65536 - 182 ; global core_xfer_buf - 183 ; core_xfer_buf resb 65536 - 184 - 185 section .text - 186 org STACK_TOP - 187 - 188 - 189 global _start - 190 bootsec equ $ - 191 _start: - 192 ; In case we want to pull more of the standard diskstart stuff in - 193 ; jmp short start ; 2 bytes - 194 ; nop ; 1 byte - 195 start: - 196 00000000 FA cli - 197 00000001 FC cld - 198 00000002 31C9 xor cx,cx - 199 00000004 8ED1 mov ss,cx - 200 00000006 BC767B mov sp,StackBuf-2 ; Just below BSS (-2 for alignment) - 201 00000009 52 push dx ; Save drive number (in DL) - 202 ; Kill everything else and let the BIOS sort it out later - 203 0000000A 8EC1 mov es,cx - 204 0000000C 8ED9 mov ds,cx - 205 0000000E FB sti - 206 - 207 get_geo: ; DL and ES ready - 208 0000000F B408 mov ah,08h - 209 00000011 BF0000 mov di,0 - 210 00000014 CD13 int 13h - 211 write_geo: - 212 00000016 720E jc .bad_geo - 213 00000018 BE[A801] mov si,s_chs - 214 0000001B E8C700 call writestr_early - 215 0000001E E8F000 call write_chs - 216 00000021 E82F01 call crlf - 217 00000024 EB00 jmp short .done - 218 .bad_geo: - 219 .done: - 220 - 221 00000026 BB0080 mov bx,dbuf - 222 get_h1c: ; 0,1,1 - 223 00000029 B90100 mov cx,0001h - 224 0000002C B601 mov dh,01h - 225 0000002E E88D00 call getonesec_chs - 226 00000031 E8C000 call write_chs_lba - 227 get_c1c: ; 1,0,1 - 228 00000034 B90101 mov cx,0101h - 229 00000037 B600 mov dh,00h - 230 00000039 E88200 call getonesec_chs - 231 0000003C E8B500 call write_chs_lba - 232 - 233 ; - 234 ; Do we have EBIOS (EDD)? - 235 ; - 236 edd: - 237 .check: - 238 0000003F BBAA55 mov bx,55AAh - 239 00000042 B441 mov ah,41h ; EDD existence query - 240 00000044 8A16747B mov dl,[DriveNumber] - 241 00000048 CD13 int 13h - 242 0000004A 723F jc .noedd - 243 0000004C 81FB55AA cmp bx,0AA55h - 244 00000050 7539 jne .noedd - 245 00000052 F6C101 test cl,1 ; Extended disk access functionality set - 246 00000055 7434 jz .noedd - 247 ; - 248 ; We have EDD support... - 249 ; - 250 00000057 BB0080 mov bx,dbuf - 251 0000005A 6631D2 xor edx,edx - 252 0000005D 66C706[A801]454444- mov dword [s_chs],m_EDD_SP - 253 00000065 20 - 254 .get_lba63: - 255 00000066 66B83F000000 mov eax,63 ; Same length as mov al,64; movzx eax,al - 256 0000006C E82400 call getonesec_ebios - 257 0000006F 721A jc .bad_edd ;read error - 258 00000071 E8C200 call write_edd_lba - 259 .get_lba16065: - 260 00000074 66B8C13E0000 mov eax,16065 - 261 0000007A E81600 call getonesec_ebios - 262 0000007D 720C jc .bad_edd ;read error - 263 0000007F E8B400 call write_edd_lba - 264 .good_edd: - 265 00000082 66C706[AF01]454444- mov dword [s_type],m_EDD0 - 266 0000008A 00 - 267 .bad_edd: - 268 .noedd: - 269 .end: - 270 - 271 write_final_type: - 272 0000008B BE[AD01] mov si,s_typespec - 273 0000008E E85400 call writestr_early - 274 - 275 00000091 EB38 jmp short kaboom - 276 - 277 ; - 278 ; getonesec_ebios: - 279 ; - 280 ; getonesec implementation for EBIOS (EDD) - 281 ; - 282 getonesec_ebios: - 283 00000093 B91000 mov cx,retry_count - 284 .retry: - 285 ; Form DAPA on stack - 286 00000096 6652 push edx - 287 00000098 6650 push eax - 288 0000009A 06 push es - 289 0000009B 53 push bx - 290 0000009C 6A01 push word 1 - 291 0000009E 6A10 push word 16 - 292 000000A0 89E6 mov si,sp - 293 000000A2 6660 pushad - 294 000000A4 B442 mov ah,42h ; Extended Read - 295 000000A6 E83200 call xint13 - 296 000000A9 6661 popad - 297 000000AB 8D6410 lea sp,[si+16] ; Remove DAPA - 298 000000AE 7201 jc .error - 299 000000B0 C3 ret - 300 - 301 .error: - 302 ; Some systems seem to get "stuck" in an error state when - 303 ; using EBIOS. Doesn't happen when using CBIOS, which is - 304 ; good, since some other systems get timeout failures - 305 ; waiting for the floppy disk to spin up. - 306 - 307 000000B1 6660 pushad ; Try resetting the device - 308 000000B3 31C0 xor ax,ax - 309 000000B5 E82300 call xint13 - 310 000000B8 6661 popad - 311 000000BA E2DA loop .retry ; CX-- and jump if not zero - 312 - 313 ; Total failure. - 314 000000BC F9 stc - 315 000000BD C3 ret - 316 - 317 ; - 318 ; getonesec_chs: - 319 ; - 320 ; CX,DH specifies CHS address - 321 ; - 322 getonesec_chs: ; We could use an xchg and get a loop - 323 ; mov cx,retry_count - 324 .retry: - 325 000000BE 6660 pushad - 326 000000C0 B80102 mov ax,0201h ; Read one sector - 327 000000C3 E81500 call xint13 - 328 000000C6 6661 popad - 329 000000C8 7201 jc .error - 330 000000CA C3 ret - 331 - 332 .error: - 333 ; loop .retry - 334 ; Fall through to disk_error - 335 ; - 336 ; kaboom: write a message and bail out. - 337 ; - 338 global kaboom - 339 disk_error: - 340 kaboom: - 341 .patch: - 342 000000CB BE[B301] mov si,bailmsg - 343 000000CE E81400 call writestr_early - 344 000000D1 6631C0 xor eax,eax - 345 000000D4 CD16 .again: int 16h ; Wait for keypress - 346 ; NB: replaced by int 18h if - 347 ; chosen at install time.. - 348 000000D6 CD19 int 19h ; And try once more to boot... - 349 000000D8 F4 .norge: hlt ; If int 19h returned; this is the end - 350 000000D9 EBFD jmp short .norge - 351 - 352 ; - 353 ; INT 13h wrapper function - 354 ; - 355 xint13: - 356 000000DB 8A16747B mov dl,[DriveNumber] - 357 000000DF CD13 int 13h - 358 000000E1 A3007E mov [int13_ret],ax - 359 000000E4 C3 ret - 360 - 361 ; - 362 ; - 363 ; writestr_early: write a null-terminated string to the console - 364 ; This assumes we're on page 0. This is only used for early - 365 ; messages, so it should be OK. - 366 ; - 367 writestr_early: - 368 000000E5 6660 pushad - 369 000000E7 AC .loop: lodsb - 370 000000E8 20C0 and al,al - 371 000000EA 7405 jz .return - 372 000000EC E86D00 call writechr - 373 000000EF EBF6 jmp short .loop - 374 000000F1 6661 .return: popad - 375 000000F3 C3 ret - 376 - 377 %include "geodsplib.inc" - 378 <1> ; ----------------------------------------------------------------------- - 379 <1> ; - 380 <1> ; Copyright 2010 Gene Cumm - 381 <1> ; - 382 <1> ; Portions from diskstart.inc: - 383 <1> ; Copyright 1994-2009 H. Peter Anvin - All Rights Reserved - 384 <1> ; Copyright 2009-2010 Intel Corporation; author: H. Peter Anvin - 385 <1> ; - 386 <1> ; This program is free software; you can redistribute it and/or modify - 387 <1> ; it under the terms of the GNU General Public License as published by - 388 <1> ; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - 389 <1> ; Boston MA 02110-1301, USA; either version 2 of the License, or - 390 <1> ; (at your option) any later version; incorporated herein by reference. - 391 <1> ; - 392 <1> ; ----------------------------------------------------------------------- - 393 <1> - 394 <1> ; - 395 <1> ; geodsplib.inc - 396 <1> ; - 397 <1> ; Library file for geodsp*.asm - 398 <1> ; - 399 <1> - 400 <1> ; ES:BX points to the buffer with address - 401 <1> ; DX,CX as they should be for INT13h,AH=02 - 402 <1> ; For now assume C<256 - 403 <1> write_chs_lba: - 404 000000F4 6660 <1> pushad - 405 000000F6 BE[A701] <1> mov si,s_atchs - 406 000000F9 E8E9FF <1> call writestr_early - 407 000000FC E81200 <1> call write_chs - 408 000000FF B03A <1> mov al,':' - 409 00000101 E85800 <1> call writechr - 410 00000104 26668B07 <1> mov eax,[es:bx] - 411 00000108 E87700 <1> call writehex8 - 412 0000010B E84500 <1> call crlf - 413 0000010E 6661 <1> popad - 414 00000110 C3 <1> ret - 415 <1> - 416 <1> ; DX,CX as they should be for INT13h,AH=02 - 417 <1> ; For now assume C<256 - 418 <1> write_chs: - 419 00000111 6660 <1> pushad - 420 00000113 88E8 <1> mov al,ch - 421 00000115 88CC <1> mov ah,cl - 422 00000117 C0EC06 <1> shr ah,6 - 423 0000011A E85800 <1> call writehex4 - 424 0000011D B02C <1> mov al,',' - 425 0000011F E83A00 <1> call writechr - 426 00000122 88F0 <1> mov al,dh - 427 00000124 E84100 <1> call writehex2 - 428 00000127 B02C <1> mov al,',' - 429 00000129 E83000 <1> call writechr - 430 0000012C 88C8 <1> mov al,cl - 431 0000012E 243F <1> and al,3Fh - 432 00000130 E83500 <1> call writehex2 - 433 00000133 6661 <1> popad - 434 00000135 C3 <1> ret - 435 <1> - 436 <1> write_edd_lba: - 437 00000136 6660 <1> pushad - 438 00000138 BE[A701] <1> mov si,s_atchs - 439 0000013B E8A7FF <1> call writestr_early - 440 0000013E E84100 <1> call writehex8 - 441 00000141 B03A <1> mov al,':' - 442 00000143 E81600 <1> call writechr - 443 00000146 26668B07 <1> mov eax,[es:bx] - 444 0000014A E83500 <1> call writehex8 - 445 0000014D E80300 <1> call crlf - 446 00000150 6661 <1> popad - 447 00000152 C3 <1> ret - 448 <1> - 449 <1> - 450 <1> crlf: - 451 00000153 56 <1> push si - 452 00000154 BE[B801] <1> mov si,s_crlf - 453 00000157 E88BFF <1> call writestr_early - 454 0000015A 5E <1> pop si - 455 0000015B C3 <1> ret - 456 <1> - 457 <1> writechr: - 458 <1> writechr_early: - 459 0000015C 6660 <1> pushad - 460 0000015E B40E <1> mov ah,0Eh ; Write to screen as TTY - 461 00000160 BB0700 <1> mov bx,0007h ; Attribute - 462 00000163 CD10 <1> int 10h - 463 00000165 6661 <1> popad - 464 00000167 C3 <1> ret - 465 <1> - 466 <1> %include "writehex.inc" - 467 <2> ;; ----------------------------------------------------------------------- - 468 <2> ;; - 469 <2> ;; Copyright 1994-2008 H. Peter Anvin - All Rights Reserved - 470 <2> ;; - 471 <2> ;; This program is free software; you can redistribute it and/or modify - 472 <2> ;; it under the terms of the GNU General Public License as published by - 473 <2> ;; the Free Software Foundation, Inc., 53 Temple Place Ste 330, - 474 <2> ;; Boston MA 02111-1307, USA; either version 2 of the License, or - 475 <2> ;; (at your option) any later version; incorporated herein by reference. - 476 <2> ;; - 477 <2> ;; ----------------------------------------------------------------------- - 478 <2> - 479 <2> ;; - 480 <2> ;; writehex.inc - 481 <2> ;; - 482 <2> ;; Write hexadecimal numbers to the console - 483 <2> ;; - 484 <2> - 485 <2> ; - 486 <2> ; writehex[248]: Write a hex number in (AL, AX, EAX) to the console - 487 <2> ; - 488 <2> writehex2: - 489 00000168 669C <2> pushfd - 490 0000016A 6660 <2> pushad - 491 0000016C 66C1C018 <2> rol eax,24 - 492 00000170 B90200 <2> mov cx,2 - 493 00000173 EB14 <2> jmp short writehex_common - 494 <2> writehex4: - 495 00000175 669C <2> pushfd - 496 00000177 6660 <2> pushad - 497 00000179 66C1C010 <2> rol eax,16 - 498 0000017D B90400 <2> mov cx,4 - 499 00000180 EB07 <2> jmp short writehex_common - 500 <2> writehex8: - 501 00000182 669C <2> pushfd - 502 00000184 6660 <2> pushad - 503 00000186 B90800 <2> mov cx,8 - 504 <2> writehex_common: - 505 00000189 66C1C004 <2> .loop: rol eax,4 - 506 0000018D 6650 <2> push eax - 507 0000018F 240F <2> and al,0Fh - 508 00000191 3C0A <2> cmp al,10 - 509 00000193 7304 <2> jae .high - 510 00000195 0430 <2> .low: add al,'0' - 511 00000197 EB02 <2> jmp short .ischar - 512 00000199 0437 <2> .high: add al,'A'-10 - 513 0000019B E8BEFF <2> .ischar: call writechr - 514 0000019E 6658 <2> pop eax - 515 000001A0 E2E7 <2> loop .loop - 516 000001A2 6661 <2> popad - 517 000001A4 669D <2> popfd - 518 000001A6 C3 <2> ret - 519 <1> - 520 000001A7 40 <1> s_atchs: db '@' - 521 000001A8 434853 <1> s_chs: db 'CHS' - 522 000001AB 2000 <1> s_space: db ' ', 0 - 523 000001AD 443D <1> s_typespec: db 'D=' - 524 000001AF 43485300 <1> s_type: db 'CHS', 0 - 525 000001B3 0D0A656E64 <1> s_end: db 0Dh, 0Ah, 'end' - 526 000001B8 0D0A00 <1> s_crlf: db 0Dh, 0Ah, 0 - 527 <1> - 528 <1> ; This indicates the general format of the last few bytes in the boot sector - 529 <1> BS_MAGIC_VER equ 0x1b << 9 - 530 bailmsg equ s_end - 531 - 532 ; This fails if the boot sector overflowsg - 533 000001BB 00 zb 1BEh-($-$$) - 534 - 535 000001BE 00 ptable zb 40h ; Partition table - 536 - 537 000001FE 55AA bootsignature dw 0xAA55 - 538 - 539 sector_2: diff --git a/diag/geodsp/geodspms.lst b/diag/geodsp/geodspms.lst deleted file mode 100644 index 66c7cd0..0000000 --- a/diag/geodsp/geodspms.lst +++ /dev/null @@ -1,943 +0,0 @@ - 1 ; ----------------------------------------------------------------------- - 2 ; - 3 ; Copyright 2010 Gene Cumm - 4 ; - 5 ; Portions from diskstart.inc: - 6 ; Copyright 1994-2009 H. Peter Anvin - All Rights Reserved - 7 ; Copyright 2009-2010 Intel Corporation; author: H. Peter Anvin - 8 ; - 9 ; This program is free software; you can redistribute it and/or modify - 10 ; it under the terms of the GNU General Public License as published by - 11 ; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - 12 ; Boston MA 02110-1301, USA; either version 2 of the License, or - 13 ; (at your option) any later version; incorporated herein by reference. - 14 ; - 15 ; ----------------------------------------------------------------------- - 16 - 17 ; - 18 ; geodspms.asm - 19 ; - 20 ; Display geometry translation info for diagnosing misconceptions - 21 ; multi-sector variant - 22 ; - 23 ; nasm -Ox -f bin -o geodsp.bin -l geodsp.lst geodsp.asm - 24 ; - 25 ; nasm -Ox -f elf -o geodsp.o -l geodsp.lst geodsp.asm - 26 ; ld -m elf_i386 -T syslinux.ld -M -o geodsp.elf geodsp.o > geodsp.map - 27 ; objcopy -O binary geodsp.elf geodsp.raw - 28 ; - 29 ; # OF=/dev/sdb - 30 ; # dd if=core/geodsp.bin of=$OF - 31 ; # dd skip=1 seek=1 if=../dbg/lba-img/lba-img.bin of=$OF - 32 ; # eject $OF - 33 ; # dd count=$() if=/dev/zero of=$OF - 34 ; - 35 ; # OF=geo-2.255.63.i - 36 ; # (dd if=core/geodsp.bin; dd skip=1 if=../dbg/lba-img/lba-img.bin; dd count=$((2*255*63 - 256*63 - 1)) if=/dev/zero )|dd of=$OF - 37 ; # OF=geo-20.16.63.i - 38 ; # (dd if=core/geodsp.bin; dd skip=1 if=../dbg/lba-img/lba-img.bin; dd count=$((40*16*63 - 256*63 - 1)) if=/dev/zero )|dd of=$OF - 39 ; - 40 - 41 ; Just to define it to look like SYSLINUX - 42 %define IS_SYSLINUX 1 - 43 - 44 %include "macros.inc" - 45 <1> ;; ----------------------------------------------------------------------- - 46 <1> ;; - 47 <1> ;; Copyright 1994-2008 H. Peter Anvin - All Rights Reserved - 48 <1> ;; Copyright 2009 Intel Corporation; author: H. Peter Anvin - 49 <1> ;; - 50 <1> ;; This program is free software; you can redistribute it and/or modify - 51 <1> ;; it under the terms of the GNU General Public License as published by - 52 <1> ;; the Free Software Foundation, Inc., 53 Temple Place Ste 330, - 53 <1> ;; Boston MA 02111-1307, USA; either version 2 of the License, or - 54 <1> ;; (at your option) any later version; incorporated herein by reference. - 55 <1> ;; - 56 <1> ;; ----------------------------------------------------------------------- - 57 <1> - 58 <1> ;; - 59 <1> ;; macros.inc - 60 <1> ;; - 61 <1> ;; Convenient macros - 62 <1> ;; - 63 <1> - 64 <1> %ifndef _MACROS_INC - 65 <1> %define _MACROS_INC - 66 <1> - 67 <1> ; - 68 <1> ; Identify the module we're compiling; the "correct" should be defined - 69 <1> ; in the module itself to 1 - 70 <1> ; - 71 <1> %ifdef IS_SYSLINUX - 72 <1> %define MY_NAME 'SYSLINUX' - 73 <1> %else - 74 <1> %define IS_SYSLINUX 0 - 75 <1> %endif - 76 <1> %ifdef IS_PXELINUX - 77 <1> %define MY_NAME 'PXELINUX' - 78 <1> %else - 79 <1> %define IS_PXELINUX 0 - 80 <1> %endif - 81 <1> %ifdef IS_ISOLINUX - 82 <1> %define MY_NAME 'ISOLINUX' - 83 <1> %else - 84 <1> %define IS_ISOLINUX 0 - 85 <1> %endif - 86 <1> %ifdef IS_EXTLINUX - 87 <1> %define MY_NAME 'EXTLINUX' - 88 <1> %else - 89 <1> %define IS_EXTLINUX 0 - 90 <1> %endif - 91 <1> - 92 <1> ; - 93 <1> ; Macros similar to res[bwd], but which works in the code segment (after - 94 <1> ; section .text16) or the data segment (section .data16) - 95 <1> ; - 96 <1> %macro zb 1.nolist - 97 <1> times %1 db 0 - 98 <1> %endmacro - 99 <1> - 100 <1> %macro zw 1.nolist - 101 <1> times %1 dw 0 - 102 <1> %endmacro - 103 <1> - 104 <1> %macro zd 1.nolist - 105 <1> times %1 dd 0 - 106 <1> %endmacro - 107 <1> - 108 <1> ; - 109 <1> ; Align with zero bytes in a progbits segment - 110 <1> ; - 111 <1> %macro alignz 1.nolist - 112 <1> times (((%1) - (($-$$) % (%1))) % (%1)) db 0 - 113 <1> %endmacro - 114 <1> - 115 <1> ; - 116 <1> ; Macro to emit an unsigned decimal number as a string - 117 <1> ; - 118 <1> %macro asciidec 1.nolist - 119 <1> %ifndef DEPEND ; Not safe for "depend" - 120 <1> %push asciidec - 121 <1> %assign %$v %1 - 122 <1> %if %$v == 0 - 123 <1> db '0' - 124 <1> %else - 125 <1> %assign %$dcount 0 - 126 <1> %assign %$n %$v - 127 <1> %assign %$d 1 - 128 <1> %rep 20 - 129 <1> %if %$n != 0 - 130 <1> %assign %$dcount %$dcount + 1 - 131 <1> %assign %$n %$n / 10 - 132 <1> %assign %$d %$d * 10 - 133 <1> %endif - 134 <1> %endrep - 135 <1> %rep %$dcount - 136 <1> %assign %$d %$d / 10 - 137 <1> db ((%$v / %$d) % 10) + '0' - 138 <1> %endrep - 139 <1> %endif - 140 <1> %pop - 141 <1> %endif - 142 <1> %endmacro - 143 <1> - 144 <1> ; - 145 <1> ; Macros for network byte order of constants - 146 <1> ; - 147 <1> %define htons(x) ( ( ((x) & 0FFh) << 8 ) + ( ((x) & 0FF00h) >> 8 ) ) - 148 <1> %define ntohs(x) htons(x) - 149 <1> %define htonl(x) ( ( ((x) & 0FFh) << 24) + ( ((x) & 0FF00h) << 8 ) + ( ((x) & 0FF0000h) >> 8 ) + ( ((x) & 0FF000000h) >> 24) ) - 150 <1> %define ntohl(x) htonl(x) - 151 <1> - 152 <1> ; - 153 <1> ; ASCII - 154 <1> ; - 155 <1> CR equ 13 ; Carriage Return - 156 <1> LF equ 10 ; Line Feed - 157 <1> FF equ 12 ; Form Feed - 158 <1> BS equ 8 ; Backspace - 159 <1> - 160 <1> %endif ; _MACROS_INC - 161 ; %include "layout.inc" - 162 - 163 m_CHS0 equ 00534843h ;'CHS',0 - 164 m_EDD0 equ 00444445h ;'EDD',0 - 165 m_EDD_SP equ 20444445h ;'EDD ' - 166 retry_count equ 16 - 167 dbuf equ 8000h - 168 ; int13_ret equ 7e00h - 169 LDLINUX_MAGIC equ 0x3eb202fe ; A random number to identify ourselves with - 170 - 171 Sect1Ptr0_VAL equ 1 - 172 Sect1Ptr1_VAL equ 0 - 173 - 174 ; global STACK_LEN, STACK_TOP, STACK_BASE - 175 ; STACK_LEN equ 4096 - 176 STACK_TOP equ 7c00h - 177 ; STACK_BASE equ STACK_TOP - STACK_LEN - 178 section .init - 179 org STACK_TOP - 180 geodsp_start: - 181 - 182 %include "diskboot.inc" - 183 <1> ; ----------------------------------------------------------------------- - 184 <1> ; - 185 <1> ; Copyright 1994-2009 H. Peter Anvin - All Rights Reserved - 186 <1> ; Copyright 2009-2011 Intel Corporation; author: H. Peter Anvin - 187 <1> ; - 188 <1> ; This program is free software; you can redistribute it and/or modify - 189 <1> ; it under the terms of the GNU General Public License as published by - 190 <1> ; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - 191 <1> ; Boston MA 02110-1301, USA; either version 2 of the License, or - 192 <1> ; (at your option) any later version; incorporated herein by reference. - 193 <1> ; - 194 <1> ; ----------------------------------------------------------------------- - 195 <1> - 196 <1> ; - 197 <1> ; diskboot.inc - 198 <1> ; - 199 <1> ; Common boot sector code for harddisk-based Syslinux derivatives. - 200 <1> ; - 201 <1> ; Requires macros z[bwd], labels ldlinux_ent, ldlinux_magic, ldlinux_sys - 202 <1> ; and constants BS_MAGIC_VER, LDLINUX_MAGIC, retry_count, Sect1Ptr[01]_VAL, - 203 <1> ; STACK_TOP - 204 <1> ; - 205 <1> - 206 <1> section .init - 207 <1> ; - 208 <1> ; Some of the things that have to be saved very early are saved - 209 <1> ; "close" to the initial stack pointer offset, in order to - 210 <1> ; reduce the code size... - 211 <1> ; - 212 <1> - 213 <1> StackBuf equ STACK_TOP-44-92 ; Start the stack here (grow down - 4K) - 214 <1> PartInfo equ StackBuf - 215 <1> .mbr equ PartInfo - 216 <1> .gptlen equ PartInfo+16 - 217 <1> .gpt equ PartInfo+20 - 218 <1> FloppyTable equ PartInfo+76 - 219 <1> ; Total size of PartInfo + FloppyTable == 76+16 = 92 bytes - 220 <1> Hidden equ StackBuf-24 ; Partition offset (qword) - 221 <1> OrigFDCTabPtr equ StackBuf-16 ; Original FDC table - 222 <1> OrigDSSI equ StackBuf-12 ; DS:SI -> partinfo - 223 <1> OrigESDI equ StackBuf-8 ; ES:DI -> $PnP structure - 224 <1> DriveNumber equ StackBuf-4 ; Drive number - 225 <1> StackHome equ Hidden ; The start of the canonical stack - 226 <1> - 227 <1> ; - 228 <1> ; Primary entry point. Tempting as though it may be, we can't put the - 229 <1> ; initial "cli" here; the jmp opcode in the first byte is part of the - 230 <1> ; "magic number" (using the term very loosely) for the DOS superblock. - 231 <1> ; - 232 <1> bootsec equ $ - 233 00000000 EB58 <1> _start: jmp short start ; 2 bytes - 234 00000002 90 <1> nop ; 1 byte - 235 <1> ; - 236 <1> ; "Superblock" follows -- it's in the boot sector, so it's already - 237 <1> ; loaded and ready for us - 238 <1> ; - 239 00000003 5359534C494E5558 <1> bsOemName db MY_NAME ; The SYS command sets this, so... - 240 <1> zb 8-($-bsOemName) - 241 <1> - 242 <1> ; - 243 <1> ; These are the fields we actually care about. We end up expanding them - 244 <1> ; all to dword size early in the code, so generate labels for both - 245 <1> ; the expanded and unexpanded versions. - 246 <1> ; - 247 <1> %macro superb 1 - 248 <1> bx %+ %1 equ SuperInfo+($-superblock)*8+4 - 249 <1> bs %+ %1 equ $ - 250 <1> zb 1 - 251 <1> %endmacro - 252 <1> %macro superw 1 - 253 <1> bx %+ %1 equ SuperInfo+($-superblock)*8 - 254 <1> bs %+ %1 equ $ - 255 <1> zw 1 - 256 <1> %endmacro - 257 <1> %macro superd 1 - 258 <1> bx %+ %1 equ $ ; no expansion for dwords - 259 <1> bs %+ %1 equ $ - 260 <1> zd 1 - 261 <1> %endmacro - 262 <1> superblock equ $ - 263 <1> superw BytesPerSec - 264 <2> bx %+ %1 equ SuperInfo+($-superblock)*8 - 265 <2> bs %+ %1 equ $ - 266 0000000B 0000 <2> zw 1 - 267 <1> superb SecPerClust - 268 <2> bx %+ %1 equ SuperInfo+($-superblock)*8+4 - 269 <2> bs %+ %1 equ $ - 270 0000000D 00 <2> zb 1 - 271 <1> superw ResSectors - 272 <2> bx %+ %1 equ SuperInfo+($-superblock)*8 - 273 <2> bs %+ %1 equ $ - 274 0000000E 0000 <2> zw 1 - 275 <1> superb FATs - 276 <2> bx %+ %1 equ SuperInfo+($-superblock)*8+4 - 277 <2> bs %+ %1 equ $ - 278 00000010 00 <2> zb 1 - 279 <1> superw RootDirEnts - 280 <2> bx %+ %1 equ SuperInfo+($-superblock)*8 - 281 <2> bs %+ %1 equ $ - 282 00000011 0000 <2> zw 1 - 283 <1> superw Sectors - 284 <2> bx %+ %1 equ SuperInfo+($-superblock)*8 - 285 <2> bs %+ %1 equ $ - 286 00000013 0000 <2> zw 1 - 287 <1> superb Media - 288 <2> bx %+ %1 equ SuperInfo+($-superblock)*8+4 - 289 <2> bs %+ %1 equ $ - 290 00000015 00 <2> zb 1 - 291 <1> superw FATsecs - 292 <2> bx %+ %1 equ SuperInfo+($-superblock)*8 - 293 <2> bs %+ %1 equ $ - 294 00000016 0000 <2> zw 1 - 295 <1> superw SecPerTrack - 296 <2> bx %+ %1 equ SuperInfo+($-superblock)*8 - 297 <2> bs %+ %1 equ $ - 298 00000018 0000 <2> zw 1 - 299 <1> superw Heads - 300 <2> bx %+ %1 equ SuperInfo+($-superblock)*8 - 301 <2> bs %+ %1 equ $ - 302 0000001A 0000 <2> zw 1 - 303 <1> superinfo_size equ ($-superblock)-1 ; How much to expand - 304 <1> superd Hidden - 305 <2> bx %+ %1 equ $ - 306 <2> bs %+ %1 equ $ - 307 0000001C 00000000 <2> zd 1 - 308 <1> superd HugeSectors - 309 <2> bx %+ %1 equ $ - 310 <2> bs %+ %1 equ $ - 311 00000020 00000000 <2> zd 1 - 312 <1> ; - 313 <1> ; This is as far as FAT12/16 and FAT32 are consistent - 314 <1> ; - 315 <1> ; FAT12/16 need 26 more bytes, - 316 <1> ; FAT32 need 54 more bytes - 317 <1> ; - 318 <1> superblock_len_fat16 equ $-superblock+26 - 319 <1> superblock_len_fat32 equ $-superblock+54 - 320 00000024 00 <1> zb 54 ; Maximum needed size - 321 <1> superblock_max equ $-superblock - 322 <1> - 323 <1> global SecPerClust - 324 <1> SecPerClust equ bxSecPerClust - 325 <1> - 326 <1> ; - 327 <1> ; Note we don't check the constraints above now; we did that at install - 328 <1> ; time (we hope!) - 329 <1> ; - 330 <1> start: - 331 0000005A FA <1> cli ; No interrupts yet, please - 332 0000005B FC <1> cld ; Copy upwards - 333 <1> ; - 334 <1> ; Set up the stack - 335 <1> ; - 336 0000005C 31C9 <1> xor cx,cx - 337 0000005E 8ED1 <1> mov ss,cx - 338 00000060 BC767B <1> mov sp,StackBuf-2 ; Just below BSS (-2 for alignment) - 339 00000063 52 <1> push dx ; Save drive number (in DL) - 340 00000064 06 <1> push es ; Save initial ES:DI -> $PnP pointer - 341 00000065 57 <1> push di - 342 00000066 1E <1> push ds ; Save original DS:SI -> partinfo - 343 00000067 56 <1> push si - 344 00000068 8EC1 <1> mov es,cx - 345 <1> - 346 <1> ; - 347 <1> ; DS:SI may contain a partition table entry and possibly a GPT entry. - 348 <1> ; Preserve it for us. This saves 56 bytes of the GPT entry, which is - 349 <1> ; currently the maximum we care about. Total is 76 bytes. - 350 <1> ; - 351 0000006A B126 <1> mov cl,(16+4+56)/2 ; Save partition info - 352 0000006C BF787B <1> mov di,PartInfo - 353 0000006F F3A5 <1> rep movsw ; This puts CX back to zero - 354 <1> - 355 00000071 8ED9 <1> mov ds,cx ; Now we can initialize DS... - 356 <1> - 357 <1> ; - 358 <1> ; Now sautee the BIOS floppy info block to that it will support decent- - 359 <1> ; size transfers; the floppy block is 11 bytes and is stored in the - 360 <1> ; INT 1Eh vector (brilliant waste of resources, eh?) - 361 <1> ; - 362 <1> ; Of course, if BIOSes had been properly programmed, we wouldn't have - 363 <1> ; had to waste precious space with this code. - 364 <1> ; - 365 00000073 BB7800 <1> mov bx,fdctab - 366 00000076 0FB437 <1> lfs si,[bx] ; FS:SI -> original fdctab - 367 00000079 0FA0 <1> push fs ; Save on stack in case we need to bail - 368 0000007B 56 <1> push si - 369 <1> - 370 <1> ; Save the old fdctab even if hard disk so the stack layout - 371 <1> ; is the same. The instructions above do not change the flags - 372 0000007C 20D2 <1> and dl,dl ; If floppy disk (00-7F), assume no - 373 <1> ; partition table - 374 0000007E 781B <1> js harddisk - 375 <1> - 376 <1> floppy: - 377 00000080 31C0 <1> xor ax,ax - 378 00000082 B106 <1> mov cl,6 ; 12 bytes (CX == 0) - 379 <1> ; es:di -> FloppyTable already - 380 <1> ; This should be safe to do now, interrupts are off... - 381 00000084 893F <1> mov [bx],di ; FloppyTable - 382 00000086 894702 <1> mov [bx+2],ax ; Segment 0 - 383 00000089 F364A5 <1> fs rep movsw ; Faster to move words - 384 0000008C 8A0E[1800] <1> mov cl,[bsSecPerTrack] ; Patch the sector count - 385 00000090 884DF8 <1> mov [di-12+4],cl - 386 <1> - 387 00000093 50 <1> push ax ; Partition offset == 0 - 388 00000094 50 <1> push ax - 389 00000095 50 <1> push ax - 390 00000096 50 <1> push ax - 391 <1> - 392 00000097 CD13 <1> int 13h ; Some BIOSes need this - 393 <1> ; Using xint13 costs +1B - 394 00000099 EB62 <1> jmp short not_harddisk - 395 <1> ; - 396 <1> ; The drive number and possibly partition information was passed to us - 397 <1> ; by the BIOS or previous boot loader (MBR). Current "best practice" is to - 398 <1> ; trust that rather than what the superblock contains. - 399 <1> ; - 400 <1> ; Note: di points to beyond the end of PartInfo - 401 <1> ; Note: false negatives might slip through the handover area's sanity checks, - 402 <1> ; if the region is very close (less than a paragraph) to - 403 <1> ; PartInfo ; no false positives are possible though - 404 <1> ; - 405 <1> harddisk: - 406 0000009B 8B55AA <1> mov dx,[di-76-10] ; Original DS - 407 0000009E 8B75A8 <1> mov si,[di-76-12] ; Original SI - 408 000000A1 C1EE04 <1> shr si,4 - 409 000000A4 01F2 <1> add dx,si - 410 000000A6 83FA4F <1> cmp dx,4fh ; DS:SI < 50h:0 (BDA or IVT) ? - 411 000000A9 7631 <1> jbe .no_partition - 412 000000AB 81FAB207 <1> cmp dx,(PartInfo-75)>>4 ; DS:SI in overwritten memory? - 413 000000AF 732B <1> jae .no_partition - 414 000000B1 F645B47F <1> test byte [di-76],7Fh ; Sanity check: "active flag" should - 415 000000B5 7525 <1> jnz .no_partition ; be 00 or 80 - 416 000000B7 384DB8 <1> cmp [di-76+4],cl ; Sanity check: partition type != 0 - 417 000000BA 7420 <1> je .no_partition - 418 000000BC 663D21475054 <1> cmp eax,'!GPT' ; !GPT signature? - 419 000000C2 7510 <1> jne .mbr - 420 000000C4 807DB8ED <1> cmp byte [di-76+4],0EDh ; Synthetic GPT partition entry? - 421 000000C8 750A <1> jne .mbr - 422 <1> .gpt: ; GPT-style partition info - 423 000000CA 66FF75EC <1> push dword [di-76+20+36] - 424 000000CE 66FF75E8 <1> push dword [di-76+20+32] - 425 000000D2 EB0F <1> jmp .gotoffs - 426 <1> .mbr: ; MBR-style partition info - 427 000000D4 51 <1> push cx ; Upper half partition offset == 0 - 428 000000D5 51 <1> push cx - 429 000000D6 66FF75BC <1> push dword [di-76+8] ; Partition offset (dword) - 430 000000DA EB07 <1> jmp .gotoffs - 431 <1> .no_partition: - 432 <1> ; - 433 <1> ; No partition table given... assume that the Hidden field in the boot sector - 434 <1> ; tells the truth (in particular, is zero if this is an unpartitioned disk.) - 435 <1> ; - 436 000000DC 51 <1> push cx - 437 000000DD 51 <1> push cx - 438 000000DE 66FF36[1C00] <1> push dword [bsHidden] - 439 <1> .gotoffs: - 440 <1> ; - 441 <1> ; Get disk drive parameters (don't trust the superblock.) Don't do this for - 442 <1> ; floppy drives -- INT 13:08 on floppy drives will (may?) return info about - 443 <1> ; what the *drive* supports, not about the *media*. Fortunately floppy disks - 444 <1> ; tend to have a fixed, well-defined geometry which is stored in the superblock. - 445 <1> ; - 446 <1> ; DL == drive # still - 447 000000E3 B408 <1> mov ah,08h - 448 000000E5 E8E900 <1> call xint13 - 449 000000E8 7213 <1> jc no_driveparm - 450 000000EA 20E4 <1> and ah,ah - 451 000000EC 750F <1> jnz no_driveparm - 452 000000EE C1EA08 <1> shr dx,8 - 453 000000F1 42 <1> inc dx ; Contains # of heads - 1 - 454 000000F2 8916[1A00] <1> mov [bsHeads],dx - 455 000000F6 83E13F <1> and cx,3fh - 456 000000F9 890E[1800] <1> mov [bsSecPerTrack],cx - 457 <1> no_driveparm: - 458 <1> not_harddisk: - 459 <1> ; - 460 <1> ; Ready to enable interrupts, captain - 461 <1> ; - 462 000000FD FB <1> sti - 463 <1> - 464 <1> ; - 465 <1> ; Do we have EBIOS (EDD)? - 466 <1> ; - 467 <1> eddcheck: - 468 000000FE BBAA55 <1> mov bx,55AAh - 469 00000101 B441 <1> mov ah,41h ; EDD existence query - 470 00000103 E8CB00 <1> call xint13 - 471 00000106 7210 <1> jc .noedd - 472 00000108 81FB55AA <1> cmp bx,0AA55h - 473 0000010C 750A <1> jne .noedd - 474 0000010E F6C101 <1> test cl,1 ; Extended disk access functionality set - 475 00000111 7405 <1> jz .noedd - 476 <1> ; - 477 <1> ; We have EDD support... - 478 <1> ; - 479 00000113 C606[4601]00 <1> mov byte [getonesec.jmp+1],(getonesec_ebios-(getonesec.jmp+2)) - 480 <1> .noedd: - 481 <1> - 482 <1> ; - 483 <1> ; Load the first sector of LDLINUX.SYS; this used to be all proper - 484 <1> ; with parsing the superblock and root directory; it doesn't fit - 485 <1> ; together with EBIOS support, unfortunately. - 486 <1> ; - 487 <1> Sect1Load: - 488 00000118 66B801000000 <1> mov eax,strict dword Sect1Ptr0_VAL ; 0xdeadbeef - 489 <1> Sect1Ptr0 equ $-4 - 490 0000011E 66BA00000000 <1> mov edx,strict dword Sect1Ptr1_VAL ; 0xfeedface - 491 <1> Sect1Ptr1 equ $-4 - 492 00000124 BB[0002] <1> mov bx,ldlinux_sys ; Where to load it - 493 00000127 E80E00 <1> call getonesec - 494 <1> - 495 <1> ; Some modicum of integrity checking - 496 0000012A 66813E[0402]FF02B2- <1> cmp dword [ldlinux_magic+4],LDLINUX_MAGIC^HEXDATE - 497 00000132 3E <1> - 498 00000133 7574 <1> jne kaboom - 499 <1> - 500 <1> ; Go for it! This also normalizes CS:IP. - 501 00000135 E9D000 <1> jmp ldlinux_ent - 502 <1> - 503 <1> ; - 504 <1> ; getonesec: load a single disk linear sector EDX:EAX into the buffer - 505 <1> ; at ES:BX. - 506 <1> ; - 507 <1> ; This routine assumes CS == DS == SS, and trashes most registers. - 508 <1> ; - 509 <1> ; Stylistic note: use "xchg" instead of "mov" when the source is a register - 510 <1> ; that is dead from that point; this saves space. However, please keep - 511 <1> ; the order to dst,src to keep things sane. - 512 <1> ; - 513 <1> getonesec: - 514 00000138 660306607B <1> add eax,[Hidden] ; Add partition offset - 515 0000013D 661316647B <1> adc edx,[Hidden+4] - 516 00000142 B91000 <1> mov cx,retry_count - 517 00000145 EB2B <1> .jmp: jmp strict short getonesec_cbios - 518 <1> - 519 <1> ; - 520 <1> ; getonesec_ebios: - 521 <1> ; - 522 <1> ; getonesec implementation for EBIOS (EDD) - 523 <1> ; - 524 <1> getonesec_ebios: - 525 <1> .retry: - 526 <1> ; Form DAPA on stack - 527 00000147 6652 <1> push edx - 528 00000149 6650 <1> push eax - 529 0000014B 06 <1> push es - 530 0000014C 53 <1> push bx - 531 0000014D 6A01 <1> push word 1 - 532 0000014F 6A10 <1> push word 16 - 533 00000151 89E6 <1> mov si,sp - 534 00000153 6660 <1> pushad - 535 00000155 B442 <1> mov ah,42h ; Extended Read - 536 00000157 E87700 <1> call xint13 - 537 0000015A 6661 <1> popad - 538 0000015C 8D6410 <1> lea sp,[si+16] ; Remove DAPA - 539 0000015F 7201 <1> jc .error - 540 00000161 C3 <1> ret - 541 <1> - 542 <1> .error: - 543 <1> ; Some systems seem to get "stuck" in an error state when - 544 <1> ; using EBIOS. Doesn't happen when using CBIOS, which is - 545 <1> ; good, since some other systems get timeout failures - 546 <1> ; waiting for the floppy disk to spin up. - 547 <1> - 548 00000162 6660 <1> pushad ; Try resetting the device - 549 00000164 31C0 <1> xor ax,ax - 550 00000166 E86800 <1> call xint13 - 551 00000169 6661 <1> popad - 552 0000016B E2DA <1> loop .retry ; CX-- and jump if not zero - 553 <1> - 554 <1> ; Total failure. Try falling back to CBIOS. - 555 0000016D C606[4601]2B <1> mov byte [getonesec.jmp+1],(getonesec_cbios-(getonesec.jmp+2)) - 556 <1> - 557 <1> ; - 558 <1> ; getonesec_cbios: - 559 <1> ; - 560 <1> ; getlinsec implementation for legacy CBIOS - 561 <1> ; - 562 <1> getonesec_cbios: - 563 <1> .retry: - 564 00000172 6660 <1> pushad - 565 <1> - 566 00000174 660FB736[1800] <1> movzx esi,word [bsSecPerTrack] - 567 0000017A 660FB73E[1A00] <1> movzx edi,word [bsHeads] - 568 <1> ; - 569 <1> ; Dividing by sectors to get (track,sector): we may have - 570 <1> ; up to 2^18 tracks, so we need to use 32-bit arithmetric. - 571 <1> ; - 572 00000180 66F7F6 <1> div esi - 573 00000183 31C9 <1> xor cx,cx - 574 00000185 87CA <1> xchg cx,dx ; CX <- sector index (0-based) - 575 <1> ; EDX <- 0 - 576 <1> ; eax = track # - 577 00000187 66F7F7 <1> div edi ; Convert track to head/cyl - 578 <1> - 579 0000018A 663DFF030000 <1> cmp eax,1023 ; Outside the CHS range? - 580 00000190 7717 <1> ja kaboom - 581 <1> - 582 <1> ; - 583 <1> ; Now we have AX = cyl, DX = head, CX = sector (0-based), - 584 <1> ; SI = bsSecPerTrack, ES:BX = data target - 585 <1> ; - 586 00000192 C0E406 <1> shl ah,6 ; Because IBM was STOOPID - 587 <1> ; and thought 8 bits were enough - 588 <1> ; then thought 10 bits were enough... - 589 00000195 41 <1> inc cx ; Sector numbers are 1-based, sigh - 590 00000196 08E1 <1> or cl,ah - 591 00000198 88C5 <1> mov ch,al - 592 0000019A 88D6 <1> mov dh,dl - 593 0000019C B80102 <1> mov ax,0201h ; Read one sector - 594 0000019F E82F00 <1> call xint13 - 595 000001A2 6661 <1> popad - 596 000001A4 7201 <1> jc .error - 597 000001A6 C3 <1> ret - 598 <1> - 599 <1> .error: - 600 000001A7 E2C9 <1> loop .retry - 601 <1> ; Fall through to disk_error - 602 <1> - 603 <1> ; - 604 <1> ; kaboom: write a message and bail out. - 605 <1> ; - 606 <1> global kaboom - 607 <1> disk_error: - 608 <1> kaboom: - 609 000001A9 31F6 <1> xor si,si - 610 000001AB 8ED6 <1> mov ss,si - 611 000001AD BC687B <1> mov sp,OrigFDCTabPtr ; Reset stack - 612 000001B0 8EDE <1> mov ds,si ; Reset data segment - 613 000001B2 668F067800 <1> pop dword [fdctab] ; Restore FDC table - 614 <1> .patch: ; When we have full code, intercept here - 615 000001B7 BE[DA01] <1> mov si,bailmsg - 616 000001BA AC <1> .loop: lodsb - 617 000001BB 20C0 <1> and al,al - 618 000001BD 7409 <1> jz .done - 619 000001BF B40E <1> mov ah,0Eh ; Write to screen as TTY - 620 000001C1 BB0700 <1> mov bx,0007h ; Attribute - 621 000001C4 CD10 <1> int 10h - 622 000001C6 EBF2 <1> jmp short .loop - 623 <1> - 624 <1> .done: - 625 000001C8 31C0 <1> xor ax,ax - 626 000001CA CD16 <1> .again: int 16h ; Wait for keypress - 627 <1> ; NB: replaced by int 18h if - 628 <1> ; chosen at install time.. - 629 000001CC CD19 <1> int 19h ; And try once more to boot... - 630 000001CE F4 <1> .norge: hlt ; If int 19h returned; this is the end - 631 000001CF EBFD <1> jmp short .norge - 632 <1> - 633 <1> ; - 634 <1> ; INT 13h wrapper function - 635 <1> ; - 636 <1> xint13: - 637 000001D1 8A16747B <1> mov dl,[DriveNumber] - 638 000001D5 06 <1> push es ; ES destroyed by INT 13h AH 08h - 639 000001D6 CD13 <1> int 13h - 640 000001D8 07 <1> pop es - 641 000001D9 C3 <1> ret - 642 <1> - 643 <1> ; - 644 <1> ; Error message on failure - 645 <1> ; - 646 000001DA 426F6F74206572726F- <1> bailmsg: db 'Boot error', 0Dh, 0Ah, 0 - 647 000001E3 720D0A00 <1> - 648 <1> - 649 <1> ; This fails if the boot sector overflowsg - 650 000001E7 00 <1> zb 1F8h-($-$$) - 651 <1> - 652 000001F8 FE02B23E <1> bs_magic dd LDLINUX_MAGIC - 653 000001FC 1837 <1> bs_link dw (Sect1Load - bootsec) | BS_MAGIC_VER - 654 000001FE 55AA <1> bootsignature dw 0xAA55 - 655 <1> - 656 <1> ; - 657 <1> ; =========================================================================== - 658 <1> ; End of boot sector - 659 <1> ; =========================================================================== - 660 - 661 HEXDATE equ 1 - 662 - 663 section .init - 664 sector_1: - 665 ldlinux_sys: - 666 alignz 8 - 667 00000200 FE02B23E ldlinux_magic dd LDLINUX_MAGIC - 668 00000204 FF02B23E dd LDLINUX_MAGIC^HEXDATE - 669 - 670 - 671 ldlinux_ent: - 672 - 673 get_geo: ; DL and ES ready - 674 00000208 B408 mov ah,08h - 675 0000020A BF0000 mov di,0 - 676 0000020D E8C1FF call xint13 - 677 write_geo: - 678 00000210 720E jc .bad_geo - 679 00000212 BE[4F03] mov si,s_chs - 680 00000215 E84A01 call writestr_early - 681 00000218 E89D00 call write_chs - 682 0000021B E8DC00 call crlf - 683 0000021E EB00 jmp short .done - 684 .bad_geo: - 685 .done: - 686 - 687 00000220 BB0080 mov bx,dbuf - 688 get_h1c: ; 0,1,1 - 689 00000223 B90100 mov cx,0001h - 690 00000226 B601 mov dh,01h - 691 00000228 E86000 call getonesec_chs - 692 0000022B E86D00 call write_chs_lba - 693 get_c1c: ; 1,0,1 - 694 0000022E B90101 mov cx,0101h - 695 00000231 B600 mov dh,00h - 696 00000233 E85500 call getonesec_chs - 697 00000236 E86200 call write_chs_lba - 698 - 699 - 700 - 701 ; Do we have EBIOS (EDD)? - 702 ; - 703 edd: - 704 .check: - 705 00000239 BBAA55 mov bx,55AAh - 706 0000023C B441 mov ah,41h ; EDD existence query - 707 0000023E E890FF call xint13 - 708 00000241 723F jc .noedd - 709 00000243 81FB55AA cmp bx,0AA55h - 710 00000247 7539 jne .noedd - 711 00000249 F6C101 test cl,1 ; Extended disk access functionality set - 712 0000024C 7434 jz .noedd - 713 ; - 714 ; We have EDD support... - 715 ; - 716 0000024E BB0080 mov bx,dbuf ; ES should still be safe. - 717 00000251 6631D2 xor edx,edx - 718 00000254 66C706[4F03]454444- mov dword [s_chs],m_EDD_SP - 719 0000025C 20 - 720 .get_lba63: - 721 0000025D 66B83F000000 mov eax,63 ; Same length as mov al,64; movzx eax,al - 722 00000263 E8E1FE call getonesec_ebios - 723 00000266 721A jc .bad_edd ;read error - 724 00000268 E87200 call write_edd_lba - 725 .get_lba16065: - 726 0000026B 66B8C13E0000 mov eax,16065 - 727 00000271 E8D3FE call getonesec_ebios - 728 00000274 720C jc .bad_edd ;read error - 729 00000276 E86400 call write_edd_lba - 730 .good_edd: - 731 00000279 66C706[5603]454444- mov dword [s_type],m_EDD0 - 732 00000281 00 - 733 .bad_edd: - 734 .noedd: - 735 .end: - 736 - 737 write_final_type: - 738 00000282 BE[5403] mov si,s_typespec - 739 00000285 E8DA00 call writestr_early - 740 00000288 E91EFF jmp kaboom - 741 - 742 ; - 743 ; getonesec_chs: - 744 ; - 745 ; CX,DH specifies CHS address - 746 ; - 747 getonesec_chs: ; We could use an xchg and get a loop - 748 ; mov cx,retry_count - 749 .retry: - 750 0000028B 6660 pushad - 751 0000028D B80102 mov ax,0201h ; Read one sector - 752 00000290 E83EFF call xint13 - 753 00000293 6661 popad - 754 00000295 7201 jc .error - 755 00000297 C3 ret - 756 - 757 .error: - 758 ; loop .retry - 759 ; Fall through to disk_error - 760 00000298 E90EFF jmp disk_error - 761 - 762 %include "geodsplib.inc" - 763 <1> ; ----------------------------------------------------------------------- - 764 <1> ; - 765 <1> ; Copyright 2010 Gene Cumm - 766 <1> ; - 767 <1> ; Portions from diskstart.inc: - 768 <1> ; Copyright 1994-2009 H. Peter Anvin - All Rights Reserved - 769 <1> ; Copyright 2009-2010 Intel Corporation; author: H. Peter Anvin - 770 <1> ; - 771 <1> ; This program is free software; you can redistribute it and/or modify - 772 <1> ; it under the terms of the GNU General Public License as published by - 773 <1> ; the Free Software Foundation, Inc., 51 Franklin St, Fifth Floor, - 774 <1> ; Boston MA 02110-1301, USA; either version 2 of the License, or - 775 <1> ; (at your option) any later version; incorporated herein by reference. - 776 <1> ; - 777 <1> ; ----------------------------------------------------------------------- - 778 <1> - 779 <1> ; - 780 <1> ; geodsplib.inc - 781 <1> ; - 782 <1> ; Library file for geodsp*.asm - 783 <1> ; - 784 <1> - 785 <1> ; ES:BX points to the buffer with address - 786 <1> ; DX,CX as they should be for INT13h,AH=02 - 787 <1> ; For now assume C<256 - 788 <1> write_chs_lba: - 789 0000029B 6660 <1> pushad - 790 0000029D BE[4E03] <1> mov si,s_atchs - 791 000002A0 E8BF00 <1> call writestr_early - 792 000002A3 E81200 <1> call write_chs - 793 000002A6 B03A <1> mov al,':' - 794 000002A8 E85800 <1> call writechr - 795 000002AB 26668B07 <1> mov eax,[es:bx] - 796 000002AF E87700 <1> call writehex8 - 797 000002B2 E84500 <1> call crlf - 798 000002B5 6661 <1> popad - 799 000002B7 C3 <1> ret - 800 <1> - 801 <1> ; DX,CX as they should be for INT13h,AH=02 - 802 <1> ; For now assume C<256 - 803 <1> write_chs: - 804 000002B8 6660 <1> pushad - 805 000002BA 88E8 <1> mov al,ch - 806 000002BC 88CC <1> mov ah,cl - 807 000002BE C0EC06 <1> shr ah,6 - 808 000002C1 E85800 <1> call writehex4 - 809 000002C4 B02C <1> mov al,',' - 810 000002C6 E83A00 <1> call writechr - 811 000002C9 88F0 <1> mov al,dh - 812 000002CB E84100 <1> call writehex2 - 813 000002CE B02C <1> mov al,',' - 814 000002D0 E83000 <1> call writechr - 815 000002D3 88C8 <1> mov al,cl - 816 000002D5 243F <1> and al,3Fh - 817 000002D7 E83500 <1> call writehex2 - 818 000002DA 6661 <1> popad - 819 000002DC C3 <1> ret - 820 <1> - 821 <1> write_edd_lba: - 822 000002DD 6660 <1> pushad - 823 000002DF BE[4E03] <1> mov si,s_atchs - 824 000002E2 E87D00 <1> call writestr_early - 825 000002E5 E84100 <1> call writehex8 - 826 000002E8 B03A <1> mov al,':' - 827 000002EA E81600 <1> call writechr - 828 000002ED 26668B07 <1> mov eax,[es:bx] - 829 000002F1 E83500 <1> call writehex8 - 830 000002F4 E80300 <1> call crlf - 831 000002F7 6661 <1> popad - 832 000002F9 C3 <1> ret - 833 <1> - 834 <1> - 835 <1> crlf: - 836 000002FA 56 <1> push si - 837 000002FB BE[5F03] <1> mov si,s_crlf - 838 000002FE E86100 <1> call writestr_early - 839 00000301 5E <1> pop si - 840 00000302 C3 <1> ret - 841 <1> - 842 <1> writechr: - 843 <1> writechr_early: - 844 00000303 6660 <1> pushad - 845 00000305 B40E <1> mov ah,0Eh ; Write to screen as TTY - 846 00000307 BB0700 <1> mov bx,0007h ; Attribute - 847 0000030A CD10 <1> int 10h - 848 0000030C 6661 <1> popad - 849 0000030E C3 <1> ret - 850 <1> - 851 <1> %include "writehex.inc" - 852 <2> ;; ----------------------------------------------------------------------- - 853 <2> ;; - 854 <2> ;; Copyright 1994-2008 H. Peter Anvin - All Rights Reserved - 855 <2> ;; - 856 <2> ;; This program is free software; you can redistribute it and/or modify - 857 <2> ;; it under the terms of the GNU General Public License as published by - 858 <2> ;; the Free Software Foundation, Inc., 53 Temple Place Ste 330, - 859 <2> ;; Boston MA 02111-1307, USA; either version 2 of the License, or - 860 <2> ;; (at your option) any later version; incorporated herein by reference. - 861 <2> ;; - 862 <2> ;; ----------------------------------------------------------------------- - 863 <2> - 864 <2> ;; - 865 <2> ;; writehex.inc - 866 <2> ;; - 867 <2> ;; Write hexadecimal numbers to the console - 868 <2> ;; - 869 <2> - 870 <2> ; - 871 <2> ; writehex[248]: Write a hex number in (AL, AX, EAX) to the console - 872 <2> ; - 873 <2> writehex2: - 874 0000030F 669C <2> pushfd - 875 00000311 6660 <2> pushad - 876 00000313 66C1C018 <2> rol eax,24 - 877 00000317 B90200 <2> mov cx,2 - 878 0000031A EB14 <2> jmp short writehex_common - 879 <2> writehex4: - 880 0000031C 669C <2> pushfd - 881 0000031E 6660 <2> pushad - 882 00000320 66C1C010 <2> rol eax,16 - 883 00000324 B90400 <2> mov cx,4 - 884 00000327 EB07 <2> jmp short writehex_common - 885 <2> writehex8: - 886 00000329 669C <2> pushfd - 887 0000032B 6660 <2> pushad - 888 0000032D B90800 <2> mov cx,8 - 889 <2> writehex_common: - 890 00000330 66C1C004 <2> .loop: rol eax,4 - 891 00000334 6650 <2> push eax - 892 00000336 240F <2> and al,0Fh - 893 00000338 3C0A <2> cmp al,10 - 894 0000033A 7304 <2> jae .high - 895 0000033C 0430 <2> .low: add al,'0' - 896 0000033E EB02 <2> jmp short .ischar - 897 00000340 0437 <2> .high: add al,'A'-10 - 898 00000342 E8BEFF <2> .ischar: call writechr - 899 00000345 6658 <2> pop eax - 900 00000347 E2E7 <2> loop .loop - 901 00000349 6661 <2> popad - 902 0000034B 669D <2> popfd - 903 0000034D C3 <2> ret - 904 <1> - 905 0000034E 40 <1> s_atchs: db '@' - 906 0000034F 434853 <1> s_chs: db 'CHS' - 907 00000352 2000 <1> s_space: db ' ', 0 - 908 00000354 443D <1> s_typespec: db 'D=' - 909 00000356 43485300 <1> s_type: db 'CHS', 0 - 910 0000035A 0D0A656E64 <1> s_end: db 0Dh, 0Ah, 'end' - 911 0000035F 0D0A00 <1> s_crlf: db 0Dh, 0Ah, 0 - 912 <1> - 913 <1> ; This indicates the general format of the last few bytes in the boot sector - 914 <1> BS_MAGIC_VER equ 0x1b << 9 - 915 - 916 ; - 917 ; - 918 ; writestr_early: write a null-terminated string to the console - 919 ; This assumes we're on page 0. This is only used for early - 920 ; messages, so it should be OK. - 921 ; - 922 writestr_early: - 923 00000362 6660 pushad - 924 00000364 AC .loop: lodsb - 925 00000365 20C0 and al,al - 926 00000367 7409 jz .return - 927 00000369 B40E mov ah,0Eh ; Write to screen as TTY - 928 0000036B BB0700 mov bx,0007h ; Attribute - 929 0000036E CD10 int 10h - 930 00000370 EBF2 jmp short .loop - 931 00000372 6661 .return: popad - 932 00000374 C3 ret - 933 - 934 00000375 00000000 SuperInfo: zd 32 ; The first 16 bytes expanded 8 times - 935 - 936 ; This fails if the sector overflowsg - 937 000003F5 00 zb 400h-($-$$) - 938 end: - 939 - 940 absolute 4*1Eh - 941 fdctab equ $ - 942 00000078 fdctab1 resw 1 - 943 0000007A fdctab2 resw 1 diff --git a/diag/geodsp/mk-lba-img b/diag/geodsp/mk-lba-img deleted file mode 100755 index 8d7864c7232765730f9f7ae28816e2b00e9ad837..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 7344 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 ZGX4-LH)Z@KQjV!%exShr8R0=@{{}p;0=fVI diff --git a/diag/geodsp/mk-lba-img.c b/diag/geodsp/mk-lba-img.c index 795de1a..eb1c339 100644 --- a/diag/geodsp/mk-lba-img.c +++ b/diag/geodsp/mk-lba-img.c @@ -24,16 +24,18 @@ #define NUM_SECT (256*63+1) #define BPS (512) -#define SECT_INT (512 / sizeof(int)) +#define SECT_INT (BPS / sizeof(unsigned int)) typedef unsigned char uint8_t; typedef unsigned int uint32_t; -const char DEF_FN[] = "lba.img"; +const char DEF_FN[] = "-"; int main(int argc, char *argv[]) { - int i, j, b[SECT_INT], rv = 0, one = 0; + int i, rv = 0, one = 0; + unsigned int lba, b[SECT_INT]; + int len; FILE *f; uint8_t tt = 0; const char *fn; @@ -53,23 +55,40 @@ int main(int argc, char *argv[]) fn = DEF_FN; } - f = fopen(fn, "w"); + if (!strcmp(fn, "-")) + f = stdout; + else + f = fopen(fn, "w"); - if (f) { - for (i = 0; i < NUM_SECT; i++) { - if (one) { - b[0] = i; - } else { - for (j = 0; j < (512 / sizeof(int)); j++) { - b[j] = i; - } - } - fwrite(b, 512, 1, f); + if (!f) { + fprintf(stderr, "%s: %s: unable to open for writing: %s\n", + argv[0], fn, strerror(errno)); + return 1; + } + + lba = 0; + while ((len = fread(b, 1, BPS, stdin))) { + if (len < BPS) + memset((char *)b + len, 0, BPS - len); + fwrite(b, 1, BPS, f); + lba++; + } + + memset(b, 0, sizeof b); + + while (lba < NUM_SECT) { + if (one) { + b[0] = lba; + } else { + for (i = 0; i < SECT_INT; i++) + b[i] = lba; } - fclose(f); - } else { - puts("Unable to open for writing"); - rv = 1; + fwrite(b, 1, BPS, f); + lba++; } + + if (f != stdout) + fclose(f); + return rv; } diff --git a/diag/mbr/Makefile b/diag/mbr/Makefile index a94253a..79ff9f0 100644 --- a/diag/mbr/Makefile +++ b/diag/mbr/Makefile @@ -17,7 +17,8 @@ topdir = ../.. mbrdir = $(topdir)/mbr -include $(topdir)/MCONFIG.embedded +MAKEDIR = $(topdir)/mk +include $(MAKEDIR)/embedded.mk all: handoff.bin diff --git a/doc/isolinux.txt b/doc/isolinux.txt index eca2a97..807c631 100644 --- a/doc/isolinux.txt +++ b/doc/isolinux.txt @@ -100,34 +100,3 @@ The ISO 9660 filesystem is encapsulated in a partition (which starts at offset zero, which may confuse some systems.) This makes it possible for the operating system, once booted, to use the remainder of the device for persistent storage by creating a second partition. - - - ++++ BOOTING DOS (OR OTHER SIMILAR OPERATING SYSTEMS) ++++ - -WARNING: This feature depends on BIOS functionality which is -apparently broken in a very large number of BIOSes. Therefore, this -may not work on any particular system. No workaround is possible; if -you find that it doesn't work please complain to your vendor and -indicate that "BIOS INT 13h AX=4C00h fails." - -To boot DOS, or other real-mode operating systems (protected-mode -operating systems may or may not work correctly), using ISOLINUX, you -need to prepare a disk image (usually a floppy image, but a hard disk -image can be used on *most* systems) with the relevant operating -system. This file should be included on the CD-ROM in the /isolinux -directory, and have a .img extension. The ".img" extension does not -have to be specified on the command line, but has to be explicitly -specified if used in a "kernel" statement in isolinux.cfg. - -For a floppy image, the size of the image should be exactly one of the -following: - - 1,228,800 bytes - For a 1200K floppy image - 1,474,560 bytes - For a 1440K floppy image - 2,949,120 bytes - For a 2880K floppy image - -Any other size is assumed to be a hard disk image. In order to work -on as many systems as possible, a hard disk image should have exactly -one partition, marked active, that covers the entire size of the disk -image file. Even so, hard disk images are not supported on all -BIOSes. diff --git a/doc/logo/syslinux-100.png b/doc/logo/syslinux-100.png new file mode 100644 index 0000000000000000000000000000000000000000..647635a2c79680f8c57f0b4639341dd3e78e8e09 GIT binary patch literal 131308 zcmc$F1zT0m*EZeV4T5xccPZT=C5?1heZN(}-6@&W<^3KIbicv7!_t`GcxbWxL)fT$WL zIRt)zGm)2-f_Q!V`>nk+8F+%|_(9hN0s`Im?E_gRTKWZe2=Dq)Q5t?31rZAm0g|gq z2m*ov;-i$fhUd~ryH}3BX6Eaw$o`t1{JEY$ZYYKo)VoAiGeiuGBnV0hIxH!uVSG0d zvlL7?xK4j3jLgI-a;k6N3JZg61!|8X0uf*kLcWSYg;EnpAiO*L-gs2p(3-PO-dNru zc*wk}Tb{iC?7gZjpxJ1@>T@J?=aTP|2Nt402>$>1FNTy_kpjU-xL6EU1x*9W4aD_X z=Ior|vxI#<0>*?N3##kh%PLeIBr`}4WKEIi(}`^b8^cvk5fO+S%;s$!q#hIo+T;&n z8AEhAM0?7EIDqqZHt8Vqgt>>Vk@1HU$AA$h$Pw6(1nmdA7bt#3lz zLGDA%JbK=|y?@O-7CZ~&3z9E{nMcTHhxiN+$a4tZ{a$@wJjN{&)8~K<-;GR4?Bglh zk)S>h&chd2ag0#mRQbSpg#C;$vW9x7cu4rc2_|4SPY_3;s@9=leaZ@M!vm=jKze`_ z#w4{Fj*(hvm%>sV?UZ?){Y;w|f8R~x0@H_@ltS@Ad-_0#FK0LU1j-ze0TM~DU!8;c z+Xt7|4CC9do1|MJ0V!3Oa-iB+3x&7%ued?R({^uzSEUgzay(axu$<7F)LRnX-lgIJ zpyJ|y^A6>22XCT58sY#|K_3e9{4=o6HO4wKVwWiU(-_!sK zLKOSg>ftg&x3$f`U6E|k5jr<$aD(P79zg`22+FmYFT3>|u7aQrz2By_%1p$@zHIZD zxFtLc?#>H-JIvOUR550?6jNmcRg|JU9!RRM;R>us@4VTvWE=A{$ zc^9}H*eU0NuoZ+Hd@&;e^$w?zY8xUTsRTm`7+XfIUy`CsL5b6eZ-}}=ulNp7uN{7KKfpp4;mHlA6*c(i)WC6YqoX8oBDMK0@@OMAh2P8m5o`qCv!YUR_^Y5AY`Fm z-z&ZY#Jh81t!?mbE7eqL2%hIz>SoF!UQZF)n4>A-96hy(!v~> zI8lT==bL!lYh9L7ZFdML7|>O~d;A+2g4fNx(Vh2hi#SMEOd?AX16?2ERv&F7vT-!v zoF8r6tUCixc1ZkC;f&vpEB9f-;pg($2$UPaHI^>rTwP@0kQPwjVtN=%NAU&DOaz4_ zi-qmM_!3|FEQx=kk_EmQW*NudbZ75CD*pF`DzW)ocoDf8c27?I-%R_Ls$YVI^D4e0 zhMM@);=mZ6m_f<{gQ$(>+tI92_x?#L9D+!>=7XC4zt#60gMroKhrKo}hyB$5O&pG0 zjCe~#1F8O<@IP@fs1$4FJvTK$;?p?62u&0*0dk2?`#!|c#lS*dg}_4Bv(St|a9^U@ z;mB)>2}4(7T_wZ`h*O&t2_Q8!H5GCNQp?L3C=(Gn&XYg9U#R$06rK^XBY0NvUNQ_t+dV2bT!a}HG z9EbKByb7&KlbI4l&phqX^jpOZ!7F5BU_aUXbzxQ-i_o;Rv}DZ9sewOq#UF~*Y}eW{ z6=*omi257sXcRKUC=)?grPB;?VMZ&iLo5jf{S# z-*tY-brgru$LQytht`gf-r2h30L-ZT1-63_a0j(oHt+(u_a~C>Dh6d1 z#u$1ejkySzDiWKPBjCjscq3vSTe{okt*Pdw{>inq@uNQ#nL=J1zbz;BLeNDhQsr<* z==%d(gV1|n{uz{S5+r5o^^fIRzMTX~zMEO~!?Ux!IKeYIp7T0#cv4pk@ZOkd=kslk z6UnDfpLCj?sg;FqW(V!nW zaHbS|yX*iC7kvuCH}nkRwwXimTJZw!u{&)^k@=kbGP&$MhZA9>dGk%(_eDrnrH!*Y zEVNjWHC9uUx2qmT{+H24lhf0+dcmMrI{(miv6R(yXDWdATq8+Dzd8su>}3O+wzi9^s;b(hscq1=8BRWK8ZZ3SZkdkzYB_q}OG8Vm z_H!3h2RQfqVvs5xr73?d>jAt!v$QnKSlvc>r}DN`sOlyCMi8mfw`66J%xIRDh`G5r ziJCMuq+%R5H@7#_n>X}{wW)4*|17B$c8W6AEa+)ubf)<;m}f z>DATPIa9`8Y+hGpCcg;q^&Ptc&jsUpB5Csmr;Fu1_E!S@XU%CYN-~0L1QY07#R-IE zAuMBeA&~J|c6`7O6DOfx1DJv^0o2sJK%4>f9tf+`~JD$Ugm1({jW~66jwe0zd zy6m|GnC@1BBpP7L!5-^=9_d^lad^_+RgZN8f@yaW_>tQFIyVoGZ9cTOsfTFuS7;vO zF<|N%8#zt;QFv?@YFcyiEd%HKaNYolz$gbPhbs$xsbTE2aeX|6Uj0qONl8h2P1pgu zj@$mc>~8Er5^lv6#r_pAoP0pBL~ed4|FT~d;IUhpJ#Vs^`?;B-u4D`-t*fi+iR;8; z5IouE!|7r{sU~o?-Le@6Vc`_r>jnBN$nS2oag3u?gF#wS5<1O%YOz_*=ZqRoT z^lzBY)^X3_xN+2Ni_aY;C;1z>ZsnwH8k)H z4-ZGk6bUjjJoghjd@n66O<=aSw5vLv25<_{O3%H_m&@P>Dc&^mM5R&>ZSn&Mdu(+K zcX%}=4UGPc2>WyRm*dWtXfuw;Z9cv@&OPi8G|4%DRss8Vu@QofXBe;47zUHg zz*tJI&sj5!xC%nkvSzlqu2tp3e!$DV-T0U1zc;h<^XF9}8#_GWZw#P6@$@H*MZDR* zEV*AwRaF(c&zhu&;sVc`{+Cx&F|;)RNI3oHPrc+-czRk|tw|q}q1SF|t~Y52CJbb8 zak1~2Oa8KjeJ22kz|q>J<(xt_Kq!XlF2We6`(Ol9*otDx==AQaxJ(q+)w!0^YP0t{ z9u$O6Pfn`n7|yM%D43dVqhVegS9j($uKQ8AnQ5THHeufG#Ai zlj8RsMmk&df)_&ZHdW0Q#E^G>0pT#PacUsb|IJ6vMHTVxi>>YVh6eX^@2~hqzE0vG zNZ|18j*gEP0Z=cC=Xcpt7#~ge0tg!J->UH zBC&zL1t{z82aIfrm^kZhiiRJOr`Jan)o90lvXq!>zF@^X&n?6>7K3461v*AXQ@|Ja zo|uwv*YuzVL%_)M z-FoNPV>BM~)=d5j7pKK22;7EAE*OBipW}jNGhcOj2f?Lv?w>*e$%LQ$kHKAnF9g4D zz3n|07uO` zpFdNJi$hVkj7@;4dfjh^KU}4EjuxjI$|);PM8uOv_woHbD0)Qn#DHm~79b;(zy~V3diKp>Zy!QVi;K(&->)q# z0x|4Xm5UCY&wN*dRJv`R>~GUGt~eu)jg9#}F0Ze#Kz3{dBRAcx`M_U~d$2pP!@qgY zTM7U%n!2CPdA?dM>jPs}+?Va1wnbm400=|R&CPv|^18mhR?*b#qfXcF22Y4i5L)JR z0h>7hXwFw$v*m_2KH>%F>cCDez~2DMij0oev!-I3y=>naOYG2=_~w|Y;)Sp(xg(_t z69!hnLL8YW4R+u#R^Ol=G{G41*ZTp5Y@S$o*7g*Dq87U7)qEEJ^)w4a8m(i|Kxq2- zgE|K~pW~Y`eP6BlNQQ{t-$3%UCMT+JQg;II{)8oPN_53=mBZ$`c);EOdzX=J0o97t}xB<-5PN!{|IMEkRKxY2k6!pnZ_*DfC z>}ehIT54+D>o2#w{x9HsaO?VW96(Flr6ivLrp08~mLd9lsNCAhnuGSFsvz+%(18Hv zqhn9_mUlV?dPZmKla+q zigDgfI-|M>K=iDvEKKI9sDW*L|A$?vBGos^rVqK&%yAjMK6Dr@H2Amw_z?+=@6mVa z!xaKJC)KCcGcPjQTvs)Agr*hQw;0n{`4V(|bo53zlW7!*RLtb%jkF|>@le}2PZ}AD>i`h!^ycuq8ZkA&x zQTBqC8)CQltSXzgq8OXNX#g9y{=@L5LaVFz<8Wtyh3*WgV%$PpN%O&B zO;XFJCCC-mFahqeId&4Y9)QuGy1(y-wL7{29>M!lY<_lja&C_2=$P*U1pUj-XJLbF zz^Mr^Wx!$p-amcly6G*m74+Dl{2t4As!-Z@n|OWW2|Pirs^RVC#(nAOtAJ?X4)O8u z@*i}QLw)@r#gozW@^aT%T3(K{eupd}qJ}wP@q091G=Kg1%mZ-0ss;wa-y@WB_?#4= zM5ZAc%s7VL)ERKbvOL+$-}OmZH^Sdl75MiZ5dYr}Spt30-2mseNLa&qoI%!x7oE#ngr z*jgoc;C*^~d)w`M>*%ru-3}c4n|;csF%|sy@uk$zOjGku4f=Zsa^DNcynWnIPda6v zvU#vN4DbzlgeR4q<05=@TN@vnMuA`ndZ?0feeC}K+~~>*4@IWJS71Rq7!`VH zU0p&TW?QJ*s1KS89uA!kArf%}65PmaJhG6_Vz-Z>yA_N00upQluwc5Y!!Qn)?8Kr#~(pd2*gviJn{m$XS}7tOU)Oj z^l}_oNH&5AuJ->WZb&vcrFeP(_T&nhpAa}^5_x@?aQF@9>(h4WDli7HI&XAql&>N^ zL&A2p`hP|Bp9-AgZ0U@(6hr%w!jCe-#)aK>lzruwEDcIWj!$*98q7Q^xkp-9(*KaM z1Q<1nczAN2c!O&n2tWSSngI6;Db_&eP&kGD3o$HF_+71IHkAYZ zVgs;X-8s*|z`%D@R&;-C^!f?oTUS&j3e67SE^=I_KR)+rLY`G9Cwm{jJu#nO{;}en zW53xHAz(`wyl)@Qb#W$zona(J`x$jH^gMzP^KO@TI?ved0?7g_pz&PyF3flCr|$A- z5IR?1wXVPy<04N8z3!WV1 zpc$QJufeXUz63aXewY2k=XLlGFK42NE#2HR42E!N64KlPL@yO2v9&l>uy}Npf4w$n z*qWuC;I@esctA~X+i)2%GRJaHdmbOxe3%)C1~T19ieK-cQ?QvwHRtE&)ipJxWo2bI zpWvee$VZRQT9qjizm=4fBuH5d(w61rVeTrd50Rj?QS4EiSeu>6V8~3s_nf}L65!qA z)ygT{<>&$6dPDlJ&%td3795!p7oTKhgZUqo3y$&v3LXdWv0dv6>Lg^jwTfef-vx8N z3pT*-E06lDxpd%+T(Q#4@Oz3{t10zswx)$~`m)Y0k5*WSCU#d9GH-=Qu)+T4)a8RR zRKu?)@&Se06~8~e?xHDpG-*@;zWL27d7eFNG$h&rw*D6M`Te~%mX9JbJvcinsjz7* zr4*G?_|Ja(TB#Nfqm7%W;d68%=Q3V0a+G2MENJnuv4;scz?ZMQ?Tbf}3cSc27$ zKWl!{DMk~pD4-&;vzhd>31&n}USnw7eMP6kk=rHX`nfXcqfsRHb26mbwZ=L}WwgT9 zwYUG;brO91D!XO0?{xSpHl@6PT+DaOV_}TN2S8d0;L1Q~j^-7!SdW?aGOLjSRRm&a ztYIY8hzyI`?Oj4Dnu=wICcgW8Tmk=yvc!9T7_55I&$|&cbf4iGxW2u4cb}mUs1?rLqQfKzhe*CwzF{wE2~|>7;h#tA0ybfCI1;KnG;bir)+eVYyE>&{DPq z42V1cWI}|$VHB&;vovi$k$G+eLE3ztu!*{q$u<=m8hLe@~_xmF+| z9Nz9}i{SM`8zMOoPH2~X(7Qn*1saeURIq(K1?lHnNcQ3bcWD1>Yk2gk!@bnGP3+X& zk*``n>S{0BK}}nm*EVW)d|ZivkukcMH3ve7n&#b!9McylaRP403s$Pthd?1a^G84#=0rE#ptSD0Q( z>c5kBqTcP&PX0mFNk-eC1^6itsT|P*9PNLg5YUUR5{cA=7D`0Ot zzcXEsb`!-Lxb&$GyxeqwpiFtjT~f4mlq5UCdqx?YUle0Ey{AVvWwn`6uu9|v*-t36~a^LW> z5X8V+;J@< zKK`>Ikq>(f#t(Nz)(>lK0!+n|?4&Xo+6&D$tHyF_&bohYy?I%9d+o2(pLxp4`lG@z zPpXK%ul-*y0G#9!?-MwuypT|I@YyFSBlMrQ3prcid7sZ;lOvy1{-Ftyq2yP2PcKu8 zR1u}|x2$3LMwITaiN_DrUmlir8-lHL)^qgx8|cmPu(zb^iQMy^JpVJQS`^M0ksrNV z__PY|*=T;g*UFP0#hUqitnxhukud_+ufgQQWUXM%d5&PVJL(;?gXOM|u+FDl>+JA9 z3n_^C&J0v|sfmRxv45cJP4K#_KyOJ-_NnA$xLr$HgtYsVFz5*=9bmwK;|j?81{v-FH#z%c70Ev49p2Q_)}ofuQ}v%ZS09L! zJ}$p!-b@P6%E$vyj4UYd&?r4ZMXhUEhvDqEk9@VmkJmI1Z#ODGd3X zzUPJlwlU(2A6g*uA0JwMAI9%4f-l;Oh~>SGMMZi?zY_G*AwaB$!YU(#ytJ$ak~JQ{ z`2GTPjqxqTNFeBdb`+!>H8mm5bl~QH>vP^e9i^Dd67Kgn7CevYc$WC*>FHIW=a+`k zWRJBuO?HJv8nLvp8I(Y+bZRWKXpS>ejfTR%5^z*@BfO8Pb!M^$caNTr|MI7{yY2{Z zMDhK(`6+*4z@m{XXywd54sRAVO&Po zo5|vcvfA(Z;T|}LbQ1>=e-^^lTIFD1s&7t5Y#K5sb=Zg@f5{c?TqAy+S2?_xudrbI zHT^F43K4#&r=c5_F)33ca0vC+fNkHZ19jAm8vY*1cd^m`W;-4cm&jfNCsh-i=~hTMD8r-h2l4JW{_G(4p9SCn4f z3GO*?`nosgzxmwU&6Vmk9mH!v7~i3TzsKiaTnGv|c43SMG=BFx^ZfmLf%Q4Rm+39; zqw`-QIOwa-WwF7sZ?aXOk8#j(ofnvMkdw5hGr*1de9kXtf2G+M7|`ZNid=0prq|rd z1i|ZTLH^?07j&YHPkjsQJYc_94|-s=GjH#^(aD%&6>zdZ z3Ak^<1-hMp;Qn^~6a8=QegY;~mvSnSn{94e`;kJZ?oGE!@na{}od*i;Wwoc>SbK|r zV>ka7TN`8g)v4IxpKTU2>ACvx^dj6(sd|UZG35Nb zPjqdGx2Rxp&-_sGi|ctbv;JAEm7Hy@G9?}~sg)fvzQP6z_3qt<{ZCDQ3u2#d`R&|c z8*@ZcpN|U7gl4J(uTiXnM}Lw(dU!91PZ4Y zOE%TGt@vwDqi|V$QvXg_soVuh#I1(3!_SQQ)!7PHS9EqSg?!R=!pGIjkF29CG2X8U zYu&auZdk5gKPxei#=*ho#!pELj zsuR92#}HmP?&U}=Qj1FdcnKi}%HTM(IgZ_)2gKyiWcb*aK%%_BQx}p8)m)p^$QS3a zIU7+W%<5?7r6#D;qv>gYmd0g~9@~lO!eyi^>d$uELRMAX#JTqSroGMBwwa_u(x@`` z`)MaPU+^^?6tw?m?~&p?*cJ44dr|Dq-o8&t@f3%qzRB|ICZG{4!9#FLPJms(=)oL1 zm$k0~_Y*3g8~^|SjBf1)1jeJ+_vDJU1SxlbiQC5KR)lK0wJ(N5{Xt-2HHGTQ?bj9;tqZGL*9ZCX+6za+iw}{%Nh}9X>+Wv6(1|oJJTjA#aTff-&A3 zDFyC)56RIP9=H2LOzo`a5`{6FF25PRfT3U7O2V`A7Gm}ZEtKL^^(?}VOTdYTtvZw7 zpf8wuzgqZvgahohugRZsAJaV&My11*f7bAymsyjwUyCW(l+#J2?+fqvp0Yu)0Z{-h zhN}+@B6{ach%H1jCgQe_&dm(nYia(*DF3hgGV~p<^wd|Bw@D5dIAqpDGf50~M z14Jcxda-)$pI#mCeB8wNqA<^lU+|ZO^fz}kjj+<=n9sEtG-bn@uc}w$qS8?r*8C=%fQ}U|Ztkh+X|>VkZVb3zV~{-2ng3w% zQWa94YZlFAe|)zWTe;Vo4`RF7vsyH|mPEz4{Lc`3w0zu;;vRI*O8&8A2X_~6vYw-# zr1_|coFa@~MGe_78&qTa0uhPcR5GGY2TNadzQcB*QRl$xofYSKeRCL!b@(aqeiG0+ zaG{O9@m&{J=M(M|q&dQIZZa_oZ>W5anuvJ!fP52-fe1}{oAeL1&F0#o-iel++6kk0 zXUgZc6Y+NRVxVBKUl2~V^?VmCVEO}U7$Jnj2$vJ{t(|JiR6sHX5B6WCoVjsD?LOe> zjyKW!zF(#H5ZBzmBAIFGsZ-Qp>$WqDzmqDhu%ml#1o^1R>ILR#*j8x$I$nPr4PDSE ziPM*Y?aA0YIA3_Cd%CgpV+-V()<~tOVD;AkK|icyMp8<5J}xqWWj`gca6}unKuZJ; zV}aRkGd<^5-Nx4`D)P8E;k=*gaT`T9=`!$24W2b9vl6PV`X-jXsG$&XC6hj)Y-F`N;oyGR-@oSi z9iF$B@8uguoHdiVb7~I&B}*LHR~gbDrHu93TTmet^T@KNuR z@!?8TrO2LL3}U(~VF-DkXvDrD=I{II%X)oJTW0lgs$Sc$IctOn(yyTj445{=HZ`wZR8KD#Kg->qP0G)id@kxqphRk6s_|EHO}Pb zE6zmQ>X`g-Qrmo%xl5_MOXTJrA!cRx5vYIbB7`tWtYH{{VyCA=< z4OlY+&cISTP?;}Mz2ln5YpnyDZpcS?7-2Gh50>mtld?^I=$cy6LzY!E-lMvLIPlCaGL=Y3EYGRlvio4L$imXbx-^;C&|m(kb%U~N=IVydj+=8rc( zJ@|u0k^0$L6}%*dvB$-0c;J+s=Qy}>eGlXBz{8Eux4h=Svzxvi!az^X#Xe#MD}(?A zl-WF=Z{`OiMZMtp#73nF7#o0u*a@2m*9uzIF&aZcKY>Z9KVjgG-z(zM8Lk*F=-iRr zKJe0(4jT6l9qp)nNeZROJ{O*}m%@~a?pH0G;ISBE(8IA^-cjn25vJnJ5ie29bbe;MKR3N4{Dnr1m2CV6h!ZQgWNz3M8;IUx!#S~?H)ReCCiAAFiMqwl5=q4tl zE`C0#&tc>%=Gsso1-4j10F5?5pH`vp=%?Rp(Ru3!+oAj2Bhail+qbQLPodH4M_UaR zm#qeaV{YMxYN-7%Qlidif7W01=+*?A`@K5Q9)OlWKEuBw;-E_tp6$~ zj1L)Qrduk4K<7eiDxerSwNqj5VL%}gEBF=+A z)dMy#+!bB0obf9U$z0oim<;(!VMEcGCb+p(-?Hi9<_VLz)_mss3kzCG^y*8wgFmd# z(P(hxX?ZY{96gYpCY*%&^KHza1itbb~s5 zsJEp8AyiG|C|e65?TZdn`{Au&+t7=6e# zIHqP?*8*4M{P?4T>^FT`B$D&%MD@PAqK@bLUF`RMgIO!Jzg|krp~wyR6R#N0rRSBA zWs%&$gPBC4JkKnfEf=8~2`X)5o@>9?mWsZv4cvF(OeC@TvDWsusSgik&ODfGDKi zQzl680)eR(e*r~KK;@i4knl0xDb9J->BYz4M!g0%w#M!EbB{Yk{ZmM!QyZaqO|_8n z$@xmOgVe^CiUbB{L<&3*ogN)4I9SEE4`l1q-aE7rM)$(5b!OR9!K>DT{gX2@J@3Lv zx?9|icMO>#0?`?# zo^B-JfKVJRd!wq$Swmi3hq3`me=qYfU2SC+#{=8vuesB68mlxiRG5E~%?T=3{q?MQ zIQjC7h7W^r&&L@@>3-D5r-=N>?7+z556)h%@x0tJITw8J8MOnY_ojrdf@kqz$|nhZ zV!a-V>+Z0jk#5-KRk5?dyx(39KxO;!s$C@?1)sbhb2K-D-nU^#S#~teK(s;4#?}Q? z>ih}@s!ODl-r^qcLxLSj?u)P2C7(%q8A;D%5(3x=F2Eh(Rm=?6$$M$v>39meGUc7Gt6ig64`|*2u!=V&4S`rJ?W;lC#VHp z+q!+WsXv_5&l|q=G7+op1YlkuZ;MMI=2NcfL3gk!8~}_;`lGAkZ_h7bh#p*-sauY8;Hbj+9U2`q}fLCn`dJOoPR%ubgymq*fN^}^u1+J$PfQe^aUaL z49*T;tN2&zjwr<(Dvve&^o#lrV#$DZnNXS&UVhsXGb%z+9 za_y$$z*-T@DTxBH{Hf2ibXc3ofkS~uYAN5lkl2cUTtL3d3PP+TFe=iA&!Qz-%L@8Z z9gIt^)qkK*H#u0v#VeVwSCZzyiU}4@rMsZ&J^-Jp)gM>2#yJ2z9D>g;JyY%+#e)T;nWqrcp-hF0c>c3(a2%P(*;nLnUk7SB4 zP(X~DLO<(jTGLZs@$mRHUAlNK{z8QC8w1*VI=(~kvv~KA#cwz^;>Cme^=yeu8q_G* z*{O(iLtY2NPtOpu>d1&ZN*3SqygK-5Q7X5bG0O zb6r|tavF3ypF$e`j@iX~Y@Yd`Y8!e{&l?5!P37BHvF0KPF<8*VD1sVMeF?|2#zM!+ z{*F0T1AGpPQ6Q$agmP*AZ;A=WIjmP~*XMYPZE_M{Vq_V?J# zjy=DoD;~YT+mM|!)M1kNQp4Eum|_q+#U5gix9k;7d1R^({q8_(`08E9T85{LY8ujf zTbdi=oO0h!euz)jDAi-YNu6R``&ZHii;OSA-_tlwY4NULf*oFO9rS%p>wQA`;%G6~ zfiA1JRv@4PvAvnHj4(hzjTpv;1UW&=aX3cF-gJ*+Z`|*@nJ%YjfF8ubuw{~UoO)Ci z90M(-y632(&MqhJja}};3}df^0%kNsxz|FP_%btWl^p4x;F8*9hU1?;C&@ys{#pAW ztX6@+(Xs6lThxb=E}XQ1GX0wDZmDAx>PL(PT(SPoYnpP*(6%+urbP1$l)5pN#JhUK zZH_oXUR!M2+j{E-;XYRwQMt;{o$qs+2yxf{&NVjeW!ZeE_DII>@Vqp6L%kS$)+eP6 zsE3=-L}br({mq_nmvGe`RAN=+d@Y5AVC#j@MYZrFmJlhz;c6&N(-`~UnCg^u*uz*E zF9W1)XaTmMnId1tNL8|`Qn7rtGhMxPhZjXx@YC0(F`WUs|ucxnu3Eik9&~z0) zv17z#Ic502*pd!JEl9c6zpI(_N7QQQB?zfy6dPchirml$+%^eLR}n|1C%m=N0o6E|${Txdn@8xpXr3&Z zfS_PFGo`u|WggTXL;yZEj?7t5_;GW%Qb$s9(VIEA2_NWBm;8Y*)E}W!M?4aPonaS; z`}2YYqg#Z4Zs*GwM*Ky~z7E$Rx(FH{`@J2?AF&jQvI3f=!kDSvQ+rA+JR=)ioiO-t zeJ-!_zcvHNf17rZ%t7w4m$4rl&Rj;jS}LhX^_uo7x~Q;<$q#r~v$Auq`TRUj*J;%I&T)bx{_oYfb*DQ&F@oj@Al z7HEc^0JdK_R6y|pRZ03tmv1|CnaH7jOPrkG`nQ7 zo5JPa_tKVCR+6ThjR+?#i_jFP^wYifNAxA1 zxN-E02U?K4bO{0fh!Rff&-a!!=?NzretA6QWszDXkaTh3d;@_`?Rr#vHy(>gx!qjJE4nM4h$e`LZgtZwmB##;&NYZT7Afzd0UeW9+|6o6F55 z+cng!hp>0yK&eX_xJEP7w_X-nt#iO>LZ@t(at=?tSIv_Lm_C8VC_|4&3tJVXV^5^b z`q|piHPcTDG=iUH>~gv=hX_?lM8#aBkudH*rF4HyiwP1^gdnxl2uUWmDKzSROef}+ ztN%u2x3CLWG0a`O`aAZv=z-rwy+yS5uCL5PWv{qK%h@lQ13NqRlDT+}B(VATcTZH4 zR0TfkJft?ncpTpX(7QD*EBbdTm&MjEzSDM*L#s-E=w$KtkMeSw#Dn*VA10@!#PxjO zfp(|1T4&gims@ShsSkWV*L^5jT6};$6(nh4-j!lk7W48$<|>m#o-}h+P0g|5bc12w z`V+ng3J(8%et^gw(30$V7*8BT(;ZeD%oYeQ5;NcjT8~|NHR!vX5Tl8*{t<4z@L*u)l}*NS$GX1AEJ1`D%T6R`oic=S*!&UA2#(NxovSdnL!emQX1 zn{T(l`2xf1_#4+k-bob)=9rKa8jAs(<(J> z%h?m1rR!j~0|KKu!halc%sQx+R1)1hvG+4&Bg<5D`2ukii$q5&Kioax#XEPEhNLI& z^IYmRzxYSsuF`Ms8|%61fc$2c{pne*Y(Ncd^aM}s?CRv@&*zDz{jG#%+UBYiQ_?uTva;?R=)#1HQyq>6m6lJj>? zq@#5lyMrCc$`ORGZg1VKt*!gj*V_p1E!kC#DIm%DbeLV6#(u=pao1%DmtpqM`O-Or5sN*R&DV;^{=Md zdYaU;X>o{t`tXcc2g}rRiH*deTfS#zyu1+9n9bqqG;}Ffjh~8&~G|MyHq_H}e2K zaYuu4Q6PkafkQlVIFlfWE|2Y?j^nX9%!JU`wdiI_>qs)@>!oHHdPUi7l!QxPe*ljKJ(=57cen0>B>2rIu_#q>aD7Y zDu!`SAPPeF^?UD`?;$@mBjJ3auRFp$hX|{r zG|YFB`~>b$W+4^7x4;;hAQXqQmnMp~`==_lZZhsRQ6=i^zc(Dh^wlhF&-fd3BP zk+n_P&!69G%ah(3f47`s*uSgM3kbG;aHY|yHA8G%@#XA?v8s%ep&ZTPPo_`4>xz_d zBq3gI_*DnA`3Xjjk4x}0sDPk-ML}R8-}Tb(buq3qk^;Fj$#ThZr5App`>CzAU+j!u zp2B>0D~xtS!@!M%+zYvs9e_w^{5u$GKW04-O5yGU9i^qzMzsh&fx4bXP!EP->ShVE zXz6f!#r$SB3JyFG&4pqdia!p_)7`Zm3IAU&K;yFJA~Q9gH-pCHq)3O)CP9Pr4ppbz`~iws6u+u*yuyGfj;Z)$`FrO@rE=&lNeZNFqpd1eB>hI zR{GxiK8YT{EVau1A&bH9@`^Sk)1Nz)UGtT4zAg1mKN6!1vuJAgM}UBee?TA|$u*BS z7qkO8!mFr{0}=C(W^Sav&$$aF2NmbJKDdk!QIUfEW0N?_6$QxJad}~~@U&!kVz1H? z^qjXca$MQJFv4TM?Z1Fx7oupBY1s)E!yaM>*V=_T2ugyLpm<-9B**bsGBTXEpZs z{95^6AzOd;^pj81AsRJWD$_T;S%PsBH>)=}@n*i0D2Z z9*Bue(@L!ur>3qhrjJTi1ua~KKrQOSyRDxt6FtBchF4>6>mw)l%S*86UGqfWTgqP@ z7K8|@hV-1tl)oGGqzjB+GRv!nzs3%Lbp87cz5zmZPuv+Y5IN|k9drRPn54TZAZ9Kg zb(6?akoU{bP^IzrhbcEY6w)>%ulG%(PK3Ba$kY=lA236beg&0LzN4gspOE-Sl|)Dl z`$bMAP#*>oZHJRBg^fkia-OL@G*Q!fCNxOqwgQt)gF7XO9-7jO$wUHzIFm2jtV=>A z!Bd@ziaH{JpKrS*`2FvdoIeFTbx0LoBA6;-E8c0rAvYMJjVh9hi%<>z8uI0Lz>wT0 zk+2jT6+zyBurgk>9q_M(=Y=Hqqjx-Cd`0;jvz(d-c{yM$gs(VX3ce(8-MbGnx`%B8 z?xOn6iXBO9ya4y4;*FmF81>EM`NLK<@4;pqxld*1NvPI!F_jHt+1S|V7#j9ZnacBd zUlYKEK$^tdUl_f>9<_AO&f+MbzMCyOB3k3u_v%aiT#}p?R!*`-?6CrwzCV~FnPxut zn}l*&-@Y8U$%)T6Ek_w@G!&QW1F%HqIc9!R{{6v_a4>Hjf3D5 zC-^H?ze9P?x!-wi<)h1&`hGltta;5b6EP0)pi}95j=u#HkVyzW<51NN5G`mQ$QrKP z98ZX2sJ^xfs*rNT*$DpJCK+qM!~B$&Y*+XHc>3m`O8@`ulZ}&YZ?)OBH*eZ(+na6g z$+p{U^Hkf$&9*jg{GHEt=6U|DnP$52zOUEoQhT%9EhmcR2se5f^?{W5CxwN=Fl1X8 zS32u|IVse?JBtXYZQM)1LC7si$zHB0usY~Xut8W->7!geH#~)pL^CP_jldNKsOSkf z(kK%HVkQE0TzgX3G1!>W4m@H(Z4(Ujp9-H)Y@LrYF_mf}$`f1z(Kahv^n~^GbU80Q zcHHMwvsf~SnO6eZHv#{;e_pO?C{HkK$?TTi2AH-knW&&zvd*^YzhUqxU(o+FlxJw5T< z+@{$V&j$D-0|MF9vp(;v%*nKCqbt7t$?w5!W2AEO`WuYl4>-#Ade}qX{rb%V*Rl6sn)N$(Ui~A$n<(pj$7(dyA93@J zZWq??kF4128?=c{hV_+p@x2?M6PW;Ayt)nB1}&zx__*A!qR%PfhEI0>qJQHuDPrBS zu8i_b@?^%trXQxVxgaUn4ptkF=k5=-T5MQ+RJA~Z)?^TNVqA|G*W%5(i_A=N5*%Ii z2p2~C(8ZxZ>yP^&u{To&`+2_ z-F`hV-4ywPHc#M#0?}qVqN}=-^)Pi{sY1#PoS|ZhgeQUp zkNRQP13%v6%=8bEm5S^Bv#z@w4^A?nq1r0!5 zTE4z~>_*si6S~d(s&YC@jzN*1n>zwIJl{2_S8PW~AfY@boIma}clZVZ{yk>(u0Q5k zH2~XFc_WoB7G%xhsY>YD~}eO&bwYvNmPhk}WlE!t*0B#Li0m z&1Z6FW(yo&u3@D|3(qx5zqw{roUIKzK-rm=Au1=gP^n{c@DM~P!I?^(k`Tx=Anyx_ z6_^X`&X5`dhoN1eu{dLaQVy}qV)g|ffVILXV`kKVpH>pDgN2N-qU4CH7AH#fuV4Pv z#ir333Oq_@yT0>8lUgy-9BPf8>a8ZTOY@k2G^M(9q&Kci{{G4t`6ryFjADIZs^5b) z>|ne@TcSu#ua^ry(~0q57HD=SnNR(?NnD7Licj9P!|nb|sJ8aV`A$v5%N;q^ka>S* z_$UA|*TW@NeLL~nyd_)r-iwc7H?_4zUjCT+K|LB#wbWR^ES09kKjBeMP$+Lw_H=di z;kN$XvX*p&c8^9Z&lW{t=0XJ2yWolOB%VOEj7dY4T3V;iTVG6}>lq=m?Vmhl;$l=+ z0OjRL)UQcPK*#eSWg&vY(r~29`x72iAkJ_&zsJjwwfCv3-D2_=K9ReDj|9WE+xDO* zh|e*^v+H|R)SuD44~b&AkEhJ3mkHq~{P$1RmT=z2oYox_gBr%|LH7T&lhA_%0+W{3 zmpfK@N3b9Oxu|HtPNU{%XBlCAN?)iyDYB!O3B>@eFpBb}VbHj`W;fKCAvZ$r^tS;niL7T4D%1)vISSiq7@f$V>6jujv;pR4((Pc5pou5554J)B zVi>8xp*nIx5=moJKM63Ju}g|(PO9p6mnv-}4v7TqZSi7^5 z0eR|n=HzNSD=3n5HcLzBz;)DjCY@DviN&U{f{!&%c?d?z?n0kmp4=w4!Lto$h+2XY zEZilo$QkyBcH1am91->f{X*A%_lszB*i77&s{!mbiglds{#p@8*2BQ}q}2ONe@g(W z{mN^Y;P0otn@`?D#G63`)TW5u4?pV%2L~hIDYwu8M1z!Z0D$ z)c|;-=iMK4RX6b6*-=l!%f~&kko#4=A=9-XQ~j;r8xF(j2#smrN^YNP zzqMpmx+n&DBxy&Nxyq*3-t^xy$jQsQEtvGPsA1Vq>TSEKrl`dV5;9zQOGLqb(nXMB zWY46AMrveG=CTnV;Nu{SqN&K8)^+D$z7bRmww$ zfNs8@Q<|p3Lcp2X*d|al5JyXk8#A6;Rosf33w@wB+`!|?)m$^bLv{aL-9vuRlPEi@ zM30}>tj7WdgA>ZWrnW7WU^WHf_4myFa`Z9=m?}{~BSW8p8k$;TsAFS6+4&=b>&!S| zB}huj3o7=i8cMTDdnt;aN8Vu&{>FUmCV_Avf-Y}UbuYm(yFG@Go9hhqaJk`EHT@S2 z;0W#fmO1q%kGgI5tvH>Ls&lpG60>$4Rf4Ko55cCrSMGinJofh!u%$nFW(W6FN=&L0qIo zgT`_>mKlEQ>Cgb@ETLI^2SRWiBr-_e2`a8j(s96**|y4GTNF## zDR+pa85hde5X8Y=p*pJWMpqaTd)DG6wC%a(&2#07I2bC9MSZwVLRjxIt)K<1brGi! zYY^q42Oqwq3pyn!{U;>L*OdNz!?N&?s??*%%!n&x%A|YB`QxGN?bM=;@Y^H%iwgHH zwFhP{)ZZ(i0M!1kU!vs5Zqxgg&vtsQ-rk>;;s##&gJGWL$luib4?Y=X26-tU&2~K7 zp06~*=;jrsA02xNf^u^Qz;|2_0OV60uAN6c#Q}LA{a?+<2Ub^C_t{6up%YI(eHk9Y zgwAt0NLS_j#ULuu3$r6Q`!kJdM&Jng2|V;t^M~0R<8Q!z;^lS@#jG195Dy=}G4LY* z(_5k%dyZkysV2h8%F5+l>+252$91Cf-iOZ~QpdwsK=-Luy#Vgf%hS+5G{8|#$7_BG zz!4vM5uno<4jBnEuSy3_nZl{{ZRQumTeV}EFDXP3_g9nNHTTuAen6QM$c-w64O{3U znJSj8vSgjbSTnf#5WGD5_>CGmrWQ74m+9`6=^lCU11CLiPzy zCx&6pq3$XEGG9{4-hLdKTubf3o#smCmrq*RZt}aGyM3XU4bGu;WlToVF+tt4T*?57qZs?h_zb-u0 zaNzt8cXG1#Gelo9`^HGU{9!i#$prCaaVeSAXQk%*t+hI=G@6YK|4URkFI~&IYpCxy zc5n1Kdr(u!9oXGzFFex~k|NPrKi2NwRgDbtdpI9BJzYf{h66~3Q4C_5@Bs}x|CBz( zV!Xi_{+s+-#5{F%cKhbo7s@>4Jc9c*r|PzkVETKYC8IYMwD&5SUf0^VrUToXhn{Hn z%>8eThK^-=rbEnU2?t_Vtb?YD3L>m@f$dg}nV%$C3WS=5$Tlv#*fRzxnoC&XMZ0iV zB++irSRQnAn2X2FA&E$aI>SIgliQ*Rl!egk1q;?jK5UoC(`jkhOvG-t^PP0?rv&oR zLq;>JO@4Fdq+_LRt(;iaTe_KnZPFsQATy4uXwt@10!+IYG$Ima6q7603fdl*6CYEGou znRtq2>Hx>@tc3n-d5T?eFrWKA;^kTwzA-e)kRZYj3+EXaC1-H^YtvMt)ht=}Uo(&{dbzrO;SLNPx$INA@)&jQrJ$CZKLwmvc^= z%ouC1@hRGV>K@QK6()q9r@SmPt37QvQoy27-RSFe*7l+d!10=KFjC>CW_98~Q`&HK z3a5@tMXswW-9D9Iepr?q>FKu^-BITK-1%{IEmuYmY*iQu3Mec*N1P_hg`2BTRenkP zQf`#evowY_);y=Uh$y%khf(Q(YdEO9V#Fmnxs%Yro}9XN7Gfou%YTL!$B8xK8RSIm zoN}IZRL#WBd%%q&ZWhHEo<2s6M~A--glYG{@%RwC*`QB=_y}#F+Y@oRuextl{$sxR z{GYDFwCSiSm{_~cIl!}@DZ+x9s@O;}2vCVe{xz1;GS}A>^z|lG)i_@VBRJ11UrGOl z1?IKqasWZ>w%%3^qmpPrrY0t2f^EENcVYbWN;&@1L~8mPRs14B-RWjSWz%v*CQG2U z<72jY`Fa;J=^bWNtW2qm!MG~)_LoaP3Uli=6huy?7Dfl^5bS}33qj{8(KqbP>u27A zs;V(AEMCrT$eJ*W*n?LHuF@Um+CS$+=b?mHMFZOh?a2ej_(R~M)JSrF%v==&jrn=%d>9EtDBB33+m(**2#znS4o~r0PiU{t z^&ih>MA1&G%}D=6SM+{=QPILg2x^0RI?S|woscS=5=ei^WIi9x*bJ=+FV@6*rEvac zjx%1IK&s-HjNHsHO!@U~nB}U&8e5+`N$01Or;;hOg$bR!wxWWwb|q(2gZBiNFC8Cu z`+g25-B?l~ zORcrvkM1grw4j6i1q3cPCfp{a;kRg~IR|*N-x?N&MkyxeE?tXLMkqvqSfZ(eLfc2> zSy9c)#u<*3CdILERcEAH>Rc^w$C%4K^vW5T_%b-XSB{FE2*Des-jz3(mcB&!Z|7Ej{hYqr?X|oUfc>Zj&(E1>AW0w^Z_jK1a@d9!)MjCMfd6){bmMBw z^axfVTFC&aZ&tEHO?z2Nh@D%C1(T^bF_peHPuFO5= z!|phWos2yp$_vgkaWtoEQFKq%W7$5|0I~Y0eS%5Ch)`pD3FG{*;i3?@JEmip4*mgs zz>i}LR(4Xw&I9RCjw)1|A#*{6Mj9^$#>QuN(8}OZ9(6SQ7DrtgSB&vYed7ZA@l#zj zW0A^k_&Ni#V=2^Ca0k&_PeFrim|bv-&94Tu*I!3s#OT8I{ysUZ0XKku<$zbDAdRve6ZxYyGq%heorvo&qTE598Vtbx1~ao8*1T@FImP3 z=bDkWA2kch((>r~6~C_pqA$18yFdNA`gbq+32}J3pg4zLMkWLt2S)0wjnH$#ISW~A z(K_Gg!ne>01|?hY6Tre#&bonTz}u<$&p0BlI~by6mY?f=rtMTB&q@%sr>qJtnW>|Db}qf*s`bsL3>Os-(nS62n&aL>aZvq7uC{8vZ*r=)qv2ljQ~1o zO1wjYOvECo6seUY5LgEr6h+KLYD~Rb28Yzh;gY)R&RizZ_^>%%T<7L=onwlwB|8xo zzp_vf%?j3JAfzUek5XasMoO;GcJXj$rIVqmNFETYqCzXT8l6D3MVhoXH?5+R0`PMx zqjKEHOBNji@M!sDXRs;(1413D>RpQwW&^7Q7+c!=Gd2q%Uw?B9C$w5(@4A)*wOY&v zAAaQ&^lX>p3e3lChM6+5nZGM-I5%B+tCq34qJDjO3<`Ms5zO?#Be=MCS~*WTV1&B; z1Fg1xGr#t>?lawc;WJRPMuzhPzts?bL>V1WOokx_+BU+g=j_|@y{|VU7xfhc>gj%7tRIE2*v?Ew zpZ4yJq57w-pEt%h*}RBgyk*OF1nnv!Zx@u6B)_`cg)s>{G%1`5FAsTWpZ&dSP8w0? z3ZnJ_@>pV*t*=O6p-&>?VX#%k0BMpD1!f$|Js52Di&{;xC~Zb9(J9z9D5>+zug1Y*3KVe6pd-ZM)$UKlI`X^l>5p$!xwW!K zk!%dZDU`wD_7V!w+%{NLib^#!Sw%51GIV?~yP6tQ{VAPtBK!ojY?6|91)U-L{AD%$ zuDMB8K$iRyiaM-`94OQ+Mjt(2U;Em`CC&Wx-6c)dON-Te78dP%+fPQ+S>NdfF6q|y zf?|7-UbeQNe9u15Pvo7LU5oTkUwc74ZK)I>kS}v|{&)2fEB=l?y|(qeU3iZPZn6Uv za|wL13G3dH&yp+%O=F_isltd38is%W=Fr5o(4~rquB;FfPLBPw!oLRa+oMl;{HGxvpZMIoI1cJi?+?m)o&cxs@oWi zuFy`E9P@D3d^cPso{JmzA4rWj)p6K@Kxml3g7HS};1mWDKXpnCc_~veRAnp}qzapn zX|R3TFe)k)kGT}3rEbNV520^e!hD4~0=s8tg5RyfrHB6diFuutw_{saQ>)cyu%r1I zcv{^8nYz|AMoXe1Mf)rr{iOwcIi&V;9mcX!q@C{Jb5>Ui=w*>(>Z?XZ`s9*aAb+KX z{6yS>5}Fd2krvC8n=iJC83#?Ov~1gsZxT^Hnv{|zSA4Sxj*1w?c5nbN15^Q1l` zIw}u_{B8#lJ}ME#4dF#NB-KY&p9PHLry;W{(ZjmmXULMMPo$Dkey_cZf|>vb z%7VQIIr4BDxJ`4*HM%HpI+CECgyHrT{ziih{cIVOq&oIX^}v#?WRL3~-)|mbZgF-H zB;nfu^%}XEG)XWdVZ6xYlg5>B#@7sX0@Qvm$Ot5>07Q7W7|N*C-yY^pB!`iLg+R8c zPg761ZQXEv_iKIefByWD#kiN*I+=Z2pUpi51W-lwk@dF$y7y2Qa?1c@1~MBuNecO9 zJmH-+{Ou{L!?xDs|Y@s4PQ@ zM-g?gDwFs*=nirG+0VZmSY(wlffaH)NgFd`d0N}fL6u5uFPZ{Lkx_BGG*)pir6VY3VD1xlDonJ^gx*L2~hDXAv1%O zot7bnq;??4otBCfyi(Q-Mp*JX`*le<>AG?QKTJX=7<@o!?Kp9M(iYSk0Ne?##TY@% zG34G|hI#@7@#Kjea{tHHvGejiMg@s$xj?jvW)2Q$n=eS)3G=h;GOx#p-y$KBg)at+ zAj0aiGYDDE5MdE59vCFRWemv<4IohBNQqCZokwNM12x8dEY8i=uA3~^<)-HGVVoEX zzQ;mQLQxW`EBrE-tCCxNt*MOePqn3X*C0I@9P1gD1&FHWJi3O)iNO4ta9FwOJafET z)`r65aa@Nrk!UJAeA^C&S?MsN2iT?Emy9=|N~>+pbX^XTzYdUZLlT0eGAt6A(gPsN zkb<=f)9>Hk+;#T?@%y(5)yne;%ZY=EvqJs|EVGs~rQwkN(k|M!P4I~IbD%1ryFuR% zBW15nr3q${P*UdeVx|<}>TsmwQGr628kCYy4pj|K0t}iD;M*Of>3=>dRdEySa-2#C zx8FOgTVvZuIZ0cv<3MT=V90vmX`>!;OB$&7o7b?HtrDW{CRk-AuOOu$6^&R)z2I{S z5n%65U)*Ly+MI0b@iq66qhA;q_^`F!7JKlD>b0$&Dah1BQ-$}zGR9Au-biWw%uwEEF;-E4j;@g(Q3}fp zJyEj(PAV{SKVW#$Lf^|@7f?U{1ln#b`VICt27e@ZAJXj*r<*F4ge8Y9m!l4y+z%X)iVm+qPFqD!KuaM>SwLiz z)Xv!M4o~nRSZMH6nQUy@My6UoEnhnEs#!w4xC|wzv2S`F&`QgG1lHzQ426oh;F?@$ z$h@JS-_#R)zos9pzL4}@)$k#^1YF~Cac@3IK|2ASrng>|`Hp(&3kdQb|0V{Koo6mM7Q=B4obu{!=3OG^OZ${fiPrxGIex*y<2&f>X#TDRZRND5V62fI-&3 zRJ$f_Zp`IbEj>3-K(bx-;fd{exe`5<@Atne`F!EF3ej`L@_AaU}n{<_3Sfn4z=CW=nQ!LXZ7VGZ^D~(G%eDcaG|LzM=_T>jem$Dh#fqB z9!9ljsh2RAI5%j)R|qpy0f%iYRT7VzZhOm#6-7-OKa3N_JWJYU*xtq4#fKW%>%)BB zakO%?Sv4q@`%@UM?F*z?*ahOo91x4#cb zk@vo@6e{`69Rfg#=vOc{x|}5jh)RS%l83VZYK26!bdpzx+8P(X}yJ z+qQ+C?*pEhHVZHzgT#LJzYaq8K6T9Qof&nY4aV{9{2II80<|}0LIcAb zd45Vi@{>LsN!CyyvI(R-tWoru)Yq5eZUl6){@=f`a`?cr(`H9?xdb(}l<|hxZe|jk zj^3tph#v7HLy-+GdvsEEs~MJ?1HVRhcd0ht^1Sxi0?yjlxVi5uz8}^5ZJb@d^nJXP zPZ5c}$K;2~U_RGzHh2+1c~?rP!9{2AyTMJm_Diu$x>*uylZH5Bujva?JnXb3IS6 zO=0c*{k^5$!s8s(vI|2>&VnQ}9Eqj`XkFs1P?RSH6Gb{wMQ4r*45fn?l-6v_328>j zUy6WRHbHaP`WcLd`Rj1C2|~5CKz;HM&-VC+!KzX$bfvFdBeJ-33453aQ_>|Ki(>xe zAD#7-_z;Z#$xc#ezkk(vLphW`dcVdO9rHYA!NhV%V)B1P#iOR5k`%)f)_=Ke$?7D* z^PqFbv?Jwc(AcffwL}=EY9x`CmI)hyv5gO*$`S;eL6keDQQi;_w98e`qsp`2nDu{S zM0D)uUT><1m+`GvZjqa|z);UN7;a+^2U1E{q5Gz(22cBcVUJ>}iVTus>TuCw{t-&B zQ?X~%s-toanx&g7eFTk*w~I>lp~X_;x+> zh2ilpx>e1jRr08G0-~dbazI=AZ|1;p`5}n*qZBF${ra~MHS@w6Pr+D zg9z6iN~uFjKFWYgHVnX{o)nH8KBcOUa{dx^Zz&~&nBOK|C|xJ(jM9HiVErhv(g3&a z#wskd{Z{?~`wFqx&K+&c7PDLa@f?J{4J$!=hcFVTf}ZD3dBs;4{@XC#SAHMnDP6eB zQt1U{KS6v0v4-v}mR6QP378vsTo0|nEplTI3tR{m*U>c`@a;=X{C-ERBjD+NM-X;W zY14hU^-8St<;xetHMpbP$iC<7zR`v%nf~mg6spmv+O^g}>^=TjAM}~tZ6OjqSJ+3g zl|e=G=Tr`Fj4z71Gf^B^Ou z{hYhPR32q}y3qLJFP=rN&ssc?(%G%fP6Z;2*?z=I_CF_}8@FC+%R9V41_f13ZS8ijWTf-fcfUsOJBG{77nOD2 zDVEeR3RB2)uw(SL|3$^uF;U!q=vCvRe(z`8uf_qM=s&*s zv*&p&E3TIE$n?ir8i=L zlE?1#cx+2jmzZO0FgsGgMASV@HVt`1Z$xiUyZny2O~t|Pmq{}OsHv?hn!li$YKq_o z1WQ2_)?qL&k9$T!S3ZeZOy4an;r~lvC+6*(w^M>z0c;mT9*G5Vd(G4*yvQbVr{P+> zai(G#B}N{{12u|@v}sO7WOS(-^P;(&EM!g;W+b^`EGdbNOO{#(yZRqpc^z{`B0v5n zsFoQbHvW(}ElG;O(fBmF@Vmq?RX__@gW3UI$uawtP??zsm)h6KJ#Lt5Z)@y`@F)J-xEnMZpl&UZ62kd3q6=rJ7jo4=k)sri0i}y$01XzAFXS{Ujot+Wu{$U&v zp9WS-(aK`V+e3#mR1x@0Z+Ue)+{$Yb&SB3PawA-mLy^EcQ|1Lpv_uj+ z`OateT3siwZ~s>=qPBd`kZ4E$FC|gXN%&TGc64wMUTGF=x)%|@(&<3l>bMbsM$7}* z1(R*4%-;&qjyM>-F_l?bvh|t3wAyc>n+`%0p%8&+h1~)r#Rwwj&;h}wnn#B3@omj!_Z;Tv6^!JtCRD9XWqs1FW{iI(s{8!@*9#BkZoODW}- zISBB`@n7PwmCZULyzD+x@xKlw_g|>d_PSh;h71_Fj%ROAFdtrkfJ4;R+~*;nY|KHB zrr-JnA4Q!a*X&_t55EcttQM9TJ(iYOQd)AqoVo%P7@c75WX`~m{j+xDT9bIs1%LJ$ z{;YX(C99dN29pv?n>it>ZZU*_(jekNBB$?*8(vbD3$^6o5f58XJ-VOvyl~6dn&pWcD%| zQ`=-AK55SAhGEMhJTpr}c%g$%K0R5!q|P*E1(g)~s>y!R)6*o_+gcAjA&&6pZUk_+ z5Aph#wQ!{BhDq}#yS*U5o?pz{cx}j_WRK<$ySV0Dg3F^K`!DQ_hiDiRD1QtRy!*CM zA6Hy)HD&b90fFJ~P@6B7kwWU(iGps8Y==iY+cBT&>|bZ}`8zjQ4=s=A@($j_$uAs( z*Bsx4B#`;8ZWQMn+va8yeNS%nBS-IlQQ9G$DMN2B zj}Y&~&PCsC{ukRH`~f}eG9?vJ?3A5+&%%^tVO>{G$d{daJl3}BTb>uIXn1*1GrfCO z191=y0D?yaM6c26u;yuC6fJ`(%iiz9e-g0y5>ZF~=@hA$$T{@yIF}4HI;lWdd^Qi| z5|j!FM?UpvSl{!t(GKBkI~JrEX5#Vf4PQDKzk3_*3DUu_H}7%r0RzYvpC>s6^Jzh? zQx}WV>7- z({xq24LDu7UB>RKU+MeTpx6HK z!MO!)1@@Eodu8tZN%6ox>xT4RoTAo@BWl52eZTUfq^h1QB{DOP8&EWS<`Ctxd0Ad8!0=U_4(gR9sQSym_D_(+ENyWN zn>06-`5+c&YEU#95@Rwp4^4ztjfR==0$-9zKbA3+4kq#5?~2~_KbW5%dA>B-|KY*Q z&!hFBo-N6Q`EDe>k*x@PZ;J<5^ z_(tF(-U!6Wjv~*+h2jU|sTHeG{ZJgSPvL30(7mMfGAtjLeiLeFg#d zSL{|>U;Um%pt~=7+L)Av1f0KbF@*!NxFKx_{kU!wrH7?;s08omH zCvTM0&!O;|IjcvYn3ddEMm0Zg(L*aPHhZ_#92q|zHwjdQZfI{0DjkuQQVXjs&+R?^ z)rbx&Qbk0gQCh=`|MOtvQzr5!^(!yOILLHeQ~w9yIJ@kn_WZ&hDbFTPRRZBU4T>Vw-YHk>zX1l*#a07I);2wN7TGQmQLv=xCxE z6FRqUUe;DO`(=Of={0%jJax}HRGug;RI$YrJwmHsG%rAAVW5P4J7gRE#yJALmaO^rm;=N;mX4W7?#7e=v>+#-k;M$OSzRv|>7@>G50` zu9>Bz5-*>s=K+;PY^si^>B<0Fs8ZYG*elY}NlSNA;{eNWPwDL1N+{deuvZsBD^_|k z%u=oR#@lDixsJ`r)t1Kg#P4SuHuFAn#^~!8puxpU! z@$r(nNT#M(hSQO8LJmAp78NWQihJ**@y*umGC?^Yv7d8dc&8gx$k=yd4uz7A4#!A; zKX{jX_2;NT4f`|cn_E4O_^e*WmNYhc37+D((=yn)S?S-deJ)jN7k{0&Pf?Vuo$Vyc zlEYQ*HnZqsN&}?~Y#43#2$p09v{*vosp8^n7(n;cpQxZcX1wNNL#H_RbrYBsljwwL zdRQT!KT9jChJZa8YxETciCXQUn;Q<1e_!*5AsOvK$;rukBKRUt0~ou!fw#Q*)h~U} zPxSy1r0pFI=O<=Z=dy7E*OHD~!9)$o9M?K9@*!deWsn;OJd=#rC_%$l#h;@Ce|*aY zfo;Co_8GNKNp*>GV>gku=pWJE>6_W|cvD3@}s_l1$O5?22~PDtbMR8Qkr; z<`EkBvZUz-XvEXG6>3qOlcUM(OsDF>+Hq2J>OUSqD-CCsY|}a&2r~@JOwwttC7E{> z*~rTkRKgmC9*g|n{Y}DdS|Yhl9e>Y26+H`B`;jf!N*Fym^?&Eac@LkG@2M8@^LHrfdUb)r;%-i{_%p^-7~{(KbHPHxIYX#DkD2*&C@?D z_ZznMzyeH~6grwvQw-}d!|Ih)sh zI35B>PvZqn?*(@GWXhLEp0c>x?_z%JBsl$tP9gS$of}kP`U=fm^{6uK`ogsnF{uWt zD?`j6NC=vlxjBuqm6)432{pEzuxcb&FXVtBM~p(eh4R-a!V||2K(a2;cp3bNQeL zcmRxGop%`d{PCc@M+h1$bM~d!CXFQ}C??a;i0ObcnFQK890Zo!`wNJivB+P4)@a+& z5*KmlJE`+>a}(9NbZ~L~V9L=fAW9yDb+Mdv#EvQfz1-!E>v8mjepeCbN5lYpA791T zQWnPa>%Ke_#%OGZ$s1E&7;gEMAT#$NZ2_V%mE8F@QITTul@m1CBoyzP#+4zsu{1nx zHmQw7r8G>%X0MxGNRwc~qLx9}sFKOVH2#M@cACR+!OX!!(407f<|3uI^DtRbn0m%s z-QWQ5XA@NRQ&F?J>{vu^?%5&;LOG!pZbB`IKxOHA5j6e!EN1FqRxtHJ?C&@DGl9v- zp$B5_B!N5xsGINHevcw?iQmu7B==0i0${RR@FLJ4azNJwJ8mx7EVALTG03O1Yvb?k zXZaA7wpdL#RxG|~%zAJQ0-y`_7-}GW0Q~*>FGGxR$d4!EYnS_K!|=Ie;OoKG8_SJQ zBs+YqC-I)yp7%z}^0xG6U-rwcM?(Y8lTw0wP(LJ@1JaNeo19E10y(VvUAyA-Y7@RE ziY6G=M=G?$R8C9)hJ#wzW$2d?XnFA!%)~Reb&@lF*B7ZGQoMIE2aDXHFmM^v2lVOu z48VT4^271TqfVe=z?rthMnOS=?5uhrI^!O^v!z>T4#hd8l-6+qV+bdboueYiWmXf@HpK(9hI9r`I{02`Pq@yMKYV2 zs47a!tE%H1M13BqQCn6*T@TgP92686m0@iT3vBF)L7&w*WMTzwYW-LWHT;E2EN;^l zp^)ZUIhlu4`PpAJC{0!{oQ&3MWXDSZ=|_6W$0`SVBDy^~aPmjH4{ zH=38f3hEz}QRNAU{=S7-@MRxjp=wZrCAR$=3N@+7+5ubc@Fzs{bzT%o%zFf)5$5fF zu+{v8d*>^>?!V?>%|i@%i|_St<7HqVUk0ZS@<6!2m#=|va3)vO5V*;A(LCP|WK}Rqp&bz@otF~hZFN&-n?nDZ;vV*1++S?UDrx^$*c*Mpjnz(esk>ZGu z&Ephd63Uk_2iflpgHhiPAXelnpIN^I#X@DR#_unl|115g>v>o`vc*FO^r3BE0nUZt zVrPq7x9++`*sy{k(P~_l*wxw1sfTuJ2+X1u_-M_Tbu09eS|}RhJq5HJyyjZP(f+>{ zAa>rqczQz*FLQ+rOPP;e%lo@qby1B7F|6DR^e2VV8Mi|1gM&|zbA#!ruUbt(nbdyjB z>gx1L_F4rs%*X`Qr#XX35`{{rE)e~!IvG!Q5(nfH~uDo4|Y|@KB9_SD`AUXNOLcM2Wdw5(V!cW z1RFSs)>pwO`m`PTG%hQmZdngW0I)|jB@T`s_;YmLpJ|mF?pvH7^D|hcCqb_ko=T#8 z9&$p6S1%5_R)-rFmT2?nD)f;zB1$M8eg2Tb8H?H@ShU4WSAbK)3C`@H(#z^6(3b=L zIPW(uUS2t7FuV&vx&Gwzop@%gu^3fmw;({fTARJE8F2_+4X4i^&V6xjg2^He*~aTuGD%yEIAsm^NB} z=cc06$MB_tBQ{)N@m(&3Dh{U{M&Wizqqt;IEr5l`A%d!rX+a)9JYwaR>WQk*(!XT2 z#8&$egf?3yj(X8JSv!wS&21uR38^?>2a55!}+oQ$N>d+C;eNI0mX|M~ype%Vk%9eJuQOMu>F9arQN(5t%{y=5 zoV8G`8N^q_m95-;lU_f(-1mN;dY{sc+zNpSI{`EEA6@ zCX>UtgozRxOu$2fMab|Y8F-aAwpWV3BiNzC1h+1PIQ}gEjEQ8@@2(uc8*6&iaZ6DFnfui$h5!p@P zaZ4=w>zc22=p&>9EQ(anb6e5q`M0X}U3K4cwQNr%&F+}R<)Z7Stx#3O(pX63n)hhG=&zfRqg+G|SsdeD6+op&jij_-UapsUht z{~<8OiNos_+qUTSCUTa~_V50tdLZQkRP2Il^^?mOYg#O>8?o9ELjRAavkZ!(?V9l7 z?h@QBKyXw*Dt|V z8C>-*Z0)Vs^{BVIG640Q>0=nr_Z4S(3rB`dHjvfz=r_xUiKbtDL$L`(JEU-H?C2}s za;ZbJOyYCgXCr#1w=rpGX+f8_#nOqJK(!|jH-oGC2u=Id%@Td+0Z=@>T6c)g+_eV4 z4x1nqoCO_cl=i2!Gb1~@Q<^Q9-!kwDtN{Hbzr_;keZg9SpHXzC|GRP zq`5a=i#j3Hk!@I0px=W_Q`@SXQi&3|2T`pELopO0p~jF7Db?pI2%|c2r0a({Q6H|y zA^bdMzARJYAZK29gjmTh85s%Mt>e$(Ihk$Hyo6FQN~Oi_C!e||J#N&ne_7DQ|t%V;r)YtJ5*J*#MTRFLGpR>zb`v*9bP&GYcV`8^fYbPY?)%s!@ z*8@LK0JldC zrYW99C=%fuXB(jJ)+^MJ)pcTyYjPr-4Pf9l*;j$*cBii?bHg$Kf4faTZ@PFKw80xC zxkh1c%HKxs>^RpyCH zy$_YMMY8rqCrF8XP6-!Ce6AH&fkL~j)uTHj2fT$y3c<6_TwI}?*1&s*gN2tjuy{z? zX0?iB2Wv-4H?+9`hA8!C*ADyFO%EU#D4qC=u(M_5DCZ{)@TLc*&N$N5xR3(sZ{PLa z=8tmLj&gDQTL9G0n$^P-=x@+wSqXUOy4-ztq_UUz?bXKwqIZUa_|XR$(yuzh`JPno zfxb+)7B>mpKib8U;nqbBwjOxE)9;wlrwyoqOR)d@#53}M8-Q6GP>&miI`;5Um8)p} z2*3?-ue(#;o^AN84%>)9TYq||{F5v=YL(;uM=MIVuIK{%(c9lyk^JENxw8WY%mD__ zM{PWKCpFeD4!s~g_Zc(_Q%plcmR~eZOp)KeO`AQWV&DhNz#^1T5!6x~UOTy#P?gX_ zWdcKk#?pE&)L;C^C6}Uy8LMbJ44U7Z}PVZY9K5i>^ZW6aEM_dgMvYJr{h9PcVS+9*)TJT_X zV*`kR&wNoq9*1I>on}N86H*6S$u+-?T4_d%TFrzwKneB+vy#dhyBT6$@PZ>Tee1^1 z{id!X^zOh{UST(A^QFSA4QVu**?SAAv>gZnR`Af%Cx!p#ZS?i^_2)#qS{JM8kBh-? z0Q(%Nsg!bx%_kF2L-zG}-IB4vnrC{@=)F#-Y>(M{Qa0GE2Y+Zg4*|A-2L%X;y+Llt ze8+t5=uxt=2RGh(C-(f`yk6U9PCPpS4dd|JW12h2@q76T@g)qb>UcVQC^nI9s?aVOMOxxoORj#3JjP|RBmzqo zI`UM#!@(#8I)qk7;o@j8bRrai6?u=@we>1=wz!u8n*SH%9{-z3IAi#RR*2-{H=V^V z{4wJ_n{qzs#9hNxLg&7ce^AXf$ZHjboyloMpzHl5^0kbo2%@-_3}5yoc_XEAw9 z#l$GK1rfu;L&%4ZohV{KikN1dyDHVta5MoT`EnvWY!Mi&o0qBSQ<%GJG;GfB>4`Ej zow(h{*hTZIHm^&pK_><84#rRJYnP9a(N8?p^X1xMZXHi+2j6(_kIeQq%awXwp zQ}^}TTH(;CBkBWSU1u5j@|CD}^*M)a=k!*@HOqbT^!AU`GzBN&2&uJAX$OdxU z;_06Hr(HZ|sv-5b%zi_=?%r>&iSiT9_7;hJa1`AgZ<{2~^KgRxf{!zAP|UttNC~F+ z$QX>0>lL#P_}rKA(h z?_3m+2{O_PgRvKExF7NBVp%a#c}Kl=5(fmHvv(Q`%i8 zk*gyyPK+QC+g8q(3`8v=mQcfJI5T6&a6&D|Bf$X%;NG@nO5cq1&#?*B4%uc7Lis1W$&~R&hiCU_fa~vGmv_H@+XD7C-L8a zoa|&)Yd-nV(BI#Ge%shVJkGP~(1TJM$PM};FK^`S{R~|8?dJErP-=FzAad)I^G17% z_f_%?@HBr+-_Jw^AW&6RO$WLifv4`LL^bDcR`rq24YrbnE5em2zfyjK!B@eBvr*A4 z3*vntG(BQrCltZ1X#q{asfMn#u}}CdNdzpYVtjIH7+7!I6Wz`1mn{ ziqHcecMlCNk(;Tfy@{Pp{ITP)f2D5HLzE@Mx=LUeI93bB!L@=X|9XK|Ava+Lgc}7J z=7B}r`bDf8pq*{KOV3*6^BDSk0s^l;uDVMiUA^#uAdn~zJs13{Sn!}0p0$B(uHiDcu-%^tZ2s`_fi)wO-rjw-VsPcDl@ay|m~A^WAC@Xxz=GlcPs z^++HD5f~nC`Z1BJ@6K&Kp51RwAarS+c$t1y2R} zZDtjT3%Q6kN%w&6bNf``#E@H(@&Vlqigo+P^8Aq{s9Mf;&6RY>S@l3S_X>E(NaRce zSf8!b%@GAVA_g0Y5w@(*n5v(D0x#7sajlR$YpkHB=u6dxqtJuR(KI*j`BP;>}vA_lI zf#I2lb3M5vS);(ix6WOWCDYtr{7T)8U>kKj5%MIu=Ml>|VpuL-t`<~cv~a511Yjq= zBL4~5SbKM6VmY;H+cm?CjEuNI$(hFKlocsHndQZYAW9VNy&77F3YP9; z4UbTfmgcd@$NSmz+p(fczBFGcq$H$U#Lz+t4refv!mZs@Zc;sZIwu`3DMxo{kPEb} zGx>Lvr4{p+&n+=N85`d4@XJx8cEV8Quc;s>ZjZ4>2rHmHrRT+5iakJvoGb@h0PcIY z$Q)*!2n8pl61V)%Br5y(@Q;xvRKuX^z;F=r?jSO^S}wkh0yPSaiqpNC%MmfO6i*`UI&k{6mW{hk#?^sGe6MUGB>l zd4reGo5fZS_6GYER19%7fA_&oBpF>`S+d4!v%(vrg>F{7a8xxc8Oxc1wybTs>mj?4bfh6ne3Y=j08k%6VYfB8r2rQ)sW4#u&kDkAK zmTA-FWr|VroJf{w7XP4g9iJ^af`nBtU4t-DKfg~A7{h!&^5Nn^Gz>V&1(pDRu5I6T z6Ks+G;kZv$?-Db^u^)fHr*(JN6u?aLv-EFr0?AaziSleAAX-i+FT6X1xC!d|7{r(W z&k(*DOhy)Nj3-*st;jV0w?bOp3YeYeQvJhKVm9c1AQjZ*R%Gm>%0Cj@Xa(+6sZe;C zpxpe+{r-8j-J?pe9BoqZLZi28{;eZ_s(En!=}?{~xGakv&y+xNVY7M% z1xchFR4_f3K~A_vac-{aPMw+40vWTAB%-0J5jfiej+!SB9oqnhIv1S)9^$t|`hNa2 zH75=j(x63wJX%aPUN4%%7xFh`n^W+0ww}JD4ZS_}_F3+V2N6Yf=pkPY0h+==2gjz* z&78V1@G=EL2Kuj;DRGBhS>G~fIV$T{K6$@hWi!jkJYsgva(`mgTeBIP)e=*Lnb!cs zbgP0;;6(j?Pk7rP6VBViYr16%FdtkqjsOM^>q<`?iF6bWD^9?H0sPpk*CA+TZC$)P zCHyYVzB|3C@>*a5&QHN+3QUz^!FLwrFz`}d{NDF>ex&lyCu*gmy=nM)V>GUUHQa-h zp7d>i$~(v0f!T4TzaI7JC)dvADDo}oXMb1p%(Ue?2&Cy4p(uH+6nQu*+Y87g`gc5=#3mXES^`?4m7} zPtYypZLs~R75Wj4)F=`%FvR6mJ7pZwfDH}^VfKNyfDNRA@s-2zDk`4KA|_hbcTDVP z-M(GH>t9p{`6<1TZ@m<*qQ0J;!tYq$H2H&n|152Qm9=K_R`%<^?AXUAUEok`aV8w;+RO zI9nc;=H`Z9@AFvw5Qo&TMW)1gc&U|KXSH@ZonBC|`P)$WHGm`E7S5>0)R! zZf4(P(0@>PE`>%#=*t&qNknvQQ5=7w5^Qxc4$Zz$;=#8Qls8MGV?KRPhJm@arlzY> zW~%HttXWB%tQls3Dd%py<5cx}t-hZCJ{8m%geDM9n+1Ms+XEt|dc++;QM!!_eL$n) zcFQQ-p9#1z*=SZkprh#Pm-`7AuSyH*wKa62E&o zw%NY^q<#LppBd%af<)5~*ejBgai?s!fXr&LIoRDm@XrZX87n$13rGiIwP3iSvnGU6 z82D$@?f+l^C_8{%#o1-p@Ov1MeZb9RWQcBLmd4 z$Gt(lfhp``Wc94ZXSkJw=#`an%1WW49R1s5#iQVYuHC zN4}(lptf-AQ(&l!;M07MtkOYTWEZz@PLWT_9@VBoBN9H>%|Hh%yMr-awP`O#9uR~4 z*&}|?OGr)COeP0|uVA)Lp|?I2E)==sV8{ZEI{Q@%X%orC9(B%6c=9&`rVd5Cy5-fR z9#PzxbeL-NqHXq#`3{EOKWIwic3q2Xxbj z@oRVL8-$q;%Nw?u-Uk6=|DFRrRkU%OB(6UU)_y2)wr+K+`LR4HPW#4e{M!dFs3+RG zq8XMVu%LkYeQxDDJo}U$sx~r+*zpIjcJ6e+krGWKlByV7`L5vhv&@(2B2iSHWSf1& z#r+^d&+UfVMi!7x^-+ShKYn)!-Mti^hK2_C+G0pzRCv7*I*xGL^*C80^hU=3Gn=m= z1_eLM0&DFVC^e>$6(#*GM9pEtrJoN=!#F`EbSX^}sEmM1k|}_80D+H2*&PRT`Krx~ zx>piW@8d=~+e!lAX4g1Io1ucMBM^>P?%bCM&z;3_X;|PrJ9~T59*zQ>0J;cB>kb?jv!|Sy9{Zv!k z+Um`wW7Yw+i3M`a4jlgu+nF}VM((Bn(}md@Me9-S086I~wO@iP$R!R*=>Ibc*}=5h zdUCzC$PMdGvajd|4+`=A>=^+w!9t|`Wv*p80sA3Nl+|c>S%4`d{#&iM_lyoT*0&hZ zLiN!n)XDuX=sU8{p*TEP8r@z>Fw!6^nkvlT>vP50oMlb-Hq;VF4;ZEfjIwe%ydUGo zUTf`s_gCuQZUyc;$YpiUs>6Qk7TR9Qm!`QT&o|k5MNwtirkhgI^N@**@3u!M=nN?p z#nDQA&1?)ScOK_~vz{*#&f0&+N5uW}ikiw)Wv`iRy#ph9Lp@H)*ui}@Bhv}8=PsaWbgLrM z&B)V}_uv%{>W2)>6Dm>f)r1d8hI3WveQYT_xC*v8ymBi_lnPkLR|DYvXE7K5N#94y z4P|0sadL;8$U+4d1%)9Ze|XuEk)k<*EFMD%Kshc4hB6UQE7%@TWZs|mTUbDr1c3+0 z9X-gkZlT!wv%Iw@TPo_0Lr|OIGiizOY~cn7OtdT*Jk$`2MR=|R z!qlPNfxU^a;?s$mOnh}u_}nN#Jh1#79zrg*o!|0V$S$r{UMj94Z#H!+3G9XO9+n(v zP#dyII?Ekj_UhzMImecQ8rh+7{cLEVMG@8g!L5gg5h=PZqQc?H25nj{;YIg0$M*f5 z@gb~S#M_TD|K|m`F2nkz^|R&WcU-rrLJE`zsw2-V3=9Ladk$2qcy=i>!qePst)Y0! zei6yY_lgT(u?bY3DyV+GT{KQjOY_hIwG+61Xqn%59^1HPzph!DUMS=DIfclGsB#_C zLWhWvAg0XAOHEDf1SYYJ5ktx#4!Nqi6si z4%c-b?s<7RmxANMmu-R z`!ZY9xdJ~6zr?QsK>lAmY?!>q%FoxpcaudhuDTHYj3@bK0N{wzB6petVFf0aPh3TP(K0sZ>P_<6Y97HPsZSn-s4*n|(HK#r zF-r>BMx5T`TDLpmt_6h_agSdF{x^#5QvH`hCys+;Z9ASlV&ptEpls=&?Nx<-;a=XQ*{Kci>Kx) zV-KL|0N;0{Skhif5Gfx_CM}Y`Gr2gP0`~f@toOPUSs<9T%m|dq!n8L~Kaxr!>J-6o ze}kxU=;fjOK!i4#praLjdzKfj5aE5ohq~lugP&k3hCyBvy~tuD8%`M{Q^$pu!kOsur~*N>DYEDMxA@u4HT+S@!7oyE1zK8;jum_qfd!pdzkl&MKUN zHM+WsmMpp+=M@6J!h6dRbw9s@dsjoV@x!qc+?TJdF_vdl9_Jh*LLidmHbTFrhl#Cq zI1+!baPsfe?6fX^VAG|Bma5SK(=R5Nl6qN;I=~fL92ZoI^5#Y`X^UIv&@5^~+3Ohn zdE}zp-lz0gJG)0WgLrampi za_2+q9Iqsodb+L24VSkz~J85nvrZ?hF=W_C!W*3jN4q z@SWfEi`>gow!XO;R&U2Fi3H9b$IJCcsU01^8qtuZMVysN>!UOI+)(3UaUjg^`8+Ym z3Ht{bqwCQX>-cmTKQS4fPLdxBI-tX4r*@4VBcDD_p*a}1!lsSLO3!_E1DF)`RydaF z6w=DfUg`S>-&$Du4UCL1$2_4tl2gct#S=c*e;iiYTAep&locjzrPIzixFGX;spHF> z9x7A#rmXnQbB$bcj!OExkFX>7=j+Y90V0I}6jyW@sXHj?5jwYNTUNMKm#l-%A|UV! zjN@2KdjxzmCmAH~32yWavNVzA`v#%lYB^#!eFA8u#G*J>Dm(Lgdoo4X$&F&-#W(AT z(x17t8KU@;NZ^y&3CL;g-b+RXRt1*k|C>H{`n!ZCiKt!yhb zuS*wz#PP#-@;y&J&B4EC4CoX|_|I11EbQz-Yb|c1^B&{vlVYlTey8WXd!*m5ve$TbbX&9^1Eg1_UvN`*~oMF#=D-3r8N#5=p;>Lz3QxeeMzpauGWW`MgX=Q zt=!up52ylMkCe#>YWIYzFrVr}0xztyv6E-B83y z%e&oO+!{tvz`L;POLsY$1C!zLsHQ@ngxPCrQti9bPj)q8+7$CTx#PfYDY)I2?s62A zsJ#&6-WXM|Yl@DQ$RS+0pE;CBg}`K|5*v-fHBXwhUGKw^$y}k7Rxg>c&!y#G9bXZ=x9I4l5|=miK~fXS8gz1XXY8@T^A` ziXczakhm@(2D<@<0AO6nI(NS6A$>iMpu|zRn8|*v%P`dM@Z~3n=^t{!f9)&IJV?`Z zb?E7y3{C{u;Gl=+h+wXId9z@n8U}trg;M^knZK4oz)VW^>9=h$+UnNY4?@^L{K#A) zkAGk77=A=9JhtNi)n^}o0`{%2%3FCP>c%8{y)eDv(izvf?IWjkpH6t)>`U%i0#bJ? zVnbb^7a=^zc;UiCQC;8X2E*?Odh=afR|r*|JP4IbOISE^2_G@cgQxjSs&2&b6D2w( z#&GS?rD(210h3BP5`2qK9`?sma~$C~Q85S#4$a`@(IsbP^$Dno?dRCrL(5SsC$G`V zt;bZa@?G;>ed{45|9A83SVvm+sAcinV#ds}}IFlUw1fSTve|g`%1+noMeWG5d9Ra}>rr+1*j^9@-0aI28THBSnh#yKJ z6)=jh@|ln%n1vJZ5l4a-wH%06;VGjQ2~>9AZBQ~sM9rqN|4u4-L`)vJ0H#{Sa<%HF zrf{F9J7d7cMoCFY`(@G8#s>NQqnNQO(y=`OW}pwc-!K3VJ<$Mo9{@ext+@%#r2K+h zgx%By3HVq^dWM2@@C>M_$z4Q#kulNxkh7zUg@|=A`YS8pk}Y&AABT5xLHqR3aZ42@ z>BAw^38OhGlA%!=jeA%sQzFv91e$rW-lg%8Eg1D&bTi4rKfByvLZHc?(Ei3hICJ)0@UTXP2jYYhK48PAP;0lqE#fxx6^o) zqZG@viqv|*S~-U_gHB;}7VEODNI$Vc{*L>tvm}?$x08l8AKU-qgGSt(MQRBC(-PUu zM~aomh_F+j#8m|eox<1jS&~Rn0q1j#8yW!FWaZ`c?6&v@`Y+#&1-l6XVy@31V8f1( z;S7EQ_Go~9o-w)CvQuRBOychcn&g8ioDhSp5VBnU1XCMBgeX2LaUx7~ z{WvE%w05GV5v7N&oHz9!Y{U%2h`b`RK2t$T(}MH3vv4vJ8*NqE58c0d3#)G|ifD@- zzXzSf(~)X)5_XjkRfS$!-4ik?!37U@xjux7*C%38ZwK`ErFgIYA^D|6Z~Rt^Rcd1! zVR+$WEA87nXQ*zFT8pSyzdT$kN0>W^EYrL3f=FKuBzIwb%dCObvLjJtZs%S{`@i2m zkJA*0Rf~}spfdQorX5rLYa2FeK*IbCbbt2m`*>-2-mf5V@`+tQTghR9~sbiuAaMay1essndR)yYLTPhU^M~F0|)iu*Ce)KH98n*rm zqbjx)qLV6uOfd-MaHkYT<#JHK1P$pMb4BtQqZcQBSSlkkns;+QF z57EoNtI^NBC8Pq42Gxzv;2y5Z-mNe1a@DgiI0!#qrU``sxU_w>GWYxb+%8*()%;F6 z0@Pk7gwtLQs!W;VAX#I^3@ky6E+XgEzoZdk(_8L~@F zl;H!ZdD{6S<+fQ9o!a74<9p~|s|^-;Hhn-s!ts=6f7ATQH&m-2)M|{|it`Yq_4cN6 z044j0s4S*6+GA$-gJv~qrLnX7{3y)tpwg_XcLjb+9 zqXLMD1)Z)!9E0>2*MKC@O-a0Et-C7-j%?hIx%Nz!PG_TrBd7$phajxyD}t(VHPg4} z{a(~tZ_4fY4fklof&qcr2%yaab1GjZDuBvl0p<*hE}(hoe24U{iOAkNl>OojsZ+er zwa^^YiGWOf>-1|>-~)#OWNGKegt_QG)d)87ag+ooVU;0A9$AqR-){T@|80c^IZ=a? zdVPiY0wn)A&@zlW-+r;v2T(>2YJN$0MkogBn=%r00|(YOLFUEKVul!6IFd9gLh;z?eW5 znX7cL?LPl=<9UzLOkw1m3DpG`7A+ge+BJ*G~DJb`XNUicn z24D}h3@CmN4BTOgY<_K079yYOrWkH`zvRW*HLfsghD`8t0~>%n_&?GUrL8=0`_SVE z+u&|%Jzr|Oj;mNDpK-h$7$qytj0PXV+toJ^>ev_{Cv>TmklkL^lpN>zkaDI7#?9_e z5wM+azhK|7DLhRJ?I3t`s;9s_%|TmMhJB`6CI`crX(GlKKFv^l${wjf2KrMH>ZN9& z-8P)jcu%+vX`6VC*Uo&oT~Aj%x?}GqMbWkZ;Xf$+mtLhY@X`gGUlZ5Vnnks3ke%FL zg%6oOLru(%xYs1IQBA1K-5*b3#z!Wa?lUT(v-#!eNQ=FYU?|DZQ!e@@YptT0Z}^;; zRvK1x`3q|#Aax$s+6l&0tP@~IGhI$5SfRtQV`24cdZXwh{6$^sB_H#aI29pYUFd@f zZ$T#u57nH);k>~4xl9)2uvo0kF(JG;Yt0%31`m;Y2*i)&QT4i{mf-QOzfG+Fgd1@I zM)8ibjFy{QwM_s#V@NKfgpDBcgHEQd7^8lX(j!4Pl1lbgie!LYamh(3X)%IdS<&b# zTLaNV6Fn1cEYSeL3TFg=4Zo>ehQ>v%PmYNaHgzHhBA!gB%-*kU^(NzLH_mzdWQ9!1 zF&GYCZL8+bpN&AXj#IDGGw+Q%?Ryy7^Jj{q!s?lORHm7NA5Fl5{?`wY^xq2{Pg&{d zB|e>%YA&{RcH7+{NE60cPn8An3i*>ViPgkaWbyHX(-^-C%~|<5L;Co=fCW$x;JGJ= zt@_gtD*M4U%hi^r47((~>+}Vx%yJl@P=TE0O8K+Z=NGEn9H%rJA2rVs}1aITw z3-ASAioa?W6B>N-KOvArm-%w0EuyH(vix{V*yyXiun;fC8d>t~$Z%R@u1Xj$^!{{V zHLSzu*t-5H<6EVh<(UBE=vlvd`#Fq?YHSHT<3$WYItnrp9XG*DfBkUG$*f!%@GLL>+wnsd&@8(O6s@@kJFM6?uEB#&u)iW9#K~+eDgVmYXB}KR8QBOl~wD`*@|J)DXtlcIjC!x+B8<;m|;iGLK$0BW(3< z=shw~59GlCrlB5AYXm%Cn?P=8XrNi%QoBsVO=HAgKkt5ftl3*lJs|g0 zjy%%1ZW|9!vpdcwUh(xjCiw5$;(W0g7#P%o!s=fcR(6gANlaH|Fd#HWyZh(XO z;^H-U1xfR**50jB^rvk_y#%(zeZbj^9>6=xTR1Vgt9YjxTTp*`zUX*zyYcFo4gX*k zNCnkJfc|&ToPg?>pianc)v3DTbeV<3eU4;QuJ3+@R?We&z6k67c{jBGdg|h>_O_~u znC&CgkLu%ZPI@S+ibf?X^~SK}7n3QZ%Zea#GpUakzq#8GvL9#1W5Tk1AOCsk`5jD> zzqi&r#JQ5TqJH`Y>+r#U1tO!#qu}wDIM6_&%Fv7jAH;})H#zK2hF6w`!k$ZJj2VKV z5-24s#A*Y^*8d)jC zSIaP-9+@qquB!G-X~|F75~`pc>dKK%*BWVdXJHcB5N&U#nUfpucvSCDf)hme;mT4& z)EcH-)wqZ<;)O1YLA|@28^xrUEE0*Diic z5gF)EMO8!@RaY}@)kz6sTOX95uFi&l%<|$&`o@OFi|c8S$_D zn@{}{hpgk@WJ-S!%V$3BNsAJ_W{h96=($+OK-(@G!ZV`EG8wXnMR|2|bHwKj9*X)6Jl{`I%uCyi#NUY)JwiS_dlL}0u*o=ku)*Jy9gmt%A82#RfP<^eKI zEbPEjD$Rb#rQG9r6#)JssmSBfzFsoFIb9;o74^RCPyTZSV3i{HLcEg*!FB1Dw(;gX z(^K%)M@I)}uz0AjQZvZnS=wkYnDNtD!sK`%YUncl!Lqc@uRC7_U%q8(+BK8^sQ^47 zUr7XG%_lOtwg7a5-$u<`(RY_XzHckG?hA1pqyt~G#8h!63(Ds|$ALh=Iz=%lUW9@f zQ8LvT$8E=KK!rdyDk?m;h-O%t93vQ_{dLh;N>Vgf*hKRHI-ZYsh>!aZ#?L5OIN{lS zzOGVMMq!5uZ=^LfkXca7$+RirqSdPm4gA!cWtMM*)JI!#2;=%EX(UG?a%9oyhQ_XC zgO&|Rq5(dua!){WB$rMkULisb6aDL9_p+MQ{rd8BF{}J_jc(++(15*1k~`;S1!gmn zTx3Yb8XlfT7?y&iEG7UR*|Luja$Y#T)PGtiJX$)5tRz*ci^iU<$5fS1$k0hx=s0tA zwe1_3yp1tm1i21jW*riu7tX`2hob(#4uEIl-2D9T_xr-N4v>m|e`o7eIcaG&N6!>~{n{`Zuq?WYg;iK+ zK6!SBA$Mcr!eon>IgL09tNkL-4HnZ>jSmpZ+Fe{+b-J<_l7i@gO@uGaBX5eG#X&DR zJicI@aC}^1Uuy6Q})(l1TrdR`qa)E-4pHir%3A|Enf$@_pUP_Wu2keKs@^i)gKvrLjXrQVG zY;9?iff_qhyWK_~ba=nAe7505kJoP-_WS%%{R9@n(1kr{I+~6w^)balsaa;?=eD7Z z@0WTkV{F>R7JGbjNPtEmjAz7xw^@uuTh-nk+7}W+T;BZw7x#U50X~ScLFc`3R%YaK z7yA+EhZ@GG7QNipu{TxFTc4c83l{_!@Ud0-S2>Kpq8mUN84m3>jL3-`u@F_4vC$;3 zI|>I!!hE#gf;J*_3Jh%?GLg+(IxRzimtd)ba?@ot(EzH{TWuvbtmdQ1knWiXusJNz zjCZw*7|s#U@5xSvWz{qx3~342!c1t%zqX<4sya2 zRFh&(@-K9>;$bXLY6`v9NPxQ6&Q)TsYa~NKH*@IP>gtGGI&@eF`hs}Vf5CRT@BxZ? z2Jr<_+xI0nU<8rmSciv8)6vm!UbdfEMZM)JG7DRDss+D%6e6FRT|w)uNv09{FOz=u zH@jay$1;DuMkje)&I5a$65;Z_msaG=Smh*9g|9`wO!pz(kLthR08bB(gdPjmi;llq z8~x>*zg^oc_f6I|!w2owyV{pR)hI6hxWD+0fPct^nRa3@?^qo2})eOciNI__HlE4+?N#+M`npJ!t*VvsL|sLdxtopV7sw_{mG$v4xu;6&_`7nqFBStYqwPz$gpCz3 zrkS;_b8ZnO^opwZ!xUFgex=qS5YZ4Gx@DHUD_;<&_^ZCU&tD|1yQu5rw~NxBloGqG zd(i%(r?-#N=5XbeK!nX_zNbN79 z5(KBYIU}=1Tbni-kb#E>erahb_b{V3 zslOKph)uQXz4a_9`jf*DwyZC*;3p<7RT&Dynxx`M0B9YU+{ywX)(GrCL>hVsy7;r0 zDZGQjVL}&BcWP7Ue*GWX5>sPoi=^9FtL4N+dRZ9;hL{pIx|gwdMDG9h0=$%!=`J42 zHUFI7as5-?$x6=3j?zf8_q*~>hXIF)<9VtT(bRb3I1=3Y$GVDRiQWXc&&siehpxOd zRA%Z`6P0ECFCjxa95YuHD$m4H#z=u6;PE}Vtd&Fp=z!^2_P_~k5#V(rz3NzpyklmK zU$|rVCtqwczR*Cx{#a4KM1V)s`AKX+Z3{?8hIbWfVE0WjT)>ETJ1(T|hu68<>4t_vqfp1(nX#QKYR4<{t0a+t zd)2GvmDCJI16)vlc$i^bf5`rL?l4kHqwQgd7Kg@Tl^#cOtAsjb%|ip%+(u(piwgTT zbGa$F!>Db|XQfTxL_9BV;fwXfPe_u1CrBamP>to5WBA~m1(Q07tbG>HEhCdoBmFHv zZdr&G(C^rgRK&gk@Ai%FcjWD;+lw4E{(GduAEnax&PLWX85)9+24$NX4ui#RDN2+| z@tXo+w*jHI(}I;kE)DyDMY)e9M^{T?S?`asB+mlJrKlrByyN<4sO_$9&-cpK0kD~{ z{z9$2EH0a|N2JAaw)}86au0?R%~`$h$@lfL-WOO=c7i>&7*|jJQW}eIwvi0!}gA0B*A_7Z`agUPru8!?$;B9TMdSke5@GWSz-)tJk znwp)7tr5Y-_^xM}s^#MRfKu}(qQ77bnb)}!>YlT^!)aoVmEJI-3o}VF?UZZ z;oEqong(DziVNcaH6VZzzYhaE+iB%9I!_um+IJ{_@trp9Xv>ebEIV#>!yE%4z0qj3 z(h$4Gs4WNgJjRtXNCzbU8E*1hUZ^IFQ6;22YUzqaJo0D*uE?RGQd_Lmcryz&@xpqX zy%J^yPV7LX9yY9eEL`ja;m-LX@o3Xj71=r=)Yi5K?gZW5h6mjsaBZfWH17EJ6oIf* zt|J)gUj(u}kXL#F&Uo%5zNWHkjblkr_8TZgZzo8j?I(Rhe8$D;O=_wz!}OwAXbP$x zCkzvzM*}8!zl)2VPp*Dn{aCv?53UxUX>b`;D-4~#5s&TIzdGC9-F>`>z*=Bp^_c)l zy#v<-k2<+JhlhuQkBck|vBKaX$F*0+2SczYZQ^lwVDrf5x#n4il>l4< z(D^V$SK31Dyawdi8(HyU6q;Ef=E|K>a)<5k2p%1>FNh^Ew4{xK#7hu85{y;y@l5ec zO3DUM%hixt_VyetJOuRsr8@QSrVPg17K_i-|7t>3PHb+ zh}@5uSs7n?x#DXB!vo#nJ=0m#bt?$nVA#}z-}n-F7y!VYyr9?FJiBLB<%2#@>Bff& zC?BzItx$lt80Pj3wY{|!*(_8E5x_@)Jud&o)P3_q=oD;6s9wPD)C`I-fu}I8OQea6 zR=~l63mwFR%8AfG*B}%sQTR=d$kjui%0B!BiHn$P)(8^=L)Hve%81kE#RBO=J?LH9#8!VSGL!Zl&?GIPDmo~qvOoR zjvFVb>3Y4*BXRl#*&H89uR`9CP84Gdzv<*#qs#O<2D&!djujy1Dd8l7`wgmMeEqN# zsT_|NFOHl@{5I}>e+Paik$=oj7B6Cm43Jr#289V~J=ZWi zZa2I!9(i4{MirSTi-eE`b#TeHfoQUko)wR6^gl$ApAkkhs1fKaLMDu~nM?Tf&1$^S zrRjvdETy#84N;2fo879Lfic$7THVOeu74)Y42Q7{5!zuY+BBmn3qKaV&D)_0-s+Kt zWqq;eVog&ri*_V%Hr3u&4b7EG*oXT2fNq1_$(0dMUz};M$Wyhn7E|0|_b7~||4FnJ z;xE>x4f|=HH!nS(iHQly*qvqG8!hu6aHvF`&(F_D%Y~Q-?@qj(?5Bsu(#VtheqVbJ z57NE8eFF_j=hr<&q856cc>>EOR@9F%GE2CPZml=__O$X2CYGe3c^LV4-*@w$bdU-Z zFk+Vez3#PkoZPY6b#U+BXlcW?DRC;4GGy%jfU_$Qs%Sai<8Fn}e?6q+bPqEOr$fYm zC3pImY0F}TNe~Qb=0x0ib?rdNtu{|*jb7687nMao{nQ6fjowdutoJ!Eq(Gb8^c`(5 za{t$yGyoeS`g=iQRj`^9k&?Py&&WudcYQNzAXzU^iybq*3fAfK`yWkb8PsOiZsFig z1I49if#U97oI-)(?(XjH?(R~GySo&3FTuUV-Qhg%H*;o~3IAa7>}21v*0q{}usFi3 zEW`oC0maCe+uK!o^HOxvAs~MdK=CmXoJNbam(ya28{9sC5-A-Fcn>5ry2oqJtn)gM z8kRA7L!cTcf#?cS{Q}wnaA-RF3L+VFQIi2a@<1h8^nyvvV%(f#SE8q;)NIf;XG3fT z4Riu!D5&mp&a=vaa2veU-wH{sZBgDrLVELOWbM|RcChO#5`}h?zb2FI_C#vw(4oU~ zd}4c{E4F)4$p*V^-P_Tw>r+aZkTW3_ky>z;dGN9;hV(pF; zppfzzPgo;$MSBzQu6{3C{7a7d)hba53ok~3FZILObj#zT2O!h38U}UJ%O;y>z_^29 z!wbzN*Y{kv9x}2(zFkn+w5(W!1DaC3=48=S7NRt!3^DPm<~W%g!C>p?;4*dP-^yML zGyFx#e*@YWGK?gRlZ@3_laf3V-E3+{r9LS%R&;Jdj#3w3IGN=mDgGn|1kXpsnr*_e z`WE~5%!q*P!W3?!RjiHn^;GEMmD}|MFPHD0D3bkFjq#A}ls5i6|E>)T z-5`HWUox1%W>)>k<98J1dn8^?iNYDje>K8gE2fz>&mB4Y*A*N}R$e~{TxM%;^^nVz zBE5lwA^2b{yx360;$XyLlUkI3ViPS$hue8SkkrFiQ)$ReL@sS;tbvRO^|!uC8gB(v zczkSOYWo|XjZ`rjvPxTdo2ByBuPVvm6dpO~ri#iC0+Sqxra~0+l_8&{him+imbhk$_gB3K%P(Mzb3x)%q za43x3-S>0q%SR>w{+15;r&=QtRwDI2nzu&qwe5GfEu_voae~r z`4&s)M=c#l6WKcf=$JDnwE(TC)!Z}+Tso-ta(CFu->L}$1aq9)5jc!a* zd{xcQZegiuWOi+EZ2w7*AV-amBRkvezjplF(H7+nY~e$DEVhl)HtOMh0yW))_iJ8+ zjM;pl&aEMjAwlXZPOu^?{gS@tahE4fbS@lKXk;~5@B>(E^Tbk_>UbajNtYMJeiM+v zB=6nm@|v}50%9Y9;Yi<*{+8)|ijq1o_baEj^ir)s)6>xr|0nIqcT#cD3-e)XJB(yw zmgiw@P5afQW4${e{pc<7Mg-L3@X@m7qrVer%miK07qGuR65j7sJPf?KRYd7fxJCsq zXHy&;3*qMyTHc(L{5gRFIW2;D@-GwvM987A`Yp3!P+RPz8?gl%5rm+?Dvco0T9#PY z!Rl+%1$NkJd3Is&4m}PD_TDj2}T3?GgNh>IguJ!)hy@I82cM;d;|dS7&8)Z&hkTYT{*U(^R*~x8R;PARYr4 z-8$&M`x2?^4t1AwJ#3sm>H?Vxh9)l9R#sLkD=R=VG_23uYtK#e{@fELS+iV07ujGo zt$Tfay4r*Sd|Z5Iqpn7ij8Z$62<*HsL^^kcfVm5laC3QevM3$w9X-Q#mEE&0|MLmH zbE#*m`z5)2o-fY%Tf)8m?GBtjAh0g%Ss#{h#)oJ@@JhZsy+YMj`jd{2q;4#0sqcr7 z8gwYwW73nY@xc6&X;ba4=uG*gGZl;lmRZTiG7&ERm)drP-3nIM(;L?FJD7L>_u$aj zL7ct0I{5wqA?eH7ydd4UOKl;I$F#`Y`Iz@Y7@rKBCG)neq5lKFvVRp1sX#k6KBp&V68RY4VZ2W0tj-j|n4zCDQWDRGFIugKB2X$Ph9Nj9Sd#y1M!}Fk?J8!O#*jp-e zjSmtA_KDTc=fhn!zAk9a0QnN|({N}(SdY<=)!Oc!eTpqKJ3>7Y^OgvJf!DMX5S(2| z^HyDibo`&HZ%Dmk^7?RE@A{gU#}W3_^;tYBB#HWaA-!y{0pgd>f|n8Bw*=08m~c!F znAv&=$-gn*fPC?0R$`N7Q7m|YkXe7A^5U0{4@Eg|+xnS<(=iZ7#G1}S8KEZm zlc+PXgN=3o!i4+F150+7JCu{G7g!P_kwz3x{Nct-2pF5)`$hV_6@1vX6MWXd@(6u9 zzybJ2@_D==F}ECRE{8e5m*?S>)~E_zsO!f{m#@r2yZ<`s2AT;!nw82JHMcutK|GCq zqn>iL+rtXmQpOwb8)o_=ZMIo7fvFj2(l$~LJp`2K#-O#dwAA&qLX!K%(^t;|T-U=C zQ@6`XbNm0(tPl&8ZeE0Pog7`;*xAKlv!eIf)doQkfoe&5GqUV~Ij6U>>RJ>fN=ZhL zKL;Ipcr-aDHWG0i#!P>@e+;-d8cJGZHJ+-rxRclhPQ^Q-Q6APfIPvSK=!$eR>ESg_ zTkUK+rsROktiHC#K+~3bYfeLh0_BIJZk5A5<#r_JY9)9@8^3>aJ}3(Zkuqy6KM2`w zE+@QBTx8%HSL`E03 z^kdQ$91=i!(oLyg#D91TZs#K~I?+m;PKO(CJ}mel&Zj+q3PMOI4hY>OSjc+&^X4^~ zr@_TEZeOMCUBU&cXlV_0+`o2Lqwy25&{eN~`Skt8M@5ZBZ z0OiY!Wef1iH|Qe&2#d0@%0EBBPxoMb_C&;gjdUqKhhAwE63n1#<*N z&cTzXHr6&a0JnLo%FgpzT}|E9v?ipJMO#HMZ0C|WGu1BtF6eR(8mNH;kN?Rx&w zLIf5L=xlLpy+Z`$>5N=$s0%ao4k7NL!*$uAXpOT9<)USkOC2)rg zWDa{Skxmb&w$)P^eKS);VDPRuY2Af+QG+_?{za(g%1saTzok+C%mF*DxWnXZ0qCL` z2&)!ntj4hhNJy7R6$>=6m!mz8l)g8^zNl5MsQ8o*bBAvPHSOoOzyn@2kG?`4=A3(Fp@gUbvpAGp5;AL7pp zKcvzqqsDm>OpjpP4hcep#>z;k`%(fTSBAjw-=8$73%bv!ZrKW+*(d}5BySZ?VsQv% z1W?L2ye!Oz7a@A3rRt}%;92jsIZbb0Bv61w4L7e?=jeaGyzocY5!~z6SnV4L9uk_8 zE3VkZ4)kJHezWP~ZC2rs7{Fuqo9q^Fn}s@4V0u6)k-j*d@G7l0%J?01RlS7$V> zmTK}!U?&W^ANGUaGUD34;{|d5Vpkw@NIp_X6HQpC)EE)Q`)FB3M};GbQY2-;DvDf$ zW+hD;$SRzFO*&@2s_j2Z28H>ncuyEihlt2^{+SsZNJGk8mt)Z2!0WI}`DHc9wex8r zsUv%9p540_7^6fX2rA6u{*LBbV4RwN&R(2w*ygAd??T)sr2?8F&o7Fcjwi_?gugl%*xp=-ETjo6FW3Aiw6xOE*381ZEBx%Kupaxh z5!gRGk}31eEWxTn|B=rz5OWBYZ_(<3_sjJx)XR*u{!L4;O?`HY_@#h0geI0A-@(dh z$9p3|X+dBaV70Up!(H_0`|H-I)lk3ltm_ZogTkS(xX9eXp!ns<=fBgjFc~E#%#<5{ z37H*(B^9A8nf**DE{26C%{v2Doe;+iOlPM=NDkX(K53p#Go>_8Xa0g*-V2=#-#`kl zRnL(>#=bS^aj@ZF4+LFj`Bp zwA^s+!1$1|NJdC!<$2h#8IrdC#;P{?&$BL8g5p2+@_%jo9PwOc_e{uy+cP^aD#2B;hyQ^uSP6v8u}6?f z3x5n65sr8IM5(COqzKlBk5Kux_jyXlrN7CCW5m31rN0L%K91Ge)>{95CooDxMSXMS ze~5&X{FKHS%O(+EI@%oYtouq(X;ZoT5^~M$b;pB>0CTd@g!1|Zl04^+RGn)U#t%j; z0>Aq9upHl61Xa70oa)mdQ}|aQbg0CnKLy`q2_Ki8{oS`UnljQ0WBEC+(jjB)^pShkv(A5J(*`Ur3z2_UjYsB#OOA|`TKlKoull(>Zer_os;!*Gv z${157v!tN9^p=2mNmC^nSdGJ_q@ccHiy+`NYGv7&LMtJo__wn98$%gI2apX6`G2gB z>7QwZCt^#g>Ge@6{or)7i2LJ*?2e|zq@X8*qSa5RIGxGNh1yjwBKg9zL8BAea~1;z z$-kx>7N(GcqCQ&qR~2Ow13DWUGe~OffqL5zbo+A9KudItLyCKqO$Fr8_YUn4N8Dv5 zqAR@T4WPtubzR0F27xu{5JlXdG8(vjU%2ISctfftCr1;nc=21^&-ag;#&JbSV{ODr z(r&enF9AR3ZI-IChpxVpQv(Z$iw^Rai&BzjJm0%R-%oM;FU%X)Mem3r!icD3@t9q% zxIv1c?C1H*@-wj%Yj^d07lUd&;l6%^$HxrjCQy@@$Ot&1ux-{PNO*yq@G2^O<}mo` z??KFw!j$nb5;H@iz4{euMdd@GOF<-y*v!J*9w*ZAq{)oGc5fO=6_v3W&BsU8bvNwV zsKMb$h_X>$|3Rh!71ZyiAzn^SuGwQ3;HRJhSrIQ^i68*gasX@@-GFHS*PB3^XrNX^ zF&WX=p9WQXID+uJ&flS4=EK_CLKAjpbH+~W0#!-yQVeHj?J*FthtAf(h6o)&T3cgN zD#Q3` z<3vF4&uaxrAgEpxRVmGgQ3(oG&(-*3ELBal0N8vQEQWI9f&!U2CCf676@O!~naKQ< z0C1o>4HyBKXvpb3tsb-)BANf~91Y&j`D`6cCTiY@ls%krD{0CkUdLxFG>xq*xD&D& zL)<7N8;xM;7>w7`;--Z1%$G}ZSZce3A<+@3VHGmgR*7vA%HKl8V9_43ZI3ty#~V^v^jwQhzuzTwk!eM~NC4gRobm_wPo3sq|!8kE^1HQ=E zjE$rexfaJgf={wZ1d0J-FGTMEQF{z;#HT)t0p|a?0810@k2*}l6=yyi#^4>jccvaB zOyQP!@tS#CCGL@COLqL9TaV_={ zKpszrgaezwXsx)l$p4YB1Ok7Q%I{o_A=~!6x-OS*x)Ofa21yyQ{!6untt|(Kk)@w{ z(FTFqX$U=_a~*7@jaSn>Pxjr;SD8^mzyXzuR3~eHgY#L^elr`Bvb0!zTCdLW8LomA zS1jB-|7vFuEs+I?{A~IAZciXRrc@m)zoM&EK0M#iZv&UHd(#ik6XW}G$Z6s7u}(vc z$aUxKV$0^sM*c9vnI@3Q;pztNEjhyLO9@XLu{Mc3SWPHkrqDq8nkfA>2^Am~o1&4D z!onA$iO5iuz_PGmAdTah1t^v_$%~qQG6pVq)#P$I180+O3djdI4H-M-(Y^G=@$wF# zyt~WXq<4IanaNfJZtQ(9*bTDEbbCab8hE3%T-_@QaqYH_hsj`Usmx<-Z0xm~C8Edb$S_4%xd zDf_==_MyfxOWe@bD(8LGZ9^@@q&?mSHO8+F#Qg_I;VYx$=E&mzRQM=agI<+m^ z);XL%c!|EnBN?Q-&56w9?k@SobZB*Tl_PKKzY)Oe^s6sWMIF|yzY_6B8ofNezdB%v zM=Z+XVuWI*q=xr{s#F6fPoe5N`)Qb%7i|LaF<_xm?@j>2G<~2jxg1+%b+rb{q5|*p zci9&unO!+M54OS)UGKOxN0jc16ec4ox_C1<-W<+;_TPM)x3<~buk5+p4$uv3Y=9J6 z!6QQUaC&>38dqLlhbvp z^WQ|a9u{DElwuX~W58)>I)kpNAVrkUqR%|0a0EjFBbrd$BeA5^@CiA4-P|O46BaFB z2(KV#5b^7WM&*{-KX#o^&b&Ioim1Z=+LoD%E|A%&p{I68=lo(zK712hosS-LxbV(e zo73`sAmsSgm8iE(bv2!EHfE9}3go&8djZ^FinPWCLsj_$yz-N-vxR?MD`8R;N9z)1 z#Ay8!;CjU(OVBlvX2c|f5sV|uDxt_gFmM5&BFfdJM0VIOQ@@NwN|XynmYJr?6#eu_ zijL*j0+x^QCeN&4TRf`aR8ez%kJ{110w&4#ecY4 z1MaM$Cj*}lAZi=416J>hj0{|hJO~@L+`Q%n+tm9fFAqB#paLT>bg~-w=`9^1j2Ijs zMuddgKvcxur`!@kPFw)s?|ql~0T~UsJSI?2^Q`-5hJ~w7;{-6Hf-q_RyKZ*!y5EN{ zso%GEe~rya1jlMVB#^urtUYIXIh{GTd(!&Qe5|wiu>Kd7nGlPS*hVe zSyefzTF9a$(Vy#oN7yj1%~-TJ+)VLZ4%SgC?!o1Hozdgq;()p5)JQ31Y&ks@j@wd} zK-Lg#!XW-}o2N{rU$nB0D8;`zzE7$vpN}iFMB&lMgw)T)7s4ur&(u5)8HdMwww9Zm zD4@rtRUsR9#IvzHzXtYm#u}EAAJ*1tbsiC$e(J(QHFI(~yuE}RJNBKrcHB;QQlr<* zm?y5-Dpx{XNPvdz`p?k2%M36HCVv#peT@xVF;!FGS`hZm11)|LnZlx+ZRDJcyD>qK-@TA9V=T)Oi z`14&`YWg5WoHusf>)N5h0lt)!sS#qZjlVC6(i=wd6J~mV)1iMoW$<=PrtXytsKuvY z>3Ly6xhvuCeT~ltU$R?8>4LHj322uyQNaP=o1oY=Pr`cZVCHZ@`I*e3 zzS0#AlqHh9>*5;tsPI0N(kQ2@gn)|PHMEkw{gl!3$B&1nI_mhrCEDhcLGDg(P|+-6 z0GL^mLK^es`u)o6GK0w*oe%g^v(PraZeBKV<^LlcnCD4v+pQWhRQXha^B0z62@ojACm!ez{(mUvU3Z@I%~)1hSSSgljPl{Y z@&0pnN@T(MFmU*;Hw}JQS~aIaPZ@gQNwza*Qw|**C?ztK(jo>6qF9aKU<_xlNF-PZ z9!yF2XRM#6mM4r8k(#f7&XPvo`dFCp=R8~{$dwVzwfzTL6W zDP(r-Fu-s zNt)-cu&1z^U%oYIHW5%nS2F6sLNzW)X-cnGh3~F>KL6v?36Evd@l6`519{CQXC#Pu zk+c7!j?H&%j@aiNZl+K)N(^>FWgx*=AOu)Z+<5AU8TiwW*VVNl`LhtA)B6>&FkU04 zhEkP$>aeiUxe^vmH5-|C9yStxy{u2`Lj5m8E*8qY0h+qK00v{j{iCBBUhhX+{ExNz z407d;vp5AvFygNXTe?iFNGhNut%}?$T>HQb5;34C#5;i zmBDdW%Iee1cCnF*_*sOd{0G4$AFr#-&u_IXK=PfbC$igy1K*kZpK;O>Pypb`yBH~o z+q$grg8{MpvBr(h-;5d9c#l8Kn$AcXej%;X5N+l1w-W>RAoSkveio~C?pP-_Y2O5# zZcKmg`5|3P0RwGN?ZbhHO36$_3oaR)^Rf>ZV!8y%Ve%DZ zu(Sj45n<{n7>!<0l3DPgk?9#u#Yy3clf(NF0sF`_irac^gB^Ps>`=zGuDmKA6EA1G zDgi5EFKV(%NO^fRivOm=Ffreqw%WCJtH_6*yG_tm16P4t7|5G@gqs%CsRrSo*SPbG zR#ooQ6AVGjDiDfEiWi&jf*3qARErwSLW_)bg{%Um5Dw@?EaM(rQWNaH*_(df2y+(n z#2y7vejcDPWL8cn)WfEU#Hw-(E<7TWZVxX+@BbA-6AgxC2_y{#&#CT`gA)8HEq-K@ zu3@Vz+?5%pEZSFcammgze(0QKlmbY|DVi&3Uy8Uq3zmZJs)X^eTVr_9d+#Xwcbmo)n`OU!~5G> zf!l+mfl0d;$b0JFuRSN}zDcA4j5W3syA(;cXDB2<+J__Vbk2o|U)i^vl$4Yw=pz%2 zL8Bgr4n52j^`2;QCWnI)e1I}5f*&Mh)d(0)2q8ytO3C6#Dqplaz40qz!>NmfJ0Nwz z(p4DZ80e>)af+FuUsU)u9_j5*iH-}I0n^AwVO9Z-n6|(8*&X&!Ij)4_Du&xLP};tC zsCdnmIT`C{M(m7wngJJD>k`&BSRwkD>e_2Tk8K{=0$w;R>z;(XRh+RKmyZ0tCwR63 z?qCt{PF)yDH8CumSrZ={2OIhklw|}SpOtTYF(8SSCUNUO}^fo;KJ4fFB3RSR|`NDDsNxV$qCYYN`QCFuT@94tLh3r@^17 z{XC3M&7B4@y;TM5#0BNFl+yLPQQJ$zs4^LNS`S-Ugx42V?+A9#59rXX*~r{1P+5k- z%&6hN8^6>in76d^GO%W#l}IPTiYOLVrqjeTYmx?wV55k8#M-}$dc3_qol?-{Jq*0J z6WI2Q!f*vKeAPsjoU6BK*di2a3+z6el7?CDZ&Q#=L?O9i0T8&f`bE740tFB zi^$uU7=lWb0n60&gPB&ZbB=SJ>&E8GB1L1fvkldofu0B1hmoE~8hQR#c3p>M#mm@nlWdPO9wI<3!Ztr|PR;OAq4$Wb-3e&1Q2*VrC-g4dup_H%Ka?ek+ zl;A>oMcRMLln9)z8yLffdGI}riY3~0PZOs7lZ|~a z{M(`LZ5*#~%53KcClJX_mX!)=BQr;kpsr-rNcGzWD__Q6}(t@&ho_v zdx~kT`#`kqeZt$))Aff=x(#`0yc$;`L2q|6S%?Ijt?dhJKi7KjIx(z0S+hra(>JEG zaEuW=M)5Bne~{xkU>;R|`>ew7u>}*hD7%qrL|D{<6f1C2dz$Ed20^#yv1$61kPP~m z&6=Z7jGjR)Gi34-2Rhz5h9*7X@0e#)7*e9@2ZIH1ye6A*#&C?#>JrAU;hvm~R)i9H zaH!lI;qw^;t&th8;xj7iDsVa`zho*d8KVTR=tGn|a&{-tm_sWzX47qwoOB4MI|zHu z1!gj=E;v_(d$*3p^yV-&E_58h5@7eOb zO~~+R+e?t%8S3TszO#3&_uqu=g42l}jJxz1W|eA1H|SKk`m$Q5LwC;F-pFXz0}@3Q zkw{Qq`SE*B@3@{XT|K)v9yPi*{xi^XFOvwx#*V}4t#$-cO4l~EAuYiZLb8AsO6D&? zc2mVxQ`Yl$$%F>|Q&E+2+x_N5Sl&or*TyjV^f&K?`Xlb87WyXuWsJqB+Z`|PQs#n<;r`&a zeTOlwr&O+&N$STNbbvMuqKW;_d;h0RSZqBb~a@9@(;fMT(=gg z)T#{a_WnKFfV$61lsDC&ALJ=H*MW?hk4~q!eBSl*4?5VpEolU^>0(FsKo8oFd~nG4 z`hL>ok*t01viaC%SJ73@#ok`W1dHgOC3TuiKU)8Jtp4-#po6hiY|ccsv?Hrief9|( zkMzNy#z{2wA$KgXS0d4HsE=#_1&IhuacLZBhXGMTNiI*la;uvAjq@pzo_k%D zAdq-C8r;R!@H|3{sft^{Q`hFb+xaUa5wEl49F7|DZ+>(E?aj|4`@fQ97bGl!0#|#w zL|^9=W>|G?Etms zt>QhwNHT8LyyXE!=uU)DyFHwuzf|ze!Lg11+Q|vh(@O;=&-G_rfT&c zU(P#qBn~H%yxzt#wu7}BlLwPsF=R`%erA5t%adUZ8l)>LXbbb83VN{Y7;>)#EuQ`p z8*FRc-APqh@1Bn{V&H+&43{gNcO@#-cl_u}{yb2(YGQGabzBbU7n?(_%xw#n&j>+(Tj%29cFuBC5A zRY4vt5eQqvVLFAs>~iujO+!U^|l@zDs}8trRbpmU6fxJ%+5{Z`i}dMvTHi zxe@)DK9XXn^X3>-6l;O(XPD*IVP}-{R#Q-MLPzd;`Q6{XPtW&guDYZra7B6jGZ=9Z zK+pc6LxS;`lP8M_h}%}Z{_ww;YJA>O(_?Ul(ZG{M)~s<^2LQ@7Pjv%~)~r~{5ycYZ zFi|SY0e@s0ZrbI}ITVLZ`RcAxJ#AXy-KymWfiirYcqIE<{D1pJ$2yn?RtS?7G`hu@VXpu+noi2+zK`Cr;3ThF_f zw|USllZCwgLG~PZaBy(I7*s8C#`lUi-;6N(y%ImzvP)CQY97n)yrp*cBtGO?8JZeb zUx<#NgGS-7#K}Y$C7U=cKMwAs`__b&lSMvpl2y%0xqlS3?hVfh&OZVTe$LWH3nA6u z!cDSgjE=CNroSOzFH zrY&Ge5X8cFmtTGhs{X-T{bkSl)Rnh7LY6A;{_@*N_EX9G>GA@ey+Q=BBK5X&xs8T& zW^IY>kf4f-RN3NAtE%cgHy*XLk&?*oIzsIg$zr&~U{h{+Rs=VMtg2!z15xz|8@!0j zzUW!qHPbDQ+>G+{O3@KS9?MXo1x)Cy?w4~^C?BHXR&s!U$12DxQ>FPEqshr>*~G#j z0}#7VJE=a4+K^`r?RfMk@z=hmX;Q~dtDzHJj!7!K2bMP=hfUFRWnbjI4RHkUiezSC z_WGf7y9<1mGTVyXwMOzM5%9cG5ppdu_z+`(Kze*(J*VYH_i!_~qUbQ0d+ z^DnW~+PN7}0gFv81XVa)zImnUsfAq1lPoyZ5&F z8_f?Z#w6GdNnmt17bV#r!+|Y|gD%2E$~y5Ys>f8J$vV049F&f?ay{>=X#DJ*iqbm47WWC<}#HCx&W3YYkCxsiw6XStefAIb;{h zuql!dg~gaArRnm@m99(BhkTDFc0?JW*ni%9-KKcoS37=Ow8(DV+Ap2e&QISZM_@AO zl-d(|JaLmSsfzr9yj>+1zkpSU0k|$}5p#0tqQlVzhx4 zSaun~jS4?@JXq8CN!4PcT&7a-&>aWUx$Sa)z2}x|x_KsGE|@nd)bp^EPWMyLv6cE z#irT)4Le`+cO^QtbRoZ7iK0w1Z2PhAl{5DtXs}Y54b5B0>q%Ay9 zD?WISXc!(BS61AziC|wQ#9Qz?Q3#Op3*3uU@?owudE(G!P$GBc36Hts_Cn@K-SP;O zoRk!b8#FezKwSsG-}?JGbJ5dY0~v>q+cR>?)}5JXqss1Lh^r?BLTNDej!JUjLlj$2D@H9-GQ7foD z)>U8C$F^@35J^`cT&PA_Hd#V>KX@mP#Lmg^kLRlmL^0(WYvChra0nyX>M4S=nmC)z$xgCD`>&{U({~d7uGg1shRN02$Ku=I4UEF;r$# zxdZn;03A#^S-I>e{u><{o=i#7s1L3r1|cCDkybV7zT@XcVrI_G2AbI8Eofg% z6HS`EGUYK~x5c~usrq>C)cHi<0XeoUs~H`C@CN<+z`S>`?`EQ|T{6qq!otFm^_H|5 zl>q-bImq|j<_LJf-L;6XDdbbt$RbW?WvTwX%KEc8N-3Q!$96qIRL((D{#P!G!+6{M zZPUj5c-p2ZezE>H(ZE=nt(IRoHd+^)`SLqn)-VV}(Qq!33cH1vT0Mps>)X@5HGsMAcD>TDp~4QXch#KZ=Mj)Z2@c`Y`_#V)7e z%$gOK)h+L!??U(V`+z>YBc^c8@7#wwRu+hCcM*^$5$bzd<&E9lDjzRF!F}wC^A65? zx(NHzW`rQpugruKX>Dz7%-Z;&`&{y&>$_j#yxDZUlP5y#p&~JHNq4*H>xe)c=?Jh= z@&HB&f{b6Fm>V{emFJPERHC^fmNO=j->B6ITH# z|MInR+Dkv@{{n|%9N+TpJARQBhDnP5o%qMcQ9nv9yOnl6=g0qR0jf&GnvEH4PHvf5 z>d-zC_Rm0Dl|nwB+*VC6asITh5*~ZUXAY zzMs6e=z8P4v7K~8_DV5y>%lSZ@T53&F2bF&i7q3V{wJ}fsE0yz)HJefq3_M{(->X2 z_;tgVohmlz&e764aWaxahaSaZW{8hwwobF$@B6X|NQk14)GFHzH9Y zOvyVQf>3j7k_yFi@0+9^NKM9!%Z7ENpCIWZBZVeRsHJWuv4OA{1393gL$@1<&HXbq?R~ z-V5BM)J%6iI1`R`i5ZM78(uTIjE}8oDO~fDqnQj7XHj7)YA%ihj?^;TmH}QOaJq1!kWB5Sj=l}>!S52%`Lug`1TgtrUT?M1Gcs&H z3+^jLaP@4XrJ7@hW;{x_EbqQ`oEse8pi5YBjO}9@6&0~-GT@}*XjCj~XlNF$TX$C` zp1AV9yip7Gt*&a`y(N#Em>wJeAX8^v;>Zwap}UQ+3+=SDsccgNgMghC8i?DuzOnU0 zXkM~xBg7{6acaI17nkR4uSG*sqt8iT`Sp(6Vy7?$MB=17t?5D4=lS zAJC;&B}i4Brrf0+$6zVHdGDq4oFA0Bs?pp@Ast+A|{>=X;#i%;$mc!R)PPES) z$z4}f$>wJSW}&I>N+4=tDQdkNlA?8#gbhkk+2B0p{ev~Ax@rm2SJk0huc7WGYc+Ji znhmbkXhF53g^~ESBVL_VOqV&;TX*WB2D^Ffpo62OY1=-CXD6m?%@y|9<)5ovck8ec0hbAg-3AzOH);&giHK^38U0 zN)~tOdQk0Ckve^CZLL(r;?CQ0S8Pa#N3%^<4P}Qy1n$0s`RK5NNrIIu6JIqPs@MU?(2mWtbKQAbQg(^pG3$| zal1&u!9rAH8f1sdGLxwabIEeGyhF2>yL#w=DN@X~?n+f|f4rWjV1$=eL(jBmG@3ud z142puo7)1y$6_yKx><(@;oyvTTY~p9!jz~reZlqk4U>ysYZ-cALFrgyux{~>z$7O_ zThbmpZm0%1a}qz2^eJR+{It-eTaQsvNl0M{#>jAS4B0FvYCWc?`0n$#m(z1W*Jf@4 z&l}6=OpG=(type5uWi*rKDGi8-(@1JCq2phQNk6r5+S| z{%W54GSzIjJ8^hjL(n_0cUV$qtmEVE$=)RIN$!WI}Fsu$+DlD<*bX8 zY3sa}ZFBwJcver*AuV=hgVRMhjN=Url@rq+#T9qFk7^s+$9i5u{C=a9%9Bg*xa?3m zSOY!Xagb}nvus#z?fT#Rm91)2 z87^$HthnPNbWA&72Iu;MLlj_(w|x+3RX9YqDUj&$(bgHRTLpCX%xNqkX3kE~f_Zn+ z{l7A|4Sw|*n)S+ec99y~ZZdYJIKOro*dQ3>e(TfT<(#lF63))WyxZo`cAob-HR9BB z!-Y&<$W31E(9en;t)4%{UrZdb@>aHjyo9Nb+1y4TE70)u#`++qekNh?nqSTkdZLN; zJHC5?SzY0u2`#o6l|z2AF|u0w)vlFXeuU@_$vc7 zEI-nq#$~ODx_3#t&9p88mGrb)usx=V&fAx!*RE;OWPm66$$LHvSVLmGz1F<*(pgz4 z(_+6^iryrOT#Q_VQAuk!T{}I96lO?TSX<9jEyADKmc5pf%zStbPLN|bzH7J6%Powj z0|>;U{d0wK*yF|NOYu~%HLSd2o6iXE{sJ9t*JmV8Wb)nak*Y00rDJRRJg~o=s(8MY zzam5D8P-V=4XfhX(jzf+xr^6g6-J!7Rvv; z2gLML{={Pd@tS>-l`;ECx_I{5&hkjq^%zw@_o>KGlSi~0#UhZ?pS$4CJb)Rb+tFWoLPqTlU?pyW6W za{ejE3Yh%Ls)VDVNkC`cv&bTr{fw(Z@r(WQ$a}XQ@$*2B)7#(x`o)47SEngf1>4Rq zh|u>69@C{~8D`F+&raYLu0mUlvJED8Ch|)SgH02@Yu~d^v(qmRDs<DGMZQl9>E<67aQG+COfvTQ_5-kP6xpZ+OOB}=K1rhAz+^U!`x8hN z3@b*X_q@c_)-w+XQR}US<==p28R6w$&AVpeBSUL$8mQH$shpXYSE8$1UI@ABiju`r z2B{=5rzwRdQbSjF${%v;q~YuTOC7%F7$cM{CI-IC_JadaKXdW&DdydC#EUHJx<_jJ z&rYS?7lO(4fQH>k^sV29ERZ~<^A|1i_2JY1qvExw5FhQ%v1T|p6^;H4fReub0dfTTyei9d;zTa`(;hS64G-@Lqlml{=^YT=m4?d zEV^V%IFOM}OW2q%$2;4Vkm@1r{fX@#7f+qrDA}Y9JJXh19%Mdc!3m0KS~%#8wH@E1 z^870Ib1j(`KU#jo#(J6Rbz{LnmNxN&ziXQ4jgb(H6s)CpztuGaSs~?Bat_zCjXf#b z*LRA1y-Cb;IM3mp)(a0`!_(|t_2X2b_8_T+X4N#($JNnS1r}4McyHQ`{`-@G;9}Fm zPcrkaZN^!ID~+de5-=6~5m!;c2_!}H**|B^kJ__{G>vV~~qGN-N zI6W5H66r)@Ee92k&?d&JkoOGCpJ<{g6R6pI|Jw|^E4P8VFs>F*PZTc2FZwj zMVf52C&Bt=X6AP+fNE4FL$D(|Qgkr8h2jOi`n;Gb>KSiUGZ>L3l$4T2p2(j23hVVh z6bbSC*)BwkhR3K(wN7!Bl}N^jfds1p-0#U{-xVSRLpB%ABmr)uerXh@m&X&whgRu$ z_q5TGD&%j%4h4$MqfmD{+?I_)u_)+r5aalzpvv|yD1Q6o105a0$|vi4zQ@+%2hTqOqD8?V9{}91y>OjFM(~)u++7LT#0f%enilB;q*Lf3t65P_JHQ zTco_9QQ(JZTdU?Oqq0|f9a4LKzR}b3ntN-UO#>Ss0{*O|Vla*xrIe9O`>fd`V@5Fe z!wUv`eA9Y%WPjnA@r+jtx4!I*f{4*7gYW?W3j&qRp5HpAkp+uHLfRr}xzF+H>4?wd ztROKIpH%OSGs0!Mklb68>lSmD_vgMuYQ;uE&T)nBhPk_g4-f7bGAd^U$El~cmD!y{wiI2Y>zl7GuWZ+T;mb-qQJoXp%%7JA}|(mP16d`9%OQe>>){CtK(NXK2x2PkaS+6-_(ncH1Hvndf z)~L@*Em@NZ>qka`o*98v57U;9Wfpf5n!6l4Mt*9576Tk@XDP!^;5e!$O7}d~BzjA^ zBl;4IUFbMWLY&_vX#TH4gX#yEp%=SXmE%wBaAN5|XiM%-iyhk-ybpA|U@#v)E;J8$ zwitga`E6HVattl2cMJw8Z?8uTOObrdvXk$lY_Yx9ZkyPBhR==3OHTwywLh?Rf%(=r z<6ovsa~9v8#k*==O4mJp=8rcIz0maNPB)#4BhwI!hNJ%eG?QUUYD3cN4E2#4X`@Eu zyW7CA6J7V>l@guR7d-2wN;(z=B(7Q$C1vH-dv%-6p;O^V8B<>%%+Ilbj9t<<=O7{r z#4<<@qsw3)vvjqnS)S9!Pl-_^5gYMk@(^N1-` z9*4p8@IB7ftE~+1#ugKW+uD_Wa@q&&{{JX6$Bl3z%KO5M9hQt2VFp;*5BKa*U|N(` z`WRBK=}6{ZK9Dr>a+Oz0Qb#bt`C(YEtCQLB}gg~kGz_O5wS`2LH+S_l@Q7VB+Q76Y)s!zj_sy2GyWbCto?JFN#Ga2l#Q++q zZaAdPlCdl`bMr@u;q-aQrA&KIrS@7FA!6>oTr^;yRX@rm7=?6 z`60yy$I89W$m7_n@-E^_->>dWW2(CNIx~U;V&%%8(&{MD|i-}`7thXEWf?h&bnTtvYG}fjG)+0Ts#jSF&^e?_S{9w zc2%KzOzNT;*^~i^-AFtlWI>zX!Ya$FZKio9$IM($H#im}33mZ2-aUijOBSdX*bjfZ2p&rPgpl0o)?HZ;geCeh zJ=YUn(hpW&+Pde#I>f9&>A3H0+xtn!N6C0#f@*tYUkcOmXCZ14KAlc7l=mrORoACJ zk1<*H)uaF+0526xEAX_?kRac0`8Hzt7ni+)>HKzb<%sR{F~@gU2=P~H$jt-i-Jh0D zG?avopQSW;UH+`CZlw|q&3@DE!}|J^?E_A9EfQfKY!Pju5d??J(uk{yuJCBysPT^?4=Y z`Hk`0{UBn}^19v5AnDrMZ!cQE`J?Vs?4>==JP^q=fxY|carwAKrS+`c0sN{sUAdES znD0TY0pNr1_9$n2f znPW>tnHJFbBgHBBk4LL&X=%^bjtq`Cf`@xB2|;dsA6CvAACi`8!^vY8?{51<19m-Z zRJ;}>fSFYlZ^ELMkuY??+u~`gg|=-;YuAO6=$%pQN)vxc2gPF(-8wxAM7-jQI2n2u z-%~ku1@V%&pw}itU4&UO?v`#s;oIiLDGM`poWAilRjSJ&+Yb~dkQ=#Kt>fD(omwtD&O|bQb*c#5F9|kX^14S*2T6L~ zT8o9i>H+hijYbACv6~V-Mv;uwR(Jzi+w+|{WG?fCLFtcEWLX2nTlajM)cR0ssi%nS z)&LUei2YlO>?#S%6sWRKMEG?*U!%wsbN)c2Ki*s+#7S*hGvq;v#Z&d-Zx(}b$%n=h zq(;zdBcFF7o~QUlGgAu8tgr1>t|s+fuY6m~)I(i^#&4&jC!G5urSFbscJ*8k*1!CI z0J(2S?F{oi!e4hWPO_*d9ewlg2w9K|Z@;mu(e*kN!3OUv324n|z0QuZYs-k*A_JPf zr1a$4_sR5TH=_nx)IYG|)RL@nKh;g|oDb(Bf?312@QhoQWpKr%{A#WQ@4UpTrfEZH zFz$r0mt5J69(MT8e1Emy5GTz6X=2q2wm>Kfm`umu8s9pHuM^n!w-~NQ;E^Rjpncg! zx5DPiY2P8>_md}jhVmqnNhmES5)pIV)p|+`BlO02bf)M+eWN%Cfjn0Q;i%In-3GEj z;T-?G=7xqYL_&I~X|ieD%6vJatZOaoO3XcH%Q=nt0>C`hLq^k=@@RkJ!$65LStN?x zO*-18T0>>a00UI-z32Dho5&X*WH*m9!P6$OH>+OU_v?|=t~@=>Th!x(nt#yz))1$| z38PjVf1CW2dmtptH3D@!8G){b;_8lWU5!Q(Ac(k6tbW2&y>ow-=+lT61to1)g5|~a zP)&7&s1K-oe`}s^v3L%p1V|J%hi(Nkf!IJ2$Hj*3TcNlokL`rVPp)m%b7@_c_9bJO zk{aX$Z8KmWc6x?|=s%mpk-`)Eg{00*c+B+ICW4$r)6E!)e>>Th!z;@!^YC4@FdpEy zf?0RRocK~2(G~nbXILhpA&KIkpYPT8+8dru^~53ro_X1p5Ibb;9oLj+R~HZL6LtOU zP=9F`Ps6Q#XtCgTf;umR&CJ;^Mk&1*B;H|VS#YaV(?W$p3d6LBNh$O73pqsjlnXUX z+<*AHG&%33r zj2|v$0VRQNc^*V|X0@1hE?h2L{O)p5U2ImB)fZf9Df+gY1XiB&>P`;_Hc?t5;euo> zyA+OPDoyii{=lQs=y|LpJ~SYMesO{6mJaLnNCTEFHCAs_^skTRq&bbY`dgnayP}jA zadtQYK(DDdGi~kj1EUS=Qtp!TOILmJBI7co@BmV@i-r#3Ad%z{xAt(^L{%h)ST6}0v6~Q{S+8-mW%gwzve)dniu5HX#`?VR{Tk~@hJyR#91CBRH)A| zIc6kW+bmv)&9VQz9PJu`wMtTUmidi3=i=bUIZwHI?znmQ^}8+CXLH4%aT*aVse~HRlWCX_eSb!rlF57nY?F2j*WULg8z_~*aY%hJbll{#r)jxn%70|f=Mi3W$Z#^(;{F?4t7~WJ z{bfg8`bK~+FEFrLZ*8gF^Rxz`{^SAR7;ySdRqHu0@k2SMSy9)tSN%|d5OqHW%J#?p zu71+C(#Fk72M81tu9DsG@WF?2!NB)8i>5>wjy`!G4>h{%x^)-19}jFJ=kIMxBb_hA z74jQT3lcK%F>ZMWMlGWFc`r8~xY_2^*>>CS!&+#HLik&FyUYG~<*d!8eDP${0!tP7 zo+T(CXy13g$Hc>c=fJ-4V>hhGl<(|LXDmQBWuUL2xu52$a1&#|iIlWODT}dTP zUpi&EtlrLIiK;uC)b9zSv=$mZrd{V|xb%M7sv^hG2OHw4zZ?^@_^QX7$lXx-1y6yc zGh)c1EHYiR;CxP~TYt`Vq|0Z=I(npevaEBY1#&q}z_W@OWRLpGh#j#|s~CLzC}71~ zoRXfD^uwc%rL$v1^TQ}oSKmV;~4=+ zT>8yFf$4A@%K`9aAv80atE%o6TD_-2u=jje6!5rN_S(9EB+UD}|Dlqt(dc*|D3i_k zT?z|~w-~wg&`>sXIaQrjynBAxXaMBApaJT}b->K(Hofl*mx1e@QKHd5H72Lqu@A=$ zyLMJIyc-Y;L;>ZN4co=lZq5o-FIcu(?Wp6`m0$}b0a9lzO(|2gL_X`x^##v{E0fn% z{!L6fzJv(FB(ISCqDWW?rperio>sm19CmCHv=xV^O@U~B_)3Ohm0%qwGXJ3fcZ)EUa@5yG-Otr&PU{?HgZf0wGD@n8d# z*;v%=jL1JTM>I8H`88zUB1rF4oRIfay35dTQ6xc`r-+27o3+fUB8JAHHszm?zuiAW z;xmT0b3}>JtR3TSqxa;N?dghp6MS*9tE^s|tR|jND94$y0;-<#5bLDs{W$4WxKP@t zvo=gy51DwbSZ~|WU#qI8EUoFQjv-(a6;RjmB$56!S|z#N86{PuFHw=lY)oVVOdHNY zSwSvMl1XTgaLUc^%UsEEd7dN1Jj${8X<+%OSy=cy-(BbP