I googled out but i could not find these things:
> .section .fixup
> .previous
> .align 4
> .previous
> .align 4
Can u please help me in finding the meaning of these things? Any document which gives elaborate explanation would be really helpful for me for future reference, I have seen some more things in linux source code like __extable ....
On Sun, May 17, 2009 at 4:16 PM, SandeepKsinha <sandeepksinha@xxxxxxxxx> wrote:
On Sun, May 17, 2009 at 3:18 PM, seshikanth varmaGoogle for "inline assembly" and "assembly in C".
<seshikanthvarma@xxxxxxxxx> wrote:
> Hi All,
> I am trying to understand the implementation of copy_from_user() and
> copy_to_user() implementation in linux. I know the basics of asm format. But
> i don't know what is
> .section .fixup
> .previous
> .align 4
> Can u please point me to a detailed documentation of asm details involving
> the above?
--
> Thanks,
> Seshikanth
>
> 320 * Tell gcc we read from memory instead of writing: this is because
> 321 * we do not write to any memory gcc knows about, so there are no
> 322 * aliasing issues.
> 323 */
> 324#define __put_user_asm(x, addr, err, itype, rtype, ltype, errret)
> \
> 325 __asm__ __volatile__(
> \
> 326 "1: mov"itype" %"rtype"1,%2\n"
> \
> 327 "2:\n"
> \
> 328 ".section .fixup,\"ax\"\n"
> \
> 329 "3: movl %3,%0\n"
> \
> 330 " jmp 2b\n"
> \
> 331 ".previous\n"
> \
> 332 ".section __ex_table,\"a\"\n"
> \
> 333 " .align 4\n"
> \
> 334 " .long 1b,3b\n"
> \
> 335 ".previous"
> \
> 336 : "=r"(err)
> \
> 337 : ltype (x), "m"(__m(addr)), "i"(errret), "0"(err))
> 338
> 339
>
> --
> Regards,
> Seshikanth
>
Regards,
Sandeep.
“To learn is to change. Education is a process that changes the learner.”
--
Regards,
Seshikanth