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.
