home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 10 Tools / 10-Tools.zip / sd386v50.zip / sd386src.zip / ASMINIT.C < prev    next >
Text File  |  1996-08-28  |  4KB  |  70 lines

  1. /*****************************************************************************/
  2. /* File:                                             IBM INTERNAL USE ONLY   */
  3. /*   asminit.c                                                               */
  4. /*                                                                           */
  5. /* Description:                                                              */
  6. /*                                                                           */
  7. /*   Initialize for debugging at assembler level.                            */
  8. /*                                                                           */
  9. /* History:                                                                  */
  10. /*                                                                           */
  11. /*   12/17/93 Rewritten.                                                     */
  12. /*                                                                           */
  13. /**Includes*******************************************************************/
  14.  
  15. #include "all.h"                        /* SD86 include files                */
  16.  
  17. /*****************************************************************************/
  18. /* AsmInit()                                                                 */
  19. /*                                                                           */
  20. /* Description:                                                              */
  21. /*                                                                           */
  22. /*  Initialize a dll/exe for debugging at assembler level only.              */
  23. /*                                                                           */
  24. /* Parameters:                                                               */
  25. /*                                                                           */
  26. /*  pdf       input - the EXE/DLL structure.                                 */
  27. /*                                                                           */
  28. /* Return:                                                                   */
  29. /*                                                                           */
  30. /* Assumptions:                                                              */
  31. /*                                                                           */
  32. /*  pdf != NULL.                                                             */
  33. /*                                                                           */
  34. /*****************************************************************************/
  35. void asminit ( DEBFILE *pdf )
  36. {
  37.  uint           NumCodeObjs;
  38.  OBJTABLEENTRY *te;
  39.  MODULE         *mptr;
  40.  MODULE         *lptr;
  41.  int             i;
  42.  uint           *p;
  43.  
  44.  /****************************************************************************/
  45.  /* - build a module chain based on the code objects.                        */
  46.  /****************************************************************************/
  47.  pdf->MidAnchor = NULL;
  48.  lptr = (MODULE *)&pdf->MidAnchor;
  49.  NumCodeObjs = *(p=pdf->CodeObjs);
  50.  te = (OBJTABLEENTRY *)++p;
  51.  for(i=1; i <= NumCodeObjs; i++,te++ )
  52.  {
  53.   if(te->ObjType == CODE )
  54.   {
  55.    mptr          = (MODULE *)Talloc(sizeof(MODULE)) ;
  56.    mptr->pCsects = (CSECT*)Talloc(sizeof(CSECT));
  57.  
  58.    mptr->pCsects->pModule = mptr;
  59.  
  60.    mptr->mid = i;
  61.    mptr->pCsects->SegFlatAddr = te->ObjLoadAddr;
  62.    mptr->pCsects->CsectLo     = te->ObjLoadAddr;
  63.    mptr->pCsects->CsectHi     = te->ObjLoadAddr + te->ObjLoadSize - 1;
  64.    mptr->pCsects->CsectSize   = te->ObjLoadSize;
  65.    lptr->NextMod = mptr;
  66.    lptr = mptr;
  67.   }
  68.  }
  69. }
  70.