X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=rts%2FCapability.h;h=ba0695c8ee23ac7590626d77e81ed6997db3b8d8;hb=4d13f3e61e4dc3aaa169bad0b8d67e8256624aee;hp=478b0f1312e8a9e4aca1bdf6cf9b06041d8c1b8f;hpb=3ebcd3deb769a03f4ded0fca2cf38201048c0214;p=ghc-hetmet.git diff --git a/rts/Capability.h b/rts/Capability.h index 478b0f1..ba0695c 100644 --- a/rts/Capability.h +++ b/rts/Capability.h @@ -32,11 +32,7 @@ struct Capability_ { // code. During STG execution, the BaseReg register always points // to the StgRegTable of the current Capability (&cap->r). StgFunTable f; - StgRegTable r GNU_ATTRIBUTE(packed); - // packed eliminates any padding between f and r. Not strictly - // necessary, but it means the negative offsets for accessing - // the fields of f when we are in STG code are as small as - // possible. + StgRegTable r; nat no; // capability number. @@ -147,12 +143,10 @@ struct Capability_ { // Converts a *StgRegTable into a *Capability. // -#define OFFSET(s_type, field) ((size_t)&(((s_type*)0)->field)) - INLINE_HEADER Capability * regTableToCapability (StgRegTable *reg) { - return (Capability *)((void *)((unsigned char*)reg - OFFSET(Capability,r))); + return (Capability *)((void *)((unsigned char*)reg - FIELD_OFFSET(Capability,r))); } // Initialise the available capabilities.