xref: /plan9-contrib/sys/src/cmd/ld/Nt.c (revision 40d015479ed36701ae6dcfd8814f849fc6285e8d)
1*40d01547SDavid du Colombier #include <windows.h>
2*40d01547SDavid du Colombier #include <lib9.h>
3*40d01547SDavid du Colombier 
4*40d01547SDavid du Colombier /*
5*40d01547SDavid du Colombier  *	We can't include l.h, because Windoze wants to use some names
6*40d01547SDavid du Colombier  *	like FLOAT and ABC which we declare.  Define what we need here.
7*40d01547SDavid du Colombier  */
8*40d01547SDavid du Colombier typedef	unsigned char	uchar;
9*40d01547SDavid du Colombier typedef	unsigned int	uint;
10*40d01547SDavid du Colombier typedef	unsigned long	ulong;
11*40d01547SDavid du Colombier 
12*40d01547SDavid du Colombier #define	Chunk	(1*1024*1024)
13*40d01547SDavid du Colombier 
14*40d01547SDavid du Colombier void*
mysbrk(ulong size)15*40d01547SDavid du Colombier mysbrk(ulong size)
16*40d01547SDavid du Colombier {
17*40d01547SDavid du Colombier 	void *v;
18*40d01547SDavid du Colombier 	static int chunk;
19*40d01547SDavid du Colombier 	static uchar *brk;
20*40d01547SDavid du Colombier 
21*40d01547SDavid du Colombier 	if(chunk < size) {
22*40d01547SDavid du Colombier 		chunk = Chunk;
23*40d01547SDavid du Colombier 		if(chunk < size)
24*40d01547SDavid du Colombier 			chunk = Chunk + size;
25*40d01547SDavid du Colombier 		brk = VirtualAlloc(NULL, chunk, MEM_COMMIT, PAGE_EXECUTE_READWRITE);
26*40d01547SDavid du Colombier 		if(brk == 0)
27*40d01547SDavid du Colombier 			return (void*)-1;
28*40d01547SDavid du Colombier 	}
29*40d01547SDavid du Colombier 	v = brk;
30*40d01547SDavid du Colombier 	chunk -= size;
31*40d01547SDavid du Colombier 	brk += size;
32*40d01547SDavid du Colombier 	return v;
33*40d01547SDavid du Colombier }
34*40d01547SDavid du Colombier 
35*40d01547SDavid du Colombier double
cputime(void)36*40d01547SDavid du Colombier cputime(void)
37*40d01547SDavid du Colombier {
38*40d01547SDavid du Colombier 	return 0.0;
39*40d01547SDavid du Colombier }
40*40d01547SDavid du Colombier 
41*40d01547SDavid du Colombier int
fileexists(char * name)42*40d01547SDavid du Colombier fileexists(char *name)
43*40d01547SDavid du Colombier {
44*40d01547SDavid du Colombier 	int fd;
45*40d01547SDavid du Colombier 
46*40d01547SDavid du Colombier 	fd = open(name, OREAD);
47*40d01547SDavid du Colombier 	if(fd < 0)
48*40d01547SDavid du Colombier 		return 0;
49*40d01547SDavid du Colombier 	close(fd);
50*40d01547SDavid du Colombier 	return 1;
51*40d01547SDavid du Colombier }
52