wok-current rev 19826
linld: remove dead code
author | Pascal Bellard <pascal.bellard@slitaz.org> |
---|---|
date | Tue Mar 07 12:21:16 2017 +0100 (2017-03-07) |
parents | 6f494adb2c71 |
children | e619bff66a02 |
files | linld/stuff/src/CRTL.ASM linld/stuff/src/CRTL.H linld/stuff/src/CRTLX.H linld/stuff/src/ISO9660.CPP linld/stuff/src/ISO9660.H linld/stuff/src/LINLD.CPP |
line diff
1.1 --- a/linld/stuff/src/CRTL.ASM Sun Mar 05 13:22:08 2017 +0100 1.2 +++ b/linld/stuff/src/CRTL.ASM Tue Mar 07 12:21:16 2017 +0100 1.3 @@ -51,18 +51,20 @@ 1.4 ;char* strcat(const char* a, const char* b); 1.5 ;char* strcatb(const char* a, const char* b); 1.6 ;*************************************************************** 1.7 - global _strcpy:near 1.8 - proc _strcpy near 1.9 + global _strcatb:near 1.10 + proc _strcatb near 1.11 1.12 - mov dl,0 1.13 + ifdef EXTRA 1.14 + mov dl,3 1.15 db 0bbh ; mov bx,imm opcode 1.16 global _strcat:near 1.17 _strcat: 1.18 mov dl,1 1.19 db 0bbh ; mov bx,imm opcode 1.20 - global _strcatb:near 1.21 -_strcatb: 1.22 - mov dl,3 1.23 + global _strcpy:near 1.24 +_strcpy: 1.25 + mov dl,0 1.26 + endif 1.27 pop ax ;caller return address 1.28 pop cx ; a 1.29 pop bx ; b 1.30 @@ -71,15 +73,19 @@ 1.31 push ax 1.32 push si 1.33 mov si,cx 1.34 + ifdef EXTRA 1.35 shr dl,1 1.36 jnc @@nocat 1.37 + endif 1.38 @@catlp: 1.39 lodsb 1.40 cmp al,0 1.41 jne @@catlp 1.42 dec si 1.43 + ifdef EXTRA 1.44 shr dl,1 1.45 jnc @@nocat 1.46 + endif 1.47 cmp cx,si 1.48 jz @@nocat 1.49 mov [word si],20h 1.50 @@ -96,7 +102,7 @@ 1.51 pop si 1.52 ret 1.53 1.54 - endp _strcpy 1.55 + endp _strcatb 1.56 1.57 1.58 ;*************************************************************** 1.59 @@ -159,6 +165,29 @@ 1.60 endp _puts 1.61 1.62 1.63 + ifdef EXTRA 1.64 +;*************************************************************** 1.65 +;int chdir(char *path); 1.66 +;*************************************************************** 1.67 + global _chdir:near 1.68 + proc _chdir near 1.69 + 1.70 + pop ax 1.71 + pop dx 1.72 + push dx 1.73 + push ax 1.74 +chdir: 1.75 + stc 1.76 + mov ax,713Bh 1.77 + int 21h 1.78 + jnc chkc 1.79 + mov ah,3Bh 1.80 + jmp dos 1.81 + 1.82 + endp _chdir 1.83 + endif 1.84 + 1.85 + 1.86 ;*************************************************************** 1.87 ;int fileattr(const char* name); 1.88 ;*************************************************************** 1.89 @@ -1352,30 +1381,6 @@ 1.90 1.91 1.92 ;*************************************************************** 1.93 -;int chdir(char *path); 1.94 -;*************************************************************** 1.95 - global _chdir:near 1.96 - proc _chdir near 1.97 - 1.98 - pop ax 1.99 - pop dx 1.100 - push dx 1.101 - push ax 1.102 -chdir: 1.103 - stc 1.104 - mov ax,713Bh 1.105 - int 21h 1.106 - jnc @@end 1.107 - mov ah,3Bh 1.108 - int 21h 1.109 -@@end: 1.110 - sbb ax,ax 1.111 - ret 1.112 - 1.113 - endp _chdir 1.114 - 1.115 - 1.116 -;*************************************************************** 1.117 ;int chdirname(char *path) 1.118 ;*************************************************************** 1.119 global _chdirname:near
2.1 --- a/linld/stuff/src/CRTL.H Sun Mar 05 13:22:08 2017 +0100 2.2 +++ b/linld/stuff/src/CRTL.H Tue Mar 07 12:21:16 2017 +0100 2.3 @@ -25,11 +25,7 @@ 2.4 extern char bss_start; extern char bss_end; 2.5 extern char* heap_top; 2.6 2.7 -extern int ximage_size, ximage_fd; 2.8 - 2.9 void parse_cmdline(); 2.10 -extern "C" char* strcpy(const char* a,const char* b); 2.11 -extern "C" char* strcat(const char* a,const char* b); 2.12 extern "C" char* strcatb(const char* a,const char* b); 2.13 extern "C" int strhead(const char* a,const char* b); 2.14 extern "C" int fileattr(const char* name); 2.15 @@ -46,10 +42,6 @@ 2.16 extern "C" unsigned long strtol(const char *s); 2.17 2.18 // Extensions 2.19 -//static void barrier() {} 2.20 -//static void cli() { asm { cli } } 2.21 -//static void sti() { asm { sti } } 2.22 -#define barrier() do {} while(0) 2.23 #define cli() do { asm { cli } } while(0) 2.24 #define sti() do { asm { sti } } while(0) 2.25 #define int3() do { asm { db 0cch } } while(0)
3.1 --- a/linld/stuff/src/CRTLX.H Sun Mar 05 13:22:08 2017 +0100 3.2 +++ b/linld/stuff/src/CRTLX.H Tue Mar 07 12:21:16 2017 +0100 3.3 @@ -1,6 +1,8 @@ 3.4 // This file is distributed under GPL 3.5 // 3.6 #define NULL 0 3.7 +extern "C" char* strcpy(const char* a,const char* b); 3.8 +extern "C" char* strcat(const char* a,const char* b); 3.9 extern "C" int strcmp(const char* a,const char* b); 3.10 extern "C" int strlen(const char* s); 3.11 extern "C" char* strstr(const char* a,const char* b); 3.12 @@ -12,5 +14,5 @@ 3.13 extern "C" void try_default_args(); 3.14 extern "C" long lseekset(int fd, unsigned long sz); 3.15 #define seekset(fd,sz) lseekset(fd,(unsigned long) sz) 3.16 -extern long cpu_features; 3.17 -#define cpuhaslm() (((char *)&cpu_features)[3]&(char)0x20) 3.18 +extern char cpu_features[]; 3.19 +#define cpuhaslm() (cpu_features[3]&0x20)
4.1 --- a/linld/stuff/src/ISO9660.CPP Sun Mar 05 13:22:08 2017 +0100 4.2 +++ b/linld/stuff/src/ISO9660.CPP Tue Mar 07 12:21:16 2017 +0100 4.3 @@ -5,13 +5,13 @@ 4.4 4.5 #define SECTORSZ 2048 4.6 #define SECTORBITS 11 4.7 -static char buffer[SECTORSZ]; 4.8 +static char buffer[SECTORSZ+512]; // RR overflow 4.9 struct isostate isostate; 4.10 4.11 static int readsector(const unsigned long *offset) 4.12 { 4.13 return (isolseek(offset) != -1 4.14 - && read(isostate.fd, buffer, SECTORSZ) == SECTORSZ); 4.15 + && read(isostate.fd, buffer, sizeof(buffer)) >= SECTORSZ); 4.16 } 4.17 4.18 int isoreset(char *name) 4.19 @@ -26,7 +26,7 @@ 4.20 return -1; 4.21 } 4.22 x->dirofs = (* (unsigned long *) (buffer + 0x9E)) << SECTORBITS; 4.23 - x->dirsize = * (unsigned long *) (buffer + 0xA6); 4.24 + x->dirsize = filesize2dirsize(* (unsigned long *) (buffer + 0xA6)); 4.25 return 0; 4.26 } 4.27 4.28 @@ -41,20 +41,20 @@ 4.29 struct isostate *x=&isostate; 4.30 4.31 if (restart) { 4.32 - x->curpos = SECTORSZ; 4.33 + x->curdirsize = x->dirsize; 4.34 x->curdirofs = x->dirofs; 4.35 - x->curdirsize = x->dirsize; 4.36 + goto restarted; 4.37 } 4.38 if (x->curpos >= SECTORSZ || * (short *) (buffer + x->curpos) == 0) { 4.39 - if (x->curdirsize < SECTORSZ) return -1; 4.40 + if (x->curdirsize < DIRSECTORSZ) return -1; 4.41 + restarted: 4.42 readsector(&x->curdirofs); 4.43 x->curdirofs += SECTORSZ; 4.44 - x->curdirsize -= SECTORSZ; 4.45 + x->curdirsize -= DIRSECTORSZ; 4.46 x->curpos = 0; 4.47 } 4.48 p = buffer + x->curpos; 4.49 - size = * (short *) p; 4.50 - if (size == 0) 4.51 + if ((size = * (short *) p) == 0) 4.52 return -1; 4.53 x->fileofs = (* (unsigned long *) (p + 2)) << SECTORBITS; 4.54 x->filesize = * (unsigned long *) (p + 10); 4.55 @@ -113,13 +113,12 @@ 4.56 char _64bits = cpuhaslm(); 4.57 struct isostate *x=&isostate; 4.58 4.59 -retry32: 4.60 + retry32: 4.61 for (s = (char *) filename; *s == '/' ; s++) { 4.62 isoreset(NULL); 4.63 } 4.64 next: 4.65 - name = s; 4.66 - do s++; while (*s && *s != '/'); 4.67 + for (name = s; *s && *s != '/'; s++); 4.68 c = *s; 4.69 *s = 0; 4.70 for (restart = 1; isoreaddir(restart) == 0; restart = 0) { 4.71 @@ -133,7 +132,7 @@ 4.72 *s++ = c; 4.73 if (IS_DIR(x->filemod)) { 4.74 x->dirofs = x->fileofs; 4.75 - x->dirsize = x->filesize; 4.76 + x->dirsize = filesize2dirsize(x->filesize); 4.77 if (c) goto next; 4.78 } 4.79 isolseek(&x->fileofs);
5.1 --- a/linld/stuff/src/ISO9660.H Sun Mar 05 13:22:08 2017 +0100 5.2 +++ b/linld/stuff/src/ISO9660.H Tue Mar 07 12:21:16 2017 +0100 5.3 @@ -1,5 +1,11 @@ 5.4 #ifndef __ISO9660_H 5.5 #define __ISO9660_H 5.6 +//typedef unsigned long dirsizetype; 5.7 +//#define filesize2dirsize(x) (x) 5.8 +//#define DIRSECTORSZ SECTORSZ 5.9 +typedef unsigned dirsizetype; 5.10 +#define filesize2dirsize(x) (*(unsigned *)((char *)&(x)+1)) 5.11 +#define DIRSECTORSZ (SECTORSZ/256) 5.12 extern struct isostate { 5.13 int fd; 5.14 unsigned long fileofs; 5.15 @@ -7,8 +13,8 @@ 5.16 unsigned short filemod; 5.17 char *filename; 5.18 //private 5.19 - unsigned long dirofs, dirsize; 5.20 - unsigned long curdirofs, curdirsize; 5.21 + dirsizetype curdirsize, dirsize; 5.22 + unsigned long curdirofs, dirofs; 5.23 unsigned curpos; 5.24 } isostate; 5.25 #define isofd isostate.fd
6.1 --- a/linld/stuff/src/LINLD.CPP Sun Mar 05 13:22:08 2017 +0100 6.2 +++ b/linld/stuff/src/LINLD.CPP Tue Mar 07 12:21:16 2017 +0100 6.3 @@ -35,7 +35,7 @@ 6.4 ); 6.5 } 6.6 6.7 -static char _cmdline[256]; 6.8 +static char _cmdline[128]; 6.9 int main(int argc, char *argv[]) { 6.10 6.11 (void) argc; 6.12 @@ -112,12 +112,12 @@ 6.13 topmem = strtol(s); 6.14 goto addincmdline; 6.15 } 6.16 - else if(cmdline == (const char *) _cmdline) { 6.17 + else if(cmdline == (const char *) _cmdline + 1) { 6.18 addincmdline: 6.19 strcatb(_cmdline,*argv); 6.20 } 6.21 else if(i == 1 && fileattr(s) != -1) { 6.22 - cmdline = (const char *) _cmdline; 6.23 + cmdline = (const char *) _cmdline + 1; 6.24 goto set_kernel_name; 6.25 } 6.26 else