Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
W
wine-winehq
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-winehq
Commits
76e5c012
Commit
76e5c012
authored
Feb 01, 2010
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
kernel: Only start the BIOS timer if there is an actual access to selector 0x40.
parent
6c136e86
Hide whitespace changes
Inline
Side-by-side
Showing
3 changed files
with
15 additions
and
1 deletion
+15
-1
dosexe.h
dlls/krnl386.exe16/dosexe.h
+1
-0
dosmem.c
dlls/krnl386.exe16/dosmem.c
+13
-1
instr.c
dlls/krnl386.exe16/instr.c
+1
-0
No files found.
dlls/krnl386.exe16/dosexe.h
View file @
76e5c012
...
@@ -393,6 +393,7 @@ extern DOSCONF *DOSCONF_GetConfig( void );
...
@@ -393,6 +393,7 @@ extern DOSCONF *DOSCONF_GetConfig( void );
/* dosmem.c */
/* dosmem.c */
extern
BIOSDATA
*
DOSVM_BiosData
(
void
);
extern
BIOSDATA
*
DOSVM_BiosData
(
void
);
extern
void
DOSVM_start_bios_timer
(
void
);
/* fpu.c */
/* fpu.c */
extern
void
WINAPI
DOSVM_Int34Handler
(
CONTEXT86
*
);
extern
void
WINAPI
DOSVM_Int34Handler
(
CONTEXT86
*
);
...
...
dlls/krnl386.exe16/dosmem.c
View file @
76e5c012
...
@@ -264,6 +264,19 @@ static DWORD CALLBACK timer_thread( void *arg )
...
@@ -264,6 +264,19 @@ static DWORD CALLBACK timer_thread( void *arg )
}
}
/***********************************************************************
/***********************************************************************
* DOSVM_start_bios_timer
*
* Start the BIOS ticks timer when the app accesses selector 0x40.
*/
void
DOSVM_start_bios_timer
(
void
)
{
static
LONG
running
;
if
(
!
InterlockedExchange
(
&
running
,
1
))
CloseHandle
(
CreateThread
(
NULL
,
0
,
timer_thread
,
DOSVM_BiosData
(),
0
,
NULL
));
}
/***********************************************************************
* DOSMEM_Collapse
* DOSMEM_Collapse
*
*
* Helper function for internal use only.
* Helper function for internal use only.
...
@@ -335,7 +348,6 @@ BOOL DOSMEM_InitDosMemory(void)
...
@@ -335,7 +348,6 @@ BOOL DOSMEM_InitDosMemory(void)
DOSMEM_Available
());
DOSMEM_Available
());
DOSVM_InitSegments
();
DOSVM_InitSegments
();
CloseHandle
(
CreateThread
(
NULL
,
0
,
timer_thread
,
DOSVM_BiosData
(),
0
,
NULL
));
SetEvent
(
hRunOnce
);
SetEvent
(
hRunOnce
);
done
=
1
;
done
=
1
;
...
...
dlls/krnl386.exe16/instr.c
View file @
76e5c012
...
@@ -104,6 +104,7 @@ static BOOL INSTR_ReplaceSelector( CONTEXT86 *context, WORD *sel )
...
@@ -104,6 +104,7 @@ static BOOL INSTR_ReplaceSelector( CONTEXT86 *context, WORD *sel )
{
{
if
(
*
sel
==
0x40
)
if
(
*
sel
==
0x40
)
{
{
DOSVM_start_bios_timer
();
*
sel
=
DOSMEM_BiosDataSeg
;
*
sel
=
DOSMEM_BiosDataSeg
;
return
TRUE
;
return
TRUE
;
}
}
...
...
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