wok rev 21747

tazboot: spare 2k
author Pascal Bellard <pascal.bellard@slitaz.org>
date Fri Jun 14 17:17:16 2019 +0200 (2019-06-14)
parents 41fed2f82beb
children ef3a79e3c3a4
files linld/stuff/src/CRTL.ASM linld/stuff/src/ISO9660.CPP linld/stuff/src/pipehole.awk
line diff
     1.1 --- a/linld/stuff/src/CRTL.ASM	Fri Jun 14 16:14:44 2019 +0100
     1.2 +++ b/linld/stuff/src/CRTL.ASM	Fri Jun 14 17:17:16 2019 +0200
     1.3 @@ -31,6 +31,27 @@
     1.4  
     1.5          segment _BSS byte public use16 'BSS'
     1.6  
     1.7 +		ifdef EXTRA
     1.8 +;typedef unsigned dirsizetype;
     1.9 +struc		isostate		; struct isostate {
    1.10 +fd		dw	?		; 0	int fd;
    1.11 +filemod		dw	?		; 2	unsigned short filemod;
    1.12 +fileofs		dd	?		; 4	unsigned long fileofs;
    1.13 +filesize	dd	?		; 8	unsigned long filesize;
    1.14 +filename	dw	?		;12	char *filename;
    1.15 +curdirsize	dw	?		;14	dirsizetype curdirsize;
    1.16 +dirsize		dw	?		;16	dirsizetype dirsize;
    1.17 +curdirofs	dd	?		;18	unsigned long curdirofs;
    1.18 +dirofs		dd	?		;22	unsigned long dirofs;
    1.19 +curpos		dw	?		;26	unsigned curpos;
    1.20 +filename2open	dw	?		;28	char *filename2open;
    1.21 +entrysize	dw	?		;30	int entrysize;
    1.22 +tmp		dw	?		;32	const char *tmp;
    1.23 +;buffer		label			;34	char buffer[2048+512];
    1.24 +ends					; } isostate;
    1.25 +		public	_isostate
    1.26 +_isostate	isostate	<?>
    1.27 +		endif
    1.28  _xfer_buf	db	4096	dup (?)
    1.29          global  _no_exit:byte
    1.30  _no_exit	db	?
    1.31 @@ -321,24 +342,6 @@
    1.32          endp    @lseekcur$qii
    1.33  
    1.34  		ifdef EXTRA
    1.35 -
    1.36 -;typedef unsigned dirsizetype;
    1.37 -struc		isostate		; struct isostate {
    1.38 -fd		dw	?		; 0	int fd;
    1.39 -filemod		dw	?		; 2	unsigned short filemod;
    1.40 -fileofs		dd	?		; 4	unsigned long fileofs;
    1.41 -filesize	dd	?		; 8	unsigned long filesize;
    1.42 -filename	dw	?		;12	char *filename;
    1.43 -curdirsize	dw	?		;14	dirsizetype curdirsize;
    1.44 -dirsize		dw	?		;16	dirsizetype dirsize;
    1.45 -curdirofs	dd	?		;18	unsigned long curdirofs;
    1.46 -dirofs		dd	?		;22	unsigned long dirofs;
    1.47 -curpos		dw	?		;26	unsigned curpos;
    1.48 -filename2open	dw	?		;28	char *filename2open;
    1.49 -entrysize	dw	?		;30	int entrysize;
    1.50 -tmp		dw	?		;32	const char *tmp;
    1.51 -buffer		db	2560	dup(?)	;34	char buffer[2048+512];
    1.52 -ends					; } isostate;
    1.53  ;***************************************************************
    1.54  ;_fastcall long isolseek(bx:const unsigned long *offset);
    1.55  ;_fastcall long lseekset2(ax:int fd, bx:unsigned long* whence);
    1.56 @@ -347,7 +350,6 @@
    1.57          proc    @isolseek$qpxul near
    1.58  
    1.59  isolseek:
    1.60 -		extrn	_isostate:isostate
    1.61  		mov	ax,[_isostate.fd]
    1.62  	global	@lseekset2$qipul:near
    1.63  @lseekset2$qipul:
    1.64 @@ -367,7 +369,8 @@
    1.65  		call	isolseek
    1.66  		jc	doret
    1.67  		mov	dx,2560
    1.68 -		mov	bx,offset _isostate.buffer
    1.69 +		;mov	bx,offset _isostate.buffer
    1.70 +		mov	bx,offset _xfer_buf
    1.71  		mov	ax,[_isostate.fd]
    1.72  		jmp	@read$dxbxax		; read(fd,buffer,2560)
    1.73  
     2.1 --- a/linld/stuff/src/ISO9660.CPP	Fri Jun 14 16:14:44 2019 +0100
     2.2 +++ b/linld/stuff/src/ISO9660.CPP	Fri Jun 14 17:17:16 2019 +0200
     2.3 @@ -3,8 +3,6 @@
     2.4  #include "iso9660.h"
     2.5  #define __ROCKRIDGE
     2.6  
     2.7 -struct isostate isostate;
     2.8 -
     2.9  #if 1
    2.10  #define setdirofs(to,sec)	(*(int*)((char*)&(to)+1) = *(int*)&(sec)<<(SECTORBITS-8))
    2.11  #define cpydirofs(to,from)	(*(int*)((char*)&(to)+1) = *(int*)((char*)&(from)+1))
     3.1 --- a/linld/stuff/src/pipehole.awk	Fri Jun 14 16:14:44 2019 +0100
     3.2 +++ b/linld/stuff/src/pipehole.awk	Fri Jun 14 17:17:16 2019 +0200
     3.3 @@ -16,10 +16,9 @@
     3.4  	}
     3.5  	if (/x->curdirsize == 0xFFFF/) isiso=4
     3.6  	if (isiso == 4) { # ISO9660.LST
     3.7 -		if (/DGROUP:_isostate\+14,-1/) {
     3.8 -			sub(/DGROUP:_isostate\+14/,"[si+14]")
     3.9 -			isiso=0
    3.10 -		}
    3.11 +		sub(/DGROUP:_isostate\+14/,"[si+14]")
    3.12 +		sub(/DGROUP:_isostate\+16/,"[si+16]")
    3.13 +		if (/goto restarted/) isiso=0
    3.14  	}
    3.15  	if (/c = \*s;/) isiso=3
    3.16  	if (isiso == 3) { # ISO9660.LST
    3.17 @@ -36,6 +35,7 @@
    3.18  	if (isiso == 2) { # ISO9660.LST
    3.19  		if (/mov	bx,cx/) next
    3.20  		gsub(/cx/,"bx")
    3.21 +		sub(/DGROUP:_isostate\+31/,"[si+31]")
    3.22  	}
    3.23  	if (/const char \*n = name/) isiso=1
    3.24  	if (isiso == 1) { # ISO9660.LST