Move the sources to trunk
[opencv] / apps / Hawk / CVEiCL / EiC / module / stdClib / src / unistd.c
1 /* unistd.c
2  *
3  *      (C) Copyright Dec 20 1998, Edmond J. Breen.
4  *                 ALL RIGHTS RESERVED.
5  * This code may be copied for personal, non-profit use only.
6  *
7  */
8
9 /* This file is broken into 2 parts
10  * the first part defines the interface routines
11  * and the 2nd part adds the interface routine
12  * to EiC's look up tables.
13  */
14
15
16 #ifndef NO_UNISTD
17
18 #include <unistd.h>
19 #include <stdlib.h>
20
21 #include "eic.h"
22 #include "stdliblocal.h"
23
24
25 /* UNISTD.H STUFF */
26
27 val_t eic_access()
28 {
29     val_t v;
30     v.ival = access(arg(0,getargs(),ptr_t).p,
31                      arg(1,getargs(),int ));
32     return v;
33 }
34
35
36 val_t eic_sleep(void)
37 {
38     val_t v;
39     v.uival = sleep(arg(0,getargs(),unsigned ));
40     return v;
41 }
42
43 val_t eic_pipe(void)
44 {
45      val_t v;
46      v.ival = pipe(arg(0,getargs(),ptr_t).p);
47      return v;
48 }
49 val_t eic_getpid(void)
50 {
51     val_t v;
52     v.ival = getpid();
53     return v;
54 }
55 val_t eic_dup(void)
56 {
57     val_t v;
58     v.ival = dup(arg(0,getargs(),int ));
59     return v;
60 }
61 val_t eic_dup2(void)
62 {
63     val_t v;
64     v.ival = dup2(arg(0,getargs(),int),
65                    arg(1,getargs(),int));
66     return v;
67     
68 }
69
70 val_t eic_fork(void)
71 {
72     val_t v;
73     v.pid = fork();
74     return v;
75 }
76
77 val_t eic_unlink(void)
78 {
79     val_t v;
80     v.ival = unlink(arg(0,getargs(),ptr_t).p);
81     return v;
82 }
83
84 val_t eic_link(void)
85 {
86     val_t v;
87     v.ival = link(arg(0,getargs(),ptr_t).p,
88                   arg(1,getargs(),ptr_t).p);
89     return v;
90 }
91
92
93 val_t eic_close(void)
94 {
95     val_t v;
96     arg_list ap = getargs();
97     v.ival = close(arg(0,ap,int));
98     return v;
99 }
100
101 val_t eic_read(void)
102 {
103     val_t v;
104     arg_list ap = getargs();
105     v.sszval = read(arg(0,ap,int),
106                     arg(1,ap,ptr_t).p,
107                     arg(2,ap,unsigned));
108     return v;
109 }
110 val_t eic_write(void)
111 {
112     val_t v;
113     arg_list ap = getargs();
114     v.sszval = write(arg(0,ap,int),
115                      arg(1,ap,ptr_t).p,
116                      arg(2,ap,unsigned));
117     return v;
118 }
119
120 val_t eic_lseek(void)
121 {
122     val_t v;
123     arg_list ap  = getargs();
124     v.offval = lseek(arg(0,ap,int),
125                    arg(1,ap,long),
126                    arg(2,ap,int));
127     return v;
128 }
129
130 val_t eic_pause(void)
131 {
132     val_t v;
133     v.ival = pause();
134     return v;
135 }
136
137 val_t eic_rmdir(void)
138 {
139     val_t v;
140     v.ival = rmdir(arg(0,getargs(),ptr_t).p);
141     return v;
142 }
143
144 val_t eic_chdir(void)
145 {
146     val_t v;
147     v.ival = chdir(arg(0,getargs(),ptr_t).p);
148     return v;
149 }
150
151 val_t eic_alarm(void)
152 {
153     val_t v;
154     v.uival = alarm(arg(0,getargs(),unsigned int));
155     return v;
156 }
157
158 static val_t eic_tcsetpgrp(void)
159 {
160         val_t v;
161
162         v.ival = tcsetpgrp(arg(0,getargs(),int),
163                 arg(1,getargs(),int));
164
165         return v;
166 }
167
168 static val_t eic_tcgetpgrp(void)
169 {
170         val_t v;
171
172         v.ival = tcgetpgrp(arg(0,getargs(),int));
173
174         return v;
175 }
176
177 static val_t eic_getcwd(void)
178 {
179     val_t v;
180     v.p = arg(0,getargs(),ptr_t);
181     
182     v.p.p = getcwd(v.p.p, arg(1,getargs(),size_t));
183
184     return v;
185 }
186                    
187
188
189 #endif
190
191
192 /***********************************************************************/
193
194 void module_unistd(void)
195 {
196
197 #ifndef NO_UNISTD
198    
199     /* UNISTD.H STUFF */
200     EiC_add_builtinfunc("alarm", eic_alarm);
201     EiC_add_builtinfunc("access", eic_access);
202     EiC_add_builtinfunc("close", eic_close);
203     EiC_add_builtinfunc("dup",eic_dup);
204     EiC_add_builtinfunc("dup2",eic_dup2);
205     EiC_add_builtinfunc("fork",eic_fork);
206     EiC_add_builtinfunc("getpid",eic_getpid);
207     EiC_add_builtinfunc("link", eic_link);
208     EiC_add_builtinfunc("remove", eic_unlink);
209     EiC_add_builtinfunc("lseek", eic_lseek);
210     EiC_add_builtinfunc("pipe",eic_pipe);
211     EiC_add_builtinfunc("read", eic_read);
212     EiC_add_builtinfunc("rmdir",eic_rmdir);
213     EiC_add_builtinfunc("chdir",eic_chdir);
214     EiC_add_builtinfunc("sleep",eic_sleep);
215     EiC_add_builtinfunc("unlink", eic_unlink);
216     EiC_add_builtinfunc("write", eic_write);
217     EiC_add_builtinfunc("pause", eic_pause);
218     
219     EiC_add_builtinfunc("tcsetpgrp",eic_tcsetpgrp);
220     EiC_add_builtinfunc("tcgetpgrp",eic_tcgetpgrp);
221
222     EiC_add_builtinfunc("getcwd",eic_getcwd);
223
224 #endif
225
226 }
227
228
229
230