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
85d666ae
Commit
85d666ae
authored
Dec 12, 2000
by
Alexandre Julliard
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Use __ASM_GLOBAL_FUNC directly in i386-only code.
parent
a67369ea
Show whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
14 additions
and
8 deletions
+14
-8
relay386.c
relay32/relay386.c
+4
-4
snoop.c
relay32/snoop.c
+10
-4
No files found.
relay32/relay386.c
View file @
85d666ae
...
...
@@ -14,7 +14,6 @@
#include "selectors.h"
#include "stackframe.h"
#include "syslevel.h"
#include "main.h"
#include "module.h"
#include "debugtools.h"
...
...
@@ -304,9 +303,6 @@ static LONGLONG RELAY_CallFrom32( int ret_addr, ... )
* (esp-8) ptr to relay entry code for RELAY_CallFrom32Regs
* ... >128 bytes space free to be modified (ensured by the assembly glue)
*/
void
WINAPI
RELAY_DoCallFrom32Regs
(
CONTEXT86
*
context
);
DEFINE_REGS_ENTRYPOINT_0
(
RELAY_CallFrom32Regs
,
RELAY_DoCallFrom32Regs
)
void
WINAPI
RELAY_DoCallFrom32Regs
(
CONTEXT86
*
context
)
{
char
buffer
[
80
];
...
...
@@ -390,6 +386,10 @@ void WINAPI RELAY_DoCallFrom32Regs( CONTEXT86 *context )
SYSLEVEL_CheckNotLevel
(
2
);
}
void
WINAPI
RELAY_CallFrom32Regs
(
void
);
__ASM_GLOBAL_FUNC
(
RELAY_CallFrom32Regs
,
"call "
__ASM_NAME
(
"CALL32_Regs"
)
"
\n\t
"
".long "
__ASM_NAME
(
"RELAY_DoCallFrom32Regs"
)
",0"
);
/***********************************************************************
* RELAY_SetupDLL
...
...
relay32/snoop.c
View file @
85d666ae
...
...
@@ -258,8 +258,6 @@ SNOOP_PrintArg(DWORD x) {
#define CALLER1REF (*(DWORD*)context->Esp)
void
WINAPI
SNOOP_DoEntry
(
CONTEXT86
*
context
);
DEFINE_REGS_ENTRYPOINT_0
(
SNOOP_Entry
,
SNOOP_DoEntry
);
void
WINAPI
SNOOP_DoEntry
(
CONTEXT86
*
context
)
{
DWORD
ordinal
=
0
,
entry
=
context
->
Eip
-
5
;
...
...
@@ -340,8 +338,7 @@ void WINAPI SNOOP_DoEntry( CONTEXT86 *context )
DPRINTF
(
") ret=%08lx fs=%04lx
\n
"
,(
DWORD
)
ret
->
origreturn
,
context
->
SegFs
);
}
void
WINAPI
SNOOP_DoReturn
(
CONTEXT86
*
context
);
DEFINE_REGS_ENTRYPOINT_0
(
SNOOP_Return
,
SNOOP_DoReturn
);
void
WINAPI
SNOOP_DoReturn
(
CONTEXT86
*
context
)
{
SNOOP_RETURNENTRY
*
ret
=
(
SNOOP_RETURNENTRY
*
)(
context
->
Eip
-
5
);
...
...
@@ -373,6 +370,15 @@ void WINAPI SNOOP_DoReturn( CONTEXT86 *context )
context
->
Eax
,(
DWORD
)
ret
->
origreturn
,
context
->
SegFs
);
ret
->
origreturn
=
NULL
;
/* mark as empty */
}
/* assembly wrappers that save the context */
__ASM_GLOBAL_FUNC
(
SNOOP_Entry
,
"call "
__ASM_NAME
(
"CALL32_Regs"
)
"
\n\t
"
".long "
__ASM_NAME
(
"SNOOP_DoEntry"
)
",0"
);
__ASM_GLOBAL_FUNC
(
SNOOP_Return
,
"call "
__ASM_NAME
(
"CALL32_Regs"
)
"
\n\t
"
".long "
__ASM_NAME
(
"SNOOP_DoReturn"
)
",0"
);
#else
/* !__i386__ */
void
SNOOP_RegisterDLL
(
HMODULE
hmod
,
LPCSTR
name
,
DWORD
nrofordinals
)
{
FIXME
(
"snooping works only on i386 for now.
\n
"
);
...
...
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