14 int chname(y
) char * y
;
26 seg
= running
->uss
; off
= running
->usp
;
27 x
= get_word(seg
, off
+ 2*13);
28 y
= get_word(seg
, off
+ 2*14);
29 z
= get_word(seg
, off
+ 2*15);
30 w
= get_word(seg
, off
+ 2*16);
31 ww
= get_word(seg
, off
+ 2*17);
34 case 0 : r
= running
->pid
; break;
35 case 1 : r
= do_ps(); break;
36 case 2 : r
= chname(y
); break;
37 case 3 : r
= kmode(); break;
38 case 4 : r
= tswitch(); break;
39 case 5 : r
= do_wait(y
); break;
40 case 6 : do_exit(y
); break;
42 case 7 : r
= ufork(); break;
43 case 8 : r
= exec(y
); break;
46 case 10: r
= kputc(y
); break;
47 case 11: r
= kgetc(); break;
49 case 21: r
= kmkdir(y
,z
); break;
50 case 22: r
= krmdir(y
,z
); break;
51 case 23: r
= kcreat(y
,z
); break;
52 case 24: r
= krm(y
,z
); break;
54 case 25: r
= kchdir(y
,z
); break;
55 case 26: r
= kgetcwd(y
,z
); break;
56 case 27: r
= kstat(y
,z
); break;
58 case 28: r
= kopen(y
,z
); break;
59 case 29: r
= kclose(y
,z
); break;
61 case 30: r
= kread(y
,z
,w
); break;
62 case 31: r
= kwrite(y
,z
,w
); break;
64 case 32: position
= w
;
65 position
= position
<< 16;
67 r
= mylseek(y
,position
,ww
); break;
69 case 33: r
= kchmod(y
,z
); break;
70 case 34: r
= kchown(y
,z
); break;
72 case 35: r
= kdup(y
,z
); break;
73 case 36: r
= kdup2(y
,z
); break;
75 case 99: do_exit(y
); break;
77 default: printf("invalid syscall # : %d\n", x
);
80 put_word(r
, seg
, off
+ 2*8);