Move the sources to trunk
[opencv] / apps / Hawk / CVEiCL / EiC / src / ppc403 / ppclib.c
1 #include "stdlib.h"\r
2 #include "ctype.h"\r
3 #include "limits.h"\r
4 \r
5 #include "string.h"\r
6 #include "math.h"\r
7 #include "float.h"\r
8 #include "unistd.h"\r
9 #include "fcntl.h"\r
10 \r
11 \r
12 #include "eic.h"\r
13 \r
14 \r
15 #include "xalloc.h"\r
16 #include "assert.h"\r
17 #include "signal.h"\r
18 \r
19 #include "sys/types.h"\r
20 #include "unistd.h"\r
21 \r
22 #define getptrarg(x,y)  y = arg(x,getargs(),ptr_t)\r
23 \r
24 #define _READ    0x1    /* file open for reading */\r
25 #define _WRITE   0x2    /* file open for writing */\r
26 #define _UNBUF   0x4    /* file is unbuffered */\r
27 #define _LNBUF   0x8    /* file is line buffered  */\r
28 #define _FLBUF   0x10   /* file is fully buffered */\r
29 #define _UPDATE  0x20   /* file opened for updating */\r
30 #define _EOF     0x40   /* end of file has occured */\r
31 #define _ERR     0x80   /* error has occured */\r
32 \r
33 #define _RDP    0x100  /* read has occured since last file-positioning */\r
34 #define _WRP    0x200  /* write has occured since last file-positioning */\r
35 #define _EXTBUF 0x400  /* external buffer assigned to file */\r
36 \r
37 #define _UNFIL  0x800  /* file buffer not freed on close */\r
38 #define EOF     (-1)    /* end of file indicator */\r
39 \r
40 \r
41 char *ppcgets(char *str);\r
42 void puts(char *str);\r
43 void outbyte(int ch);\r
44 int inbyte(void);\r
45 int getchq(void);\r
46 void byteout(unsigned char val, unsigned long addr);\r
47 int bytein(unsigned long addr);\r
48 \r
49 \r
50 extern char *startstr;\r
51 extern int _stsptr,persist;\r
52 \r
53 val_t eic_gets(void)\r
54 {\r
55     val_t v;\r
56     getptrarg(0,v.p);\r
57     v.p.p = ppcgets(v.p.p);\r
58     return v;\r
59 }     \r
60 \r
61 val_t eic_puts(void)\r
62 {\r
63     val_t v;\r
64     arg_list ap = getargs();\r
65     puts(arg(0,ap,ptr_t).p);\r
66     return(v); \r
67 }\r
68 \r
69 val_t eic_putch(void)\r
70 {\r
71     val_t v;\r
72     arg_list ap = getargs();\r
73     outbyte(arg(0,ap,int));\r
74     v.ival=0;\r
75     return v;\r
76 }\r
77 val_t eic_getch(void)\r
78 {\r
79     val_t v;\r
80     v.ival = inbyte();\r
81     return v;\r
82 }\r
83 \r
84 val_t eic_getchq(void)\r
85 {\r
86     val_t v;\r
87     v.ival = getchq();\r
88     return v;\r
89 }\r
90 \r
91 val_t eic_out(void)\r
92 {\r
93     val_t v;\r
94     arg_list ap = getargs();\r
95     byteout(arg(0,ap,int),arg(1,ap,int));\r
96     return v;\r
97 }\r
98 \r
99 val_t eic_in(void)\r
100 {\r
101     val_t v;\r
102     v.ival = bytein(nextarg(getargs(),int));\r
103     return v;\r
104 }\r
105 \r
106 val_t eic_load(void)\r
107 {\r
108     val_t v;\r
109     getptrarg(0,v.p);\r
110     _stsptr=0;\r
111     persist=0;\r
112     startstr=v.p.p;\r
113     return v;\r
114 }\r
115 \r
116 \r
117 int charin_(char **buf)\r
118 {\r
119     int ch;\r
120     ch = **buf;\r
121     *buf += 1;\r
122     if(!ch)\r
123         ch = EOF;\r
124     return ch;\r
125 }\r
126 \r
127 int charback_(int ch, char **buf)\r
128 {\r
129     *buf -= 1;\r
130     return ch;\r
131 }\r
132 \r
133 int charout_(int c, char **buf)\r
134 {\r
135     char *s;\r
136     s = *buf;\r
137     *s++ = c;\r
138     *s = 0;\r
139     *buf = s;\r
140     return 1;\r
141 }\r
142 \r