Date: Wed, 24 May 2017 14:52:47 +0530 From: karnajit wangkhem <karnajitw@gmail.com> To: Konstantin Belousov <kostikbel@gmail.com> Cc: freebsd-hackers@freebsd.org Subject: Re: Seventh argument seen in mmap on i386 Message-ID: <CAB6rxaQeN-isnAGVGYH1vHhxHrrhUahRnaqrwJ4R0Xt=r7Uupw@mail.gmail.com> In-Reply-To: <20170523140601.GD1622@kib.kiev.ua> References: <CAB6rxaStKLXKFrQ2Lqa4gLDNM9CJeMXxDur6uTQC=_TGwZ_K_g@mail.gmail.com> <20170523140601.GD1622@kib.kiev.ua>
next in thread | previous in thread | raw e-mail | index | archive | help
Thanks. That was helpful. On Tue, May 23, 2017 at 7:36 PM, Konstantin Belousov <kostikbel@gmail.com> wrote: > On Tue, May 23, 2017 at 07:25:07PM +0530, karnajit wangkhem wrote: > > Hi All, > > > > > > > > I am trying to understand this scenario where a seventh argument is seen > in > > case of freebsd.x-i386. As per the mmap man page, the libc function > > prototype takes in 6 arguments. > > > > > > Ktrace shows the following > > > > // Freebsd-11.0 ??? i386 box > > > > 44416 a.out CALL > > mmap(0,0x1000,0x7<PROT_READ|PROT_WRITE|PROT_EXEC>,0x1002< > MAP_PRIVATE|MAP_ANON>,0xffffffff,0,0) > > > > 44416 a.out RET mmap 671535104/0x2806d000 > > > > > > > > // Freebsd-11.0 ??? amd64 box > > > > 366 a.out CALL > > mmap(0,0x1000,0x7<PROT_READ|PROT_WRITE|PROT_EXEC>,0x1002< > MAP_PRIVATE|MAP_ANON>,0xffffffff,0) > > > > 366 a.out RET mmap 34366287872/0x80063f000 > > > > > > > > Also, the disassemble code show that an extra argument was pushed in i386 > > case > > > > <SNIP> > > > > -> 0x80485e6 <+38>: movl %esp, %ebx > > > > 0x80485e8 <+40>: movl $0x0, 0x18(%ebx) > > > > 0x80485ef <+47>: movl $0x0, 0x14(%ebx) > > > > 0x80485f6 <+54>: movl $0xffffffff, 0x10(%ebx) ; imm = 0xFFFFFFFF > > > > 0x80485fd <+61>: movl $0x1002, 0xc(%ebx) ; imm = 0x1002 > > > > 0x8048604 <+68>: movl $0x7, 0x8(%ebx) > > > > 0x804860b <+75>: movl $0x1000, 0x4(%ebx) ; imm = 0x1000 > > > > 0x8048612 <+82>: movl $0x0, (%ebx) > > > > <SNIP> > > > > > > > > Please help me understand why this extra argument is seen in case of > i386. > > off_t is 64bit. It is not seventh arg, it is offset which takes two words. >
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?CAB6rxaQeN-isnAGVGYH1vHhxHrrhUahRnaqrwJ4R0Xt=r7Uupw>