Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-cw
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Registry
Registry
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
wine
wine-cw
Commits
7e4ad8e6
Commit
7e4ad8e6
authored
Apr 11, 2006
by
Petr Tesarik
Committed by
Alexandre Julliard
Apr 11, 2006
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
winedos: Move some declarations to the header file.
parent
33a232a4
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
101 additions
and
87 deletions
+101
-87
devices.c
dlls/winedos/devices.c
+2
-87
dosexe.h
dlls/winedos/dosexe.h
+99
-0
No files found.
dlls/winedos/devices.c
View file @
7e4ad8e6
...
...
@@ -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, SYSTEM_STRATEGY_CON, NB_SYSTEM_STRATEGIES }
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(CONTEXT86*ctx);
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 */
...
...
dlls/winedos/dosexe.h
View file @
7e4ad8e6
...
...
@@ -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
);
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment