home *** CD-ROM | disk | FTP | other *** search
-
- /* copyright 1986 Eric Jul */
- /* Generates offsets for data structures defined in C. */
- /* The offsets are generated by a complicated script, see makefile */
-
- #include "sys/time.h"
- #include "emTypes.h"
- #include "emeraldTypes.h"
-
- #define findOffset(base,field) \
- asm("#X#base#Y#field ZZZZ"); \
- ZYXZ = (int) ( ( (char *) ( &( ( (base *) 0 )->field ) ) ) \
- - ( (char *) ( ( ( (base *) 0 ) ) ) ) \
- )
-
- #define findBitOffset(base,field) \
- asm("#X#base#Y#field ZZZZ"); \
- ZYXZ = ( (base *) 0 )-> field
-
- #define findSizeOf(someType) \
- asm("#X#sizeof#Y#someType ZZZZ"); \
- ZYXZ = sizeof(someType)
-
-
- int ZYXZ;
- main()
- {
- findBitOffset(ODTag,frozen);
- findBitOffset(ODTag,global);
- findBitOffset(ODTag,replicated);
- findBitOffset(ODTag,isResident);
- findBitOffset(ODTag,setUpDone);
- findBitOffset(ODTag,isFixed);
- findBitOffset(ODTag,inTransit);
- findBitOffset(ODTag,allInstancesAreLocal);
- findBitOffset(ODTag,hasNoPointer);
- findBitOffset(ODTag,broken);
- findBitOffset(ODTag,gcDoNotCollect);
- findBitOffset(ODTag,gcMark1);
- findBitOffset(ODTag,gcMark2);
- findBitOffset(ODTag,gcFrozen);
- findBitOffset(ODTag,localgcMark1);
- findBitOffset(ODTag,localgcMark2);
- findBitOffset(ODTag,xref);
- findBitOffset(ODTag,dormant);
- findBitOffset(ODTag,stopped);
- findBitOffset(ODTag,seenHere);
-
- findSizeOf(AbConOpVectorEntry);
- findSizeOf(OpVectorEntry);
- findOffset(AbCon,opVector[0]);
- findOffset(AbCon,ATOID);
- findOffset(OpVector,entry[0]);
- findOffset(GOD,dataPtr);
- findOffset(GOD,ARListHead);
- findOffset(GOData,inlineData[0]);
- findOffset(GOData,myCodePtr);
- findOffset(LOData,tag);
- findOffset(LOData,inlineData[0]);
- findOffset(LOData,myCodePtr);
- findOffset(ROData,tag);
- findOffset(ROData,myCodePtr);
- findOffset(ROData,ownOID);
- findOffset(ROData,inlineData[0]);
- findOffset(CondOD,theLock);
- findOffset(CondOD,waiting);
- findOffset(MonitorLock,waiting);
- findOffset(SS,regs);
- findOffset(SS,resultBrand);
- findOffset(SS,ssDQ);
- findOffset(AVariable,myAbConPtr);
- findOffset(String,sizeInBytes);
- findOffset(String,data[0]);
- findOffset(Vector,sizeInBytes);
- findOffset(Vector,data[0]);
- findOffset(IMVector,sizeInBytes);
- findOffset(IMVector,data[0]);
- findOffset(EmNodeList,data[0]);
- findOffset(DotoFile,theRest[0]);
- }
-