wok rev 18145

Add defragfs
author Pascal Bellard <pascal.bellard@slitaz.org>
date Thu Jun 18 16:31:01 2015 +0200 (2015-06-18)
parents 6c61376778ea
children 8809751bb68d
files defragfs/receipt syslinux/stuff/iso2exe/bootloader.S syslinux/stuff/iso2exe/taziso
line diff
     1.1 --- /dev/null	Thu Jan 01 00:00:00 1970 +0000
     1.2 +++ b/defragfs/receipt	Thu Jun 18 16:31:01 2015 +0200
     1.3 @@ -0,0 +1,20 @@
     1.4 +# SliTaz package receipt.
     1.5 +
     1.6 +PACKAGE="defragfs"
     1.7 +VERSION="1.1.1"
     1.8 +CATEGORY="misc"
     1.9 +SHORT_DESC="Measurement and Report and Defrag fs/file fragmentation."
    1.10 +MAINTAINER="pascal.bellard@slitaz.org"
    1.11 +LICENSE="GPL3"
    1.12 +TARBALL="$PACKAGE-$VERSION.gz"
    1.13 +WEB_SITE="http://defragfs.sourceforge.net/"
    1.14 +WGET_URL="http://vorboss.dl.sourceforge.net/project/$PACKAGE/$PACKAGE/$PACKAGE-${VERSION%.*}/$TARBALL"
    1.15 +
    1.16 +DEPENDS="perl"
    1.17 +
    1.18 +# Rules to gen a SliTaz package suitable for Tazpkg.
    1.19 +genpkg_rules()
    1.20 +{
    1.21 +	mkdir -p $fs/usr/bin
    1.22 +	zcat $src/$TARBALL > $fs/usr/bin/defragfs
    1.23 +}
     2.1 --- a/syslinux/stuff/iso2exe/bootloader.S	Thu Jun 18 02:57:32 2015 +0300
     2.2 +++ b/syslinux/stuff/iso2exe/bootloader.S	Thu Jun 18 16:31:01 2015 +0200
     2.3 @@ -65,7 +65,7 @@
     2.4  	movw	$zeroed+1, %cx		# clear gdt + offset, %ds, limits, cmdline=""
     2.5  	rep				# don't worry about cld
     2.6  	stosb				# already done above
     2.7 -	decw	%di
     2.8 +	//decw	%di
     2.9  #else
    2.10  	movw	$zeroed/2, %cx		# clear gdt + offset, %ds, limits
    2.11  	rep				# don't worry about cld
    2.12 @@ -96,6 +96,7 @@
    2.13  #
    2.14  # High doesn't hurt.  Low does.  Let's use the max: 63
    2.15  
    2.16 +	cli
    2.17  	ldsw	0x78(%bx), %si		# %ds:%bx+0x78 is parameter table address
    2.18  	popw	%di
    2.19  	pushw	%es
    2.20 @@ -112,7 +113,6 @@
    2.21  	popw	%ds			# now %ds = %es = %ss = INITSEG
    2.22  	popl	%fs:0x78(%bx)		# update parameter table address
    2.23  	movb	$63, 0x4-12(%di)	# patch sector count, %di = stacktop
    2.24 -	cli
    2.25  
    2.26  	xchg	%ax, %di		# sector count
    2.27  	popw	%ax			# limits = 0
    2.28 @@ -138,9 +138,6 @@
    2.29  	movw	$0xA33F, cmd_line_ptr-2-7(%bx)
    2.30  #endif
    2.31  	call	puts
    2.32 -#if defined(MOVE_CMDLINE) || (defined(EDIT_CMDLINE) && defined(KEYBOARDLESS_SUPPORT))
    2.33 -	pushw	%di
    2.34 -#endif
    2.35  #ifdef	EDIT_CMDLINE
    2.36  cmdlp:
    2.37  	movb	$0x20, %al		# clear end of line
    2.38 @@ -179,9 +176,6 @@
    2.39  	rep
    2.40  	  movsb
    2.41  #endif
    2.42 -#if defined(EDIT_CMDLINE) || (defined(MOVE_CMDLINE) && defined(KEYBOARD_TIMEOUT))
    2.43 -	popw	%di
    2.44 -#endif
    2.45  nocmdline:
    2.46  #endif
    2.47  
    2.48 @@ -194,7 +188,7 @@
    2.49  	movb	$0x88, %ah
    2.50  	int	$0x15
    2.51  	//jc	NeedMoreRAM			# error code 80 or 86
    2.52 -	cmpw	$0xC000, %ax			# more than 49M ?
    2.53 +	cmpw	$0xB000, %ax			# more than 45M ?
    2.54  	jb	NeedMoreRAM
    2.55  	movb	%ch, bootsect_dst_base_hi(%si)	# initramfs @ 32M
    2.56  	movb	%ch, ramdisk_image_ofs+3-\base
    2.57 @@ -306,6 +300,7 @@
    2.58  	pushw	%bx
    2.59  	movl	-4(%bx), %ebx
    2.60  	addl	%ebx, ramdisk_size_ofs-cur_initrd_size_ofs(%di)
    2.61 +	movb	$swap_floppy2-0x100, %cs:dpy_swap_floppy-2+0x7C00
    2.62  	popw	%bx
    2.63  	cmpb	2(%di), %bl
    2.64  	jb	initrdlp
    2.65 @@ -409,6 +404,7 @@
    2.66  	movb	$0,%ch			# first cylinder
    2.67  	pushaw
    2.68  	movw	$swap_floppy,%si
    2.69 +dpy_swap_floppy:
    2.70  #ifdef KEYBOARDLESS_SUPPORT
    2.71  	pushw	%bx
    2.72  	call	puts
    2.73 @@ -419,7 +415,10 @@
    2.74  	jne	waitfloppydone
    2.75  #ifdef MULTI_INITRD
    2.76  	decb	(%si)			# max_timeouts	
    2.77 -	jz	gobootit
    2.78 +gobootit:
    2.79 +	//movw	ramdisk_size+2-max_timeouts(%si), %cx
    2.80 +	.byte	0x8B, 0x4C, ramdisk_size+2-max_timeouts
    2.81 +	jz	bootit
    2.82  #endif
    2.83  	pushw	%dx			# some bios break dx...
    2.84  	cbw
    2.85 @@ -442,14 +441,9 @@
    2.86  #ifdef MULTI_INITRD
    2.87  	orb	$0x20, %al
    2.88  	cmp	$'b', %al
    2.89 -        jnz	read_sectorslp
    2.90 -gobootit:
    2.91 -	//movw	ramdisk_size+2-max_timeouts(%si), %cx
    2.92 -	.byte	0x8B, 0x4C, ramdisk_size+2-max_timeouts
    2.93 -	jmp	bootit
    2.94 -#else
    2.95 +        jz	gobootit
    2.96 +#endif
    2.97          jmp	read_sectorslp
    2.98 -#endif
    2.99  
   2.100  putcdot:
   2.101  	movb	$'.'+3, %al	// . = success, - = failure
   2.102 @@ -496,10 +490,11 @@
   2.103  	jg	putcs
   2.104  	ret	
   2.105  
   2.106 -swap_floppy:
   2.107  #ifdef MULTI_INITRD
   2.108 +swap_floppy2:
   2.109  	.ascii	"B or "
   2.110  #endif
   2.111 +swap_floppy:
   2.112  	.ascii	"Next!"
   2.113  	.byte	7,13,0			# swap detection needs 13, 0
   2.114  #ifdef MULTI_INITRD
     3.1 --- a/syslinux/stuff/iso2exe/taziso	Thu Jun 18 02:57:32 2015 +0300
     3.2 +++ b/syslinux/stuff/iso2exe/taziso	Thu Jun 18 16:31:01 2015 +0200
     3.3 @@ -1057,6 +1057,17 @@
     3.4  parse_isolinux()
     3.5  {
     3.6  	awk 'BEGIN { IGNORECASE=1 }
     3.7 +function multi(n)
     3.8 +{
     3.9 +	auto=$n
    3.10 +	for (--n; n < NF; n+=2) {
    3.11 +		s=$n
    3.12 +		if (s ~ /M$/) s = substr(s,0,length(s)-1)
    3.13 +		else s /= 1024
    3.14 +		sizes=int(s) " " sizes
    3.15 +	}
    3.16 +	next
    3.17 +}
    3.18  {
    3.19  	if ($1 == "LABEL") {
    3.20  		label=$2
    3.21 @@ -1066,13 +1077,10 @@
    3.22  	if ($1 == "INITRD") initrd[label]=$2
    3.23  	if ($1 == "APPEND") {
    3.24  		i=2
    3.25 -		if (kernel[label] ~ "ifmem.c32") {
    3.26 -			auto=$3
    3.27 -			next
    3.28 -		}
    3.29 +		if (kernel[label] ~ "ifmem.c32") multi(3)
    3.30  		if (kernel[label] ~ "c32box.c32") {
    3.31  			if ($2 == "linux") { kernel[label]=$3; i=4 }
    3.32 -			if ($2 == "ifmem") { auto=$4; next }
    3.33 +			if ($2 == "ifmem") multi(4)
    3.34  		}
    3.35  		if (kernel[label] ~ "ifcpu64.c32") { auto=$4; next }
    3.36  		while (i <= NF) {
    3.37 @@ -1086,6 +1094,7 @@
    3.38  	print "KERNEL=\"" kernel[auto] "\""
    3.39  	print "INITRD=\"" initrd[auto] "\""
    3.40  	print "CMDLINE=\"" substr(cmdline[auto],2) "\""
    3.41 +	print "SIZES=\"" sizes "\""
    3.42  }'
    3.43  }
    3.44