From owner-freebsd-emulation Tue Apr 23 7:15:49 2002 Delivered-To: freebsd-emulation@freebsd.org Received: from duke.cs.duke.edu (duke.cs.duke.edu [152.3.140.1]) by hub.freebsd.org (Postfix) with ESMTP id D5D5C37B417; Tue, 23 Apr 2002 07:15:35 -0700 (PDT) Received: from grasshopper.cs.duke.edu (grasshopper.cs.duke.edu [152.3.145.30]) by duke.cs.duke.edu (8.9.3/8.9.3) with ESMTP id KAA13116; Tue, 23 Apr 2002 10:15:29 -0400 (EDT) Received: (from gallatin@localhost) by grasshopper.cs.duke.edu (8.11.6/8.9.1) id g3NEExq11998; Tue, 23 Apr 2002 10:14:59 -0400 (EDT) (envelope-from gallatin@cs.duke.edu) From: Andrew Gallatin MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Message-ID: <15557.27747.802212.659760@grasshopper.cs.duke.edu> Date: Tue, 23 Apr 2002 10:14:59 -0400 (EDT) To: Kenneth Culver Cc: freebsd-hackers@freebsd.org, freebsd-emulation@freebsd.org Subject: Re: implementing linux mmap2 syscall In-Reply-To: <200204222313.29181.culverk@yumyumyum.org> References: <200204211525.08827.culverk@yumyumyum.org> <15556.6399.62081.426193@grasshopper.cs.duke.edu> <200204222313.29181.culverk@yumyumyum.org> X-Mailer: VM 6.75 under 21.1 (patch 12) "Channel Islands" XEmacs Lucid Sender: owner-freebsd-emulation@FreeBSD.ORG Precedence: bulk List-ID: List-Archive: (Web Archive) List-Help: (List Instructions) List-Subscribe: List-Unsubscribe: X-Loop: FreeBSD.org Kenneth Culver writes: > OK, I found another problem, here it is: > > static void > linux_prepsyscall(struct trapframe *tf, int *args, u_int *code, caddr_t > *params) > { > args[0] = tf->tf_ebx; > args[1] = tf->tf_ecx; > args[2] = tf->tf_edx; > args[3] = tf->tf_esi; > args[4] = tf->tf_edi; > *params = NULL; /* no copyin */ > } > > Basically, linux_mmap2 takes 6 args, and this looks here like only 5 args are > making it in... I checked this because the sixth argument to linux_mmap2() in > truss was showing 0x6, but when I printed out that arg from the kernel, it > was showing 0x0. Am I correct here? > > Ken Yes. According to http://john.fremlin.de/linux/asm/, linux used to parse only 5 args but now it parses six. Try adding: args[5] = tf->tf_ebp; Drew To Unsubscribe: send mail to majordomo@FreeBSD.org with "unsubscribe freebsd-emulation" in the body of the message