diff --git a/platform/win32/cfs/cfs-win32.c b/platform/win32/cfs/cfs-win32.c
index d2b7740a6..1f9ff942c 100644
--- a/platform/win32/cfs/cfs-win32.c
+++ b/platform/win32/cfs/cfs-win32.c
@@ -30,7 +30,7 @@
*
* Author: Oliver Schmidt
*
- * $Id: cfs-win32.c,v 1.2 2007/05/19 21:38:22 oliverschmidt Exp $
+ * $Id: cfs-win32.c,v 1.3 2007/11/18 02:36:30 oliverschmidt Exp $
*/
#define WIN32_LEAN_AND_MEAN
@@ -39,15 +39,24 @@
#include
#include
#include
+#ifdef __CYGWIN__
+#include
+#else
+#define open _open
+#define close _close
+#define read _read
+#define write _write
+#define lseek _lseek
+#endif
#include "contiki.h"
#include "cfs/cfs.h"
struct cfs_win32_dir {
- HANDLE handle;
- unsigned char* name;
- unsigned int size;
+ HANDLE handle;
+ char* name;
+ unsigned int size;
};
/*---------------------------------------------------------------------------*/
@@ -55,34 +64,34 @@ int
cfs_open(const char *n, int f)
{
if(f == CFS_READ) {
- return _open(n, O_RDONLY);
+ return open(n, O_RDONLY);
} else {
- return _open(n, O_CREAT|O_TRUNC|O_RDWR);
+ return open(n, O_CREAT|O_TRUNC|O_RDWR);
}
}
/*---------------------------------------------------------------------------*/
void
cfs_close(int f)
{
- _close(f);
+ close(f);
}
/*---------------------------------------------------------------------------*/
int
-cfs_read(int f, char *b, unsigned int l)
+cfs_read(int f, void *b, unsigned int l)
{
- return _read(f, b, l);
+ return read(f, b, l);
}
/*---------------------------------------------------------------------------*/
int
-cfs_write(int f, char *b, unsigned int l)
+cfs_write(int f, void *b, unsigned int l)
{
- return _write(f, b, l);
+ return write(f, b, l);
}
/*---------------------------------------------------------------------------*/
int
cfs_seek(int f, unsigned int o)
{
- return _lseek(f, o, SEEK_SET);
+ return lseek(f, o, SEEK_SET);
}
/*---------------------------------------------------------------------------*/
int
@@ -108,7 +117,7 @@ cfs_opendir(struct cfs_dir *p, const char *n)
return 1;
}
- dir->name = _strdup(data.cFileName);
+ dir->name = strdup(data.cFileName);
dir->size = ((data.nFileSizeLow + 511) / 512) % 1000;
return 0;
@@ -133,7 +142,7 @@ cfs_readdir(struct cfs_dir *p, struct cfs_dirent *e)
return 0;
}
- dir->name = _strdup(data.cFileName);
+ dir->name = strdup(data.cFileName);
dir->size = ((data.nFileSizeLow + 511) / 512) % 1000;
return 0;
diff --git a/platform/win32/loader/dll-loader.c b/platform/win32/loader/dll-loader.c
index 611a2e40d..ea08a83fd 100644
--- a/platform/win32/loader/dll-loader.c
+++ b/platform/win32/loader/dll-loader.c
@@ -30,7 +30,7 @@
*
* Author: Oliver Schmidt
*
- * $Id: dll-loader.c,v 1.1 2006/08/13 16:49:43 oliverschmidt Exp $
+ * $Id: dll-loader.c,v 1.2 2007/11/18 02:36:07 oliverschmidt Exp $
*/
#define WIN32_LEAN_AND_MEAN
@@ -44,7 +44,7 @@ int
dll_loader_load(char *name, char *arg)
{
HMODULE handle;
- struct process **p;
+ FARPROC p;
/* Load and link the program. */
handle = LoadLibrary(name);
@@ -55,15 +55,15 @@ dll_loader_load(char *name, char *arg)
}
/* Find the main process of the loaded program. */
- p = (struct process **)GetProcAddress(handle, "process_load");
+ p = GetProcAddress(handle, "process_load");
if(p == NULL) {
debug_printf("dll_loader_load: could not find process startpoint 'process_load'\n");
return LOADER_ERR_READ;
}
/* Start the process. */
- debug_printf("Starting '%s'\n", (*p)->name);
- process_start(*p, arg);
+ debug_printf("Starting '%s'\n", (**(struct process***)&p)->name);
+ process_start(**(struct process***)&p, arg);
return LOADER_OK;
}
@@ -79,8 +79,8 @@ struct dsc *
dll_loader_load_dsc(char *name)
{
HMODULE handle;
+ FARPROC d;
char symbol[24];
- struct dsc *d;
handle = LoadLibrary(name);
@@ -92,13 +92,13 @@ dll_loader_load_dsc(char *name)
strcpy(symbol, name);
*strchr(symbol, '.') = '_';
- d = (struct dsc *)GetProcAddress(handle, symbol);
+ d = GetProcAddress(handle, symbol);
if(d == NULL) {
debug_printf("dll_loader_load_dsc: could not find symbol '%s'\n", symbol);
return NULL;
}
- return d;
+ return *(struct dsc **)&d;
}
/*---------------------------------------------------------------------------*/
void __stdcall