Commit 24815819 authored by Alexandre Julliard's avatar Alexandre Julliard

Build an explicit argument structure for mmap instead of relying on

the stack layout.
parent 0a8e15ab
......@@ -753,13 +753,31 @@ static void *unaligned_mmap( void *addr, size_t length, unsigned int prot,
if (!offset_high && (offset_low & page_mask))
{
int ret;
struct
{
void *addr;
unsigned int length;
unsigned int prot;
unsigned int flags;
unsigned int fd;
unsigned int offset;
} args;
args.addr = addr;
args.length = length;
args.prot = prot;
args.flags = flags;
args.fd = fd;
args.offset = offset_low;
__asm__ __volatile__("push %%ebx\n\t"
"movl %2,%%ebx\n\t"
"int $0x80\n\t"
"popl %%ebx"
: "=a" (ret)
: "0" (90), /* SYS_mmap */
"g" (&addr) );
"g" (&args) );
if (ret < 0 && ret > -4096)
{
errno = -ret;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment