FreeCalypso > hg > freecalypso-tools
annotate rvinterf/etmsync/fsbasics.c @ 985:d50df222c274
pln-ppb-test: set up Calypso MEMIF
| author | Mychaela Falconia <falcon@freecalypso.org> | 
|---|---|
| date | Sat, 02 Dec 2023 23:39:33 +0000 | 
| parents | 74d284add54d | 
| children | 
| rev | line source | 
|---|---|
| 
0
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
1 /* | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
2 * Basic FFS2 operations | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
3 */ | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
4 | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
5 #include <sys/types.h> | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
6 #include <stdio.h> | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
7 #include <stdlib.h> | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
8 #include <string.h> | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
9 #include <strings.h> | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
10 #include "etm.h" | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
11 #include "ffs.h" | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
12 #include "tmffs2.h" | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
13 #include "limits.h" | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
14 #include "ffslimits.h" | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
15 #include "localtypes.h" | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
16 #include "localstruct.h" | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
17 #include "exitcodes.h" | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
18 | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
19 extern u_char rvi_msg[]; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
20 extern int rvi_msg_len; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
21 | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
22 cmd_ffs2ver() | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
23 { | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
24 u_char cmdpkt[4]; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
25 int rc; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
26 | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
27 cmdpkt[1] = ETM_FFS2; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
28 cmdpkt[2] = TMFFS_VERSION; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
29 rc = etm_pkt_exch(cmdpkt, 2); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
30 if (rc) | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
31 return(rc); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
32 if (rvi_msg[3]) { | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
33 printf("FFS2 error %d\n", rvi_msg[3]); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
34 return(ERROR_TARGET); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
35 } | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
36 if (rvi_msg_len != 7) { | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
37 printf("error: FFS2 version response has wrong length\n"); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
38 return(ERROR_TARGET); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
39 } | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
40 printf("FFS2 version: %02X.%02X\n", rvi_msg[5], rvi_msg[4]); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
41 return(0); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
42 } | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
43 | 
| 
921
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
44 void | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
45 safe_print_ls_name(name) | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
46 char *name; | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
47 { | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
48 char *p; | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
49 int c; | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
50 | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
51 p = name; | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
52 while (c = *p++) { | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
53 if (c == '\\') { | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
54 putchar('\\'); | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
55 putchar('\\'); | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
56 } else if (c >= ' ' && c <= '~') | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
57 putchar(c); | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
58 else | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
59 printf("\\x%02X", c); | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
60 } | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
61 putchar('\n'); | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
62 } | 
| 
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
63 | 
| 
13
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
64 do_ls_short(lsarg) | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
65 char *lsarg; | 
| 
0
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
66 { | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
67 u_char state[4]; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
68 char namebuf[256]; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
69 int nument, i, rc; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
70 | 
| 
13
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
71 rc = do_opendir(lsarg, state, &nument); | 
| 
0
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
72 if (rc) | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
73 return(rc); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
74 if (!nument) { | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
75 printf("<empty dir>\n"); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
76 return(0); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
77 } | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
78 for (i = 0; i < nument; i++) { | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
79 rc = do_readdir(state, namebuf, sizeof namebuf); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
80 if (rc) | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
81 return(rc); | 
| 
921
 
74d284add54d
fc-fsio: guard against bogus readdir results from the target
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
13 
diff
changeset
 | 
82 safe_print_ls_name(namebuf); | 
| 
0
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
83 } | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
84 return(0); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
85 } | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
86 | 
| 
13
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
87 cmd_ls(argc, argv) | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
88 char **argv; | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
89 { | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
90 if (argc == 2) | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
91 return do_ls_short(argv[1]); | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
92 if (strcmp(argv[1], "-l")) { | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
93 fprintf(stderr, "usage: ls [-l] ffs_pathname\n"); | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
94 return(ERROR_USAGE); | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
95 } | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
96 return do_ls_long(argv[2]); | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
97 } | 
| 
 
46ad66a231af
fc-fsio: finally one can type ls -l and not just the ll abbreviation
 
Mychaela Falconia <falcon@freecalypso.org> 
parents: 
0 
diff
changeset
 | 
98 | 
| 
0
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
99 cmd_stat(argc, argv) | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
100 char **argv; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
101 { | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
102 struct stat_info stat; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
103 int rc; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
104 char *type; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
105 | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
106 rc = do_xlstat(argv[1], &stat); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
107 if (rc) | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
108 return(rc); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
109 switch (stat.type) { | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
110 case OT_FILE: | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
111 type = "file"; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
112 break; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
113 case OT_DIR: | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
114 type = "directory"; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
115 break; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
116 case OT_LINK: | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
117 type = "symlink"; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
118 break; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
119 default: | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
120 type = "???"; | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
121 } | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
122 printf("Type: %s%s\n", type, | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
123 stat.flags & OF_READONLY ? ", read-only" : ""); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
124 printf("inode %x\n", stat.inode); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
125 printf("size %u, space %u\n", stat.size, stat.space); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
126 printf("location=%x, block %d\n", stat.location, stat.block); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
127 return(0); | 
| 
 
e7502631a0f9
initial import from freecalypso-sw rev 1033:5ab737ac3ad7
 
Mychaela Falconia <falcon@freecalypso.org> 
parents:  
diff
changeset
 | 
128 } | 
