Posted a proper CR, even because that commit was rooted on the perf branch ☺


On Fri, Dec 4, 2015 at 1:37 PM, Davide Libenzi <[email protected]> wrote:

> Here you go. I did not plug it into the .S files, otherwise we will be
> colliding.
> Does the Makefile machinery look right according to the way is done in
> Akaros? Any changes?
>
>
> https://github.com/dlibenzi/akaros/commit/323172ae6fc847a8c1d48526b9c044e2ffad6ef8
>
>
> On Fri, Dec 4, 2015 at 11:45 AM, Davide Libenzi <[email protected]>
> wrote:
>
>> Missing piece:
>>
>> #pragma once
>>
>> /* Automatically generated file using gen_offsets
>>  * DO NOT EDIT!
>>  */
>>
>> #define abc_a           24
>> #define abc_b           152
>> #define abc_c           160
>>
>>
>>
>> On Fri, Dec 4, 2015 at 11:42 AM, Davide Libenzi <[email protected]>
>> wrote:
>>
>>> I already did the skeleton ☺
>>>
>>> We have a C file (not included in builds - as in producing .o results)
>>> which looks like:
>>>
>>> [elsewhere in our foo.h file]
>>> struct abc {
>>>
>>>         float h[6];
>>>     int a[32];
>>>     long b;
>>>     double c;
>>> };
>>>
>>> [asm-offsets.c]
>>> #include <foo.h>
>>> ...
>>>
>>>
>>> #define EMIT_OFFSET(name, type, field) \
>>>     unsigned long __offsetof_ ## name = (unsigned long) &(((type *) 
>>> 0)->field)
>>>
>>> EMIT_OFFSET(abc_a, struct abc, a);
>>> EMIT_OFFSET(abc_b, struct abc, b);
>>> EMIT_OFFSET(abc_c, struct abc, c);
>>> ...
>>>
>>> Then we have a perl script (Yay!) like this:
>>>
>>> https://gist.github.com/dlibenzi/a31c823a0c8adedd66ab
>>>
>>> That we run as:
>>>
>>> $ gen_offsets -i asm-offsets.c -o somewhere/generated/asm-offset.h 
>>> x86_64-ucb-akaros-gcc -Isomewhere -Dsomething ...
>>>
>>> That will use gcc-S to generate an asm file, than the Perl script parses it 
>>> and create the H file.
>>>
>>>
>>>
>>>
>>> On Fri, Dec 4, 2015 at 11:28 AM, Barret Rhoden <[email protected]>
>>> wrote:
>>>
>>>> On 2015-12-04 at 10:47 "'Davide Libenzi' via Akaros"
>>>> <[email protected]> wrote:
>>>> > I didn't say do it like exactly Linux ☺
>>>> > Let me take a look ...
>>>>
>>>> just don't go nuts with it.  =)  trapentry and all of the asm related
>>>> to context switches are delicate things.  you just happened to see some
>>>> of it in this diff.  =)
>>>>
>>>> barret
>>>>
>>>> --
>>>> You received this message because you are subscribed to the Google
>>>> Groups "Akaros" group.
>>>> To unsubscribe from this group and stop receiving emails from it, send
>>>> an email to [email protected].
>>>> To post to this group, send email to [email protected].
>>>> For more options, visit https://groups.google.com/d/optout.
>>>>
>>>
>>>
>>
>

-- 
You received this message because you are subscribed to the Google Groups 
"Akaros" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
For more options, visit https://groups.google.com/d/optout.

Reply via email to