Petr Tesarik : winedos: Move some declarations to the header file.
Alexandre Julliard
julliard at wine.codeweavers.com
Tue Apr 11 05:05:40 CDT 2006
Module: wine
Branch: refs/heads/master
Commit: 7e4ad8e6a7248c2a28796760c510b18c92026eb1
URL: http://source.winehq.org/git/?p=wine.git;a=commit;h=7e4ad8e6a7248c2a28796760c510b18c92026eb1
Author: Petr Tesarik <hat at tesarici.cz>
Date: Tue Apr 11 10:33:16 2006 +0200
winedos: Move some declarations to the header file.
---
dlls/winedos/devices.c | 89 +------------------------------------------
dlls/winedos/dosexe.h | 99 ++++++++++++++++++++++++++++++++++++++++++++++++
2 files changed, 101 insertions(+), 87 deletions(-)
diff --git a/dlls/winedos/devices.c b/dlls/winedos/devices.c
index f90c1f4..41959fc 100644
--- a/dlls/winedos/devices.c
+++ b/dlls/winedos/devices.c
@@ -26,44 +26,6 @@
#include "pshpack1.h"
-typedef struct {
- BYTE ljmp1;
- RMCBPROC strategy;
- BYTE ljmp2;
- RMCBPROC interrupt;
-} WINEDEV_THUNK;
-
-typedef struct {
- BYTE size; /* length of header + data */
- BYTE unit; /* unit (block devices only) */
- BYTE command;
- WORD status;
- BYTE reserved[8];
-} REQUEST_HEADER;
-
-typedef struct {
- REQUEST_HEADER hdr;
- BYTE media; /* media descriptor from BPB */
- SEGPTR buffer;
- WORD count; /* byte/sector count */
- WORD sector; /* starting sector (block devices) */
- DWORD volume; /* volume ID (block devices) */
-} REQ_IO;
-
-typedef struct {
- REQUEST_HEADER hdr;
- BYTE data;
-} REQ_SAFEINPUT;
-
-typedef struct
-{
- DWORD next_dev;
- WORD attr;
- WORD strategy;
- WORD interrupt;
- char name[8];
-} DOS_DEVICE_HEADER;
-
/* Warning: need to return LOL ptr w/ offset 0 (&ptr_first_DPB) to programs ! */
typedef struct _DOS_LISTOFLISTS
{
@@ -111,45 +73,6 @@ enum strategy { SYSTEM_STRATEGY_NUL, SYS
static void *strategy_data[NB_SYSTEM_STRATEGIES];
-#define NONEXT ((DWORD)-1)
-
-#define ATTR_STDIN 0x0001
-#define ATTR_STDOUT 0x0002
-#define ATTR_NUL 0x0004
-#define ATTR_CLOCK 0x0008
-#define ATTR_FASTCON 0x0010
-#define ATTR_RAW 0x0020
-#define ATTR_NOTEOF 0x0040
-#define ATTR_DEVICE 0x0080
-#define ATTR_REMOVABLE 0x0800
-#define ATTR_NONIBM 0x2000 /* block devices */
-#define ATTR_UNTILBUSY 0x2000 /* char devices */
-#define ATTR_IOCTL 0x4000
-#define ATTR_CHAR 0x8000
-
-#define CMD_INIT 0
-#define CMD_MEDIACHECK 1 /* block devices */
-#define CMD_BUILDBPB 2 /* block devices */
-#define CMD_INIOCTL 3
-#define CMD_INPUT 4 /* read data */
-#define CMD_SAFEINPUT 5 /* "non-destructive input no wait", char devices */
-#define CMD_INSTATUS 6 /* char devices */
-#define CMD_INFLUSH 7 /* char devices */
-#define CMD_OUTPUT 8 /* write data */
-#define CMD_SAFEOUTPUT 9 /* write data with verify */
-#define CMD_OUTSTATUS 10 /* char devices */
-#define CMD_OUTFLUSH 11 /* char devices */
-#define CMD_OUTIOCTL 12
-#define CMD_DEVOPEN 13
-#define CMD_DEVCLOSE 14
-#define CMD_REMOVABLE 15 /* block devices */
-#define CMD_UNTILBUSY 16 /* output until busy */
-
-#define STAT_MASK 0x00FF
-#define STAT_DONE 0x0100
-#define STAT_BUSY 0x0200
-#define STAT_ERROR 0x8000
-
#define LJMP 0xea
@@ -160,14 +83,6 @@ static void WINAPI con_strategy(CONTEXT8
static void WINAPI con_interrupt(CONTEXT86*ctx);
/* devices */
-typedef struct
-{
- char name[8];
- WORD attr;
- RMCBPROC strategy;
- RMCBPROC interrupt;
-} WINEDEV;
-
static WINEDEV devs[] =
{
{ "NUL ",
@@ -541,9 +456,9 @@ void DOSDEV_InstallDOSDevices(void)
for (n = 0; n < NR_DEVS; n++)
{
dataseg->thunk[n].ljmp1 = LJMP;
- dataseg->thunk[n].strategy = (RMCBPROC)DPMI_AllocInternalRMCB(devs[n].strategy);
+ dataseg->thunk[n].strategy = DPMI_AllocInternalRMCB(devs[n].strategy);
dataseg->thunk[n].ljmp2 = LJMP;
- dataseg->thunk[n].interrupt = (RMCBPROC)DPMI_AllocInternalRMCB(devs[n].interrupt);
+ dataseg->thunk[n].interrupt = DPMI_AllocInternalRMCB(devs[n].interrupt);
}
/* CON is device 1 */
diff --git a/dlls/winedos/dosexe.h b/dlls/winedos/dosexe.h
index ffb62d8..b5940b1 100644
--- a/dlls/winedos/dosexe.h
+++ b/dlls/winedos/dosexe.h
@@ -245,6 +245,105 @@ typedef struct
#include <poppack.h>
+/* Device driver header */
+
+#define NONEXT ((DWORD)-1)
+
+#define ATTR_STDIN 0x0001
+#define ATTR_STDOUT 0x0002
+#define ATTR_NUL 0x0004
+#define ATTR_CLOCK 0x0008
+#define ATTR_FASTCON 0x0010
+#define ATTR_RAW 0x0020
+#define ATTR_NOTEOF 0x0040
+#define ATTR_DEVICE 0x0080
+#define ATTR_REMOVABLE 0x0800
+#define ATTR_NONIBM 0x2000 /* block devices */
+#define ATTR_UNTILBUSY 0x2000 /* char devices */
+#define ATTR_IOCTL 0x4000
+#define ATTR_CHAR 0x8000
+
+#include <pshpack1.h>
+
+typedef struct
+{
+ DWORD next_dev;
+ WORD attr;
+ WORD strategy;
+ WORD interrupt;
+ char name[8];
+} DOS_DEVICE_HEADER;
+
+#include <poppack.h>
+
+/* DOS Device requests */
+
+#define CMD_INIT 0
+#define CMD_MEDIACHECK 1 /* block devices */
+#define CMD_BUILDBPB 2 /* block devices */
+#define CMD_INIOCTL 3
+#define CMD_INPUT 4 /* read data */
+#define CMD_SAFEINPUT 5 /* "non-destructive input no wait", char devices */
+#define CMD_INSTATUS 6 /* char devices */
+#define CMD_INFLUSH 7 /* char devices */
+#define CMD_OUTPUT 8 /* write data */
+#define CMD_SAFEOUTPUT 9 /* write data with verify */
+#define CMD_OUTSTATUS 10 /* char devices */
+#define CMD_OUTFLUSH 11 /* char devices */
+#define CMD_OUTIOCTL 12
+#define CMD_DEVOPEN 13
+#define CMD_DEVCLOSE 14
+#define CMD_REMOVABLE 15 /* block devices */
+#define CMD_UNTILBUSY 16 /* output until busy */
+
+#define STAT_MASK 0x00FF
+#define STAT_DONE 0x0100
+#define STAT_BUSY 0x0200
+#define STAT_ERROR 0x8000
+
+#include <pshpack1.h>
+
+typedef struct {
+ BYTE size; /* length of header + data */
+ BYTE unit; /* unit (block devices only) */
+ BYTE command;
+ WORD status;
+ BYTE reserved[8];
+} REQUEST_HEADER;
+
+typedef struct {
+ REQUEST_HEADER hdr;
+ BYTE media; /* media descriptor from BPB */
+ SEGPTR buffer;
+ WORD count; /* byte/sector count */
+ WORD sector; /* starting sector (block devices) */
+ DWORD volume; /* volume ID (block devices) */
+} REQ_IO;
+
+typedef struct {
+ REQUEST_HEADER hdr;
+ BYTE data;
+} REQ_SAFEINPUT;
+
+/* WINE device driver thunk from RM */
+typedef struct {
+ BYTE ljmp1;
+ FARPROC16 strategy;
+ BYTE ljmp2;
+ FARPROC16 interrupt;
+} WINEDEV_THUNK;
+
+#include <poppack.h>
+
+/* Device driver info (used for initialization) */
+typedef struct
+{
+ char name[8];
+ WORD attr;
+ RMCBPROC strategy;
+ RMCBPROC interrupt;
+} WINEDEV;
+
/* module.c */
extern void WINAPI MZ_LoadImage( LPCSTR filename, HANDLE hFile );
extern BOOL WINAPI MZ_Exec( CONTEXT86 *context, LPCSTR filename, BYTE func, LPVOID paramblk );
More information about the wine-cvs
mailing list