ntdll: Add more checks for DragonFly BSD
André Hentschel
nerv at dawncrow.de
Mon May 28 12:20:37 CDT 2012
directory.c needs more work, but i send the easier things first. maybe directory related problems needs to be fixed on the OS site, not sure yet.
---
dlls/ntdll/directory.c | 11 +++++++++--
dlls/ntdll/file.c | 4 ++--
dlls/ntdll/nt.c | 2 +-
dlls/ntdll/server.c | 2 ++
dlls/ntdll/signal_i386.c | 2 +-
5 files changed, 15 insertions(+), 6 deletions(-)
diff --git a/dlls/ntdll/directory.c b/dlls/ntdll/directory.c
index 65c8b8f..1b60fbe 100644
--- a/dlls/ntdll/directory.c
+++ b/dlls/ntdll/directory.c
@@ -320,6 +320,13 @@ static char *get_default_com_device( int num )
strcpy( ret, "/dev/cuad0" );
ret[strlen(ret) - 1] = '0' + num - 1;
}
+#elif defined(__DragonFly__)
+ ret = RtlAllocateHeap( GetProcessHeap(), 0, sizeof("/dev/cuaa0") );
+ if (ret)
+ {
+ strcpy( ret, "/dev/cuaa0" );
+ ret[strlen(ret) - 1] = '0' + num - 1;
+ }
#else
FIXME( "no known default for device com%d\n", num );
#endif
@@ -486,7 +493,7 @@ static char *parse_mount_entries( FILE *f, dev_t dev, ino_t ino )
}
#endif
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__DragonFly__)
#include <fstab.h>
static char *parse_mount_entries( FILE *f, dev_t dev, ino_t ino )
{
@@ -587,7 +594,7 @@ static char *get_default_drive_device( const char *root )
}
RtlLeaveCriticalSection( &dir_section );
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__ )
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__ ) || defined(__DragonFly__)
char *device = NULL;
int fd, res = -1;
struct stat st;
diff --git a/dlls/ntdll/file.c b/dlls/ntdll/file.c
index 8e48602..e54b42a 100644
--- a/dlls/ntdll/file.c
+++ b/dlls/ntdll/file.c
@@ -2267,7 +2267,7 @@ NTSTATUS WINAPI NtQueryAttributesFile( const OBJECT_ATTRIBUTES *attr, FILE_BASIC
}
-#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__APPLE__)
+#if defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
/* helper for FILE_GetDeviceInfo to hide some platform differences in fstatfs */
static inline void get_device_info_fstatfs( FILE_FS_DEVICE_INFORMATION *info, const char *fstypename,
unsigned int flags )
@@ -2388,7 +2388,7 @@ static NTSTATUS get_device_info( int fd, FILE_FS_DEVICE_INFORMATION *info )
info->DeviceType = FILE_DEVICE_DISK_FILE_SYSTEM;
break;
}
-#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__APPLE__)
+#elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__) || defined(__OpenBSD__) || defined(__DragonFly__) || defined(__APPLE__)
struct statfs stfs;
if (fstatfs( fd, &stfs ) < 0)
diff --git a/dlls/ntdll/nt.c b/dlls/ntdll/nt.c
index 3ed8038..b90672b 100644
--- a/dlls/ntdll/nt.c
+++ b/dlls/ntdll/nt.c
@@ -1159,7 +1159,7 @@ void fill_cpu_info(void)
fclose(f);
}
}
-#elif defined(__FreeBSD__) || defined (__FreeBSD_kernel__)
+#elif defined(__FreeBSD__) || defined (__FreeBSD_kernel__) || defined(__DragonFly__)
{
int ret, num;
size_t len;
diff --git a/dlls/ntdll/server.c b/dlls/ntdll/server.c
index 8a01d22..392668d 100644
--- a/dlls/ntdll/server.c
+++ b/dlls/ntdll/server.c
@@ -955,6 +955,8 @@ static int get_unix_tid(void)
long lwpid;
thr_self( &lwpid );
ret = lwpid;
+#elif defined(__DragonFly__)
+ ret = lwp_gettid();
#endif
return ret;
}
diff --git a/dlls/ntdll/signal_i386.c b/dlls/ntdll/signal_i386.c
index 3b07e77..4a83a70 100644
--- a/dlls/ntdll/signal_i386.c
+++ b/dlls/ntdll/signal_i386.c
@@ -420,7 +420,7 @@ extern void DECLSPEC_NORETURN __wine_restore_regs( const CONTEXT *context );
enum i386_trap_code
{
TRAP_x86_UNKNOWN = -1, /* Unknown fault (TRAP_sig not defined) */
-#if defined(__FreeBSD__) || defined (__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__)
+#if defined(__FreeBSD__) || defined (__FreeBSD_kernel__) || defined(__NetBSD__) || defined(__OpenBSD__) || defined(__DragonFly__)
TRAP_x86_DIVIDE = T_DIVIDE, /* Division by zero exception */
TRAP_x86_TRCTRAP = T_TRCTRAP, /* Single-step exception */
TRAP_x86_NMI = T_NMI, /* NMI interrupt */
--
Best Regards, André Hentschel
More information about the wine-patches
mailing list