diff options
Diffstat (limited to 'src/libw32dll/wine/ext.c')
-rw-r--r-- | src/libw32dll/wine/ext.c | 102 |
1 files changed, 55 insertions, 47 deletions
diff --git a/src/libw32dll/wine/ext.c b/src/libw32dll/wine/ext.c index 1847d6b34..865ff73d9 100644 --- a/src/libw32dll/wine/ext.c +++ b/src/libw32dll/wine/ext.c @@ -6,20 +6,23 @@ * ********************************************************/ #include "config.h" +#include <stdio.h> +#include <stdlib.h> +#include <unistd.h> #ifdef HAVE_MALLOC_H #include <malloc.h> -#else -#include <stdlib.h> #endif -#include <stdio.h> -#include <unistd.h> #include <sys/mman.h> #include <errno.h> #include <fcntl.h> #include <string.h> #include <stdarg.h> #include "windef.h" -//#include "winbase.h" +#include "winbase.h" +#include "debugtools.h" +#include "heap.h" +#include "ext.h" + int dbg_header_err( const char *dbg_channel, const char *func ) { return 0; @@ -36,7 +39,7 @@ int dbg_header_trace( const char *dbg_channel, const char *func ) { return 0; } -int dbg_vprintf( const char *format, ... ) +int dbg_vprintf( const char *format, va_list args ) { return 0; } @@ -52,12 +55,12 @@ int __vprintf( const char *format, ... ) return 0; } -int GetProcessHeap() +HANDLE WINAPI GetProcessHeap(void) { return 1; } -void* HeapAlloc(int heap, int flags, int size) +LPVOID WINAPI HeapAlloc(HANDLE heap, DWORD flags, DWORD size) { if(flags & 0x8) return calloc(size, 1); @@ -65,7 +68,7 @@ void* HeapAlloc(int heap, int flags, int size) return malloc(size); } -int HeapFree(int heap, int flags, void* mem) +WIN_BOOL WINAPI HeapFree(HANDLE heap, DWORD flags, LPVOID mem) { free(mem); return 1; @@ -73,34 +76,34 @@ int HeapFree(int heap, int flags, void* mem) static int last_error; -int GetLastError() +DWORD WINAPI GetLastError(void) { return last_error; } -int SetLastError(int error) +void WINAPI SetLastError(DWORD error) { - return last_error=error; + last_error=error; } -int ReadFile(int handle, void* mem, unsigned long size, long* result, long flags) +WIN_BOOL WINAPI ReadFile(HANDLE handle, LPVOID mem, DWORD size, LPDWORD result, LPOVERLAPPED flags) { *result=read(handle, mem, size); return *result; } -int lstrcmpiA(const char* c1, const char* c2) +INT WINAPI lstrcmpiA(LPCSTR c1, LPCSTR c2) { return strcasecmp(c1,c2); } -int lstrcpynA(char* dest, const char* src, int num) +char* WINAPI lstrcpynA(char* dest, const char* src, int num) { - return strncmp(dest,src,num); + return strncpy(dest,src,num); } -int lstrlenA(const char* s) +int WINAPI lstrlenA(const char* s) { return strlen(s); } -int lstrlenW(const short* s) +int WINAPI lstrlenW(LPCWSTR s) { int l; if(!s) @@ -110,8 +113,9 @@ int lstrlenW(const short* s) l++; return l; } -int lstrcpynWtoA(char* dest, const char* src, int count) +LPSTR WINAPI lstrcpynWtoA(LPSTR dest, LPCWSTR src, INT count) { + LPSTR retval = dest; int moved=0; if((dest==0) || (src==0)) return 0; @@ -120,10 +124,11 @@ int lstrcpynWtoA(char* dest, const char* src, int count) *dest=*src; moved++; if(*src==0) - return moved; + break; src++; dest++; } + return retval; } int wcsnicmp(const unsigned short* s1, const unsigned short* s2, int n) { @@ -149,7 +154,7 @@ int wcsnicmp(const unsigned short* s1, const unsigned short* s2, int n) } -int IsBadReadPtr(void* data, int size) +WIN_BOOL WINAPI IsBadReadPtr(LPCVOID data, UINT size) { if(size==0) return 0; @@ -157,14 +162,14 @@ int IsBadReadPtr(void* data, int size) return 1; return 0; } -char* HEAP_strdupA(const char* string) +LPSTR HEAP_strdupA(HANDLE heap, DWORD flags, LPCSTR string) { // return strdup(string); char* answ=malloc(strlen(string)+1); strcpy(answ, string); return answ; } -short* HEAP_strdupAtoW(void* heap, void* hz, const char* string) +LPWSTR HEAP_strdupAtoW(HANDLE heap, DWORD flags, LPCSTR string) { int size, i; short* answer; @@ -176,7 +181,7 @@ short* HEAP_strdupAtoW(void* heap, void* hz, const char* string) answer[i]=(short)string[i]; return answer; } -char* HEAP_strdupWtoA(void* heap, void* hz, const short* string) +char* HEAP_strdupWtoA(HANDLE heap, DWORD flags, LPCWSTR string) { int size, i; char* answer; @@ -305,7 +310,7 @@ typedef struct file_mapping_s { int mapping_size; char* name; - HANDLE handle; + void* handle; struct file_mapping_s* next; struct file_mapping_s* prev; }file_mapping; @@ -324,24 +329,27 @@ static file_mapping* fm=0; #define PAGE_GUARD 0x100 #define PAGE_NOCACHE 0x200 -HANDLE CreateFileMappingA(int hFile, void* lpAttr, -DWORD flProtect, DWORD dwMaxHigh, DWORD dwMaxLow, const char* name) +HANDLE WINAPI CreateFileMappingA(HANDLE hFile, LPSECURITY_ATTRIBUTES lpAttr, + DWORD flProtect, + DWORD dwMaxHigh, DWORD dwMaxLow, + LPCSTR name) { + int filedesc = (int)hFile; unsigned int len; - HANDLE answer; + void* answer; int anon=0; int mmap_access=0; - if(hFile<0) + if(filedesc<0) { anon=1; - hFile=open("/dev/zero", O_RDWR); - if(hFile<0) + filedesc=open("/dev/zero", O_RDWR); + if(filedesc<0) return 0; } if(!anon) { - len=lseek(hFile, 0, SEEK_END); - lseek(hFile, 0, SEEK_SET); + len=lseek(filedesc, 0, SEEK_END); + lseek(filedesc, 0, SEEK_SET); } else len=dwMaxLow; @@ -350,10 +358,10 @@ DWORD flProtect, DWORD dwMaxHigh, DWORD dwMaxLow, const char* name) else mmap_access |=PROT_READ|PROT_WRITE; - answer=(HANDLE)mmap(NULL, len, mmap_access, MAP_PRIVATE, hFile, 0); + answer=mmap(NULL, len, mmap_access, MAP_PRIVATE, filedesc, 0); if(anon) - close(hFile); - if(answer!=(HANDLE)-1) + close(filedesc); + if(answer!=(void*)-1) { if(fm==0) { @@ -378,12 +386,12 @@ DWORD flProtect, DWORD dwMaxHigh, DWORD dwMaxLow, const char* name) fm->mapping_size=len; if(anon) - close(hFile); - return answer; + close(filedesc); + return (HANDLE)answer; } return (HANDLE)0; } -int UnmapViewOfFile(HANDLE handle) +WIN_BOOL WINAPI UnmapViewOfFile(LPVOID handle) { file_mapping* p; int result; @@ -420,7 +428,7 @@ static virt_alloc* vm=0; #define MEM_COMMIT 0x00001000 #define MEM_RESERVE 0x00002000 -void* VirtualAlloc(void* address, DWORD size, DWORD type, DWORD protection) +void* WINAPI VirtualAlloc(void* address, DWORD size, DWORD type, DWORD protection) { void* answer; int fd=open("/dev/zero", O_RDWR); @@ -490,7 +498,7 @@ void* VirtualAlloc(void* address, DWORD size, DWORD type, DWORD protection) return answer; } } -int VirtualFree(void* address, int t1, int t2)//not sure +WIN_BOOL WINAPI VirtualFree(LPVOID address, DWORD t1, DWORD t2)//not sure { virt_alloc* str=vm; int answer; @@ -511,8 +519,8 @@ int VirtualFree(void* address, int t1, int t2)//not sure return -1; } -int WideCharToMultiByte(unsigned int codepage, long flags, const short* src, - int srclen,char* dest, int destlen, const char* defch, int* used_defch) +int WINAPI WideCharToMultiByte(UINT codepage, DWORD flags, LPCWSTR src, + INT srclen,LPSTR dest, INT destlen, LPCSTR defch, WIN_BOOL* used_defch) { int i; if(src==0) @@ -542,12 +550,12 @@ int WideCharToMultiByte(unsigned int codepage, long flags, const short* src, } return min(srclen, destlen); } -int MultiByteToWideChar(unsigned int codepage,long flags, const char* src, int srclen, - short* dest, int destlen) +INT WINAPI MultiByteToWideChar(UINT codepage,DWORD flags, LPCSTR src, INT srclen, + LPWSTR dest, INT destlen) { return 0; } -HANDLE OpenFileMappingA(long access, long prot, char* name) +HANDLE WINAPI OpenFileMappingA(DWORD access, WIN_BOOL prot, LPCSTR name) { file_mapping* p; if(fm==0) @@ -559,7 +567,7 @@ HANDLE OpenFileMappingA(long access, long prot, char* name) if(p->name==0) continue; if(strcmp(p->name, name)==0) - return p->handle; + return (HANDLE)p->handle; } return 0; } |