This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: Regarding implementation of copy_from_user() and copy_to_user()


On Sat, May 23, 2009 at 1:02 PM, SandeepKsinha <sandeepksinha@gmail.com> wrote:
> IMO, binutils members can answer this better.
> copying binutils list....
>
> On Sat, May 23, 2009 at 12:06 AM, seshikanth varma
> <seshikanthvarma@gmail.com> wrote:
>> Hi
>> I googled out but i could not find these things:
>>> .section .fixup
>>> .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@gmail.com>
>> wrote:
>>>
>>> On Sun, May 17, 2009 at 3:18 PM, seshikanth varma
>>> <seshikanthvarma@gmail.com> 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?
>>>
>>> Google for "inline assembly" and "assembly in C".
>>>
>>> > 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
>>
>
>
>
> --
> Regards,
> Sandeep.
>
>
>
>
>
>
> “To learn is to change. Education is a process that changes the learner.”
>



-- 
Regards,
Sandeep.





 	
“To learn is to change. Education is a process that changes the learner.”


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]