1/*
2 * wincecompat.c : wince compatiblity module
3 *
4 * See Copyright for the status of this software.
5 *
6 * javier@tiresiassoft.com
7 *
8 * 17 Sep 2002  created
9 */
10
11#include "wincecompat.h"
12
13char *strError[]= {"Error 0","","No such file or directory","","","","","Arg list too long",
14	"Exec format error","Bad file number","","","Not enough core","Permission denied","","",
15	"","File exists","Cross-device link","","","","Invalid argument","","Too many open files",
16	"","","","No space left on device","","","","","Math argument","Result too large","",
17	"Resource deadlock would occur", "Unknown error under wince"};
18
19
20int errno=0;
21
22int read(int handle, char *buffer, unsigned int len)
23{
24	return(fread(&buffer[0], len, 1, (FILE *) handle));
25}
26
27int write(int handle, const char *buffer, unsigned int len)
28{
29	return(fwrite(&buffer[0], len,1,(FILE *) handle));
30}
31
32int open(const char *filename,int oflag, ...)
33{
34	char mode[3]; /* mode[0] ="w/r/a"  mode[1]="+" */
35	mode[2]=0;
36	if ( oflag==(O_WRONLY|O_CREAT) )
37		mode[0]="w";
38	else if (oflag==O_RDONLY)
39		mode[0]="r";
40	return fopen(filename, mode);
41
42}
43
44int close(int handle)
45{
46	return ( fclose((FILE *) handle) );
47}
48
49
50char *getcwd( char *buffer, unsigned int size)
51{
52    /* Windows CE don't have the concept of a current directory
53     * so we just return NULL to indicate an error
54     */
55    return NULL;
56}
57
58char *getenv( const char *varname )
59{
60	return NULL;
61}
62
63char *strerror(int errnum)
64{
65	if (errnum>MAX_STRERROR)
66		return strError[MAX_STRERROR];
67	else
68		return strError[errnum];
69}
70