Ignore:
Timestamp:
Feb 25, 2000, 7:19:24 PM (26 years ago)
Author:
bird
Message:

Symbol Database is implemented.
No scanning of the os2krnl file, the loaded image is now scaned to determin
which build, debug/retail and smp/uni.
And yet some more enhanchments like 16-bit logging.

Location:
trunk/src/win32k/include
Files:
1 added
6 edited

Legend:

Unmodified
Added
Removed
  • trunk/src/win32k/include/dev16.h

    r2836 r2898  
    1 /* $Id: dev16.h,v 1.7 2000-02-21 04:45:46 bird Exp $
     1/* $Id: dev16.h,v 1.8 2000-02-25 18:15:04 bird Exp $
    22 * dev16 - 16-bit specific. Should not be used in 32-bit C/C++.
    33 *
     
    1313typedef ULONG       LIN;
    1414typedef ULONG  FAR *PLIN;
     15#endif
     16#ifndef MAX_DISKDD_CMD   /* macro from reqpkt.h where these normally is declared. */
     17typedef void   FAR *PRPINITIN;
     18typedef void   FAR *PRPINITOUT;
     19typedef void   FAR *PRP_GENIOCTL;
     20typedef ULONG       DDHDR;
    1521#endif
    1622
     
    3642 * Get Kernel OTEs. No params. Data is KRNLOBJTABLE (dev1632.h).
    3743 */
    38 #define D16_IOCTL_GETKRNLOTES       0x41
     44#define D16_IOCTL_GETKRNLINFO       0x41
    3945
    4046
    4147/*
    42  * Get Kernel OTEs. No params. No data. aImportTab is used.
     48 * Verify aImportTab. No params. No data (aImportTab is used).
    4349 */
    44 #define D16_IOCTL_VERIFYPROCTAB     0x42
     50#define D16_IOCTL_VERIFYIMPORTTAB   0x42
     51
    4552
    4653/**
     
    112119 */
    113120USHORT NEAR CallR0Init32(LIN pRpInit);
    114 USHORT NEAR CallGetOTEs32(ULONG addressOTEBuf);
     121USHORT NEAR CallGetKernelInfo32(ULONG addressKrnlInfoBuf);
    115122USHORT NEAR CallVerifyImportTab32(void);
    116123USHORT NEAR CallElfIOCtl(LIN pRpIOCtl);
     
    132139extern USHORT   R0FlatCS16;
    133140extern USHORT   R0FlatDS16;
     141extern BOOL     fInitTime;
    134142
    135143
     
    155163extern char PASCAL BSS32START       ;
    156164extern char PASCAL CONST32_ROSTART  ;
     165extern char PASCAL _VFTSTART        ;
     166extern char PASCAL EH_DATASTART     ;
    157167
    158168extern char PASCAL CODE16END      ;
     
    166176extern char PASCAL BSS32END       ;
    167177extern char PASCAL CONST32_ROEND  ;
     178extern char PASCAL _VFTEND        ;
     179extern char PASCAL EH_DATAEND     ;
    168180
    169181
  • trunk/src/win32k/include/dev1632.h

    r2831 r2898  
    1 /* $Id: dev1632.h,v 1.3 2000-02-19 23:52:00 bird Exp $
     1/* $Id: dev1632.h,v 1.4 2000-02-25 18:15:04 bird Exp $
    22 * dev1632.h - Common header file for 16-bit and 32-bit C
    33 *
     
    4848
    4949#define MAXKRNLOBJECTS 24
    50 typedef struct _KRNLOBJTABLE
     50typedef struct _KRNLINFO
    5151{
    5252    unsigned char   cObjects;
     53    unsigned char   fDebug;
     54    unsigned char   fSMP;
     55    unsigned short  usBuild;
    5356    OTE             aObjects[MAXKRNLOBJECTS];
    54 } KRNLOBJTABLE, FAR * PKRNLOBJTABLE;
     57} KRNLINFO, FAR * PKRNLINFO;
    5558
    5659#else
    5760
    58 #define PKRNLOBJTABLE void *
     61#define PKRNLINFO void *
    5962
    6063#endif
  • trunk/src/win32k/include/dev32.h

    r2836 r2898  
    1 /* $Id: dev32.h,v 1.7 2000-02-21 04:45:46 bird Exp $
     1/* $Id: dev32.h,v 1.8 2000-02-25 18:15:04 bird Exp $
    22 *
    33 * dev32 - header file for 32-bit part of the driver.
     
    2323    #define RP32GENIOCTL    void
    2424    #define PRP32GENIOCTL   void *
    25     #define PKRNLOBJTABLE   void *
     25    #define PKRNLINFO       void *
    2626#endif
    2727
     
    5656#if !defined(__cplusplus) && defined(RING0)
    5757USHORT _loadds _Far32 _Pascal R0Init32(RP32INIT *pRpInit);
    58 USHORT _loadds _Far32 _Pascal GetOTEs32(PKRNLOBJTABLE pOTEBuf);
     58USHORT _loadds _Far32 _Pascal GetKernelInfo32(PKRNLINFO pKrnlInfo);
    5959USHORT _loadds _Far32 _Pascal VerifyImportTab32(void);
    6060USHORT _loadds _Far32 _Pascal ElfIOCtl(PRP32GENIOCTL pRpIOCtl);
     
    9696#endif
    9797
     98
     99/*
     100 * START and END labels. NOTE: these are not bytes only assembly labels.
     101 */
     102extern char CODE16START      ;
     103extern char DATA16START      ;
     104extern char DATA16START      ;
     105extern char DATA16_BSSSTART  ;
     106extern char DATA16_CONSTSTART;
     107extern char CODE16START      ;
     108extern char CODE32START      ;
     109extern char DATA32START      ;
     110extern char BSS32START       ;
     111extern char CONST32_ROSTART  ;
     112extern char _VFTSTART        ;
     113extern char EH_DATASTART     ;
     114
     115extern char CODE16END      ;
     116extern char DATA16END      ;
     117extern char DATA16END      ;
     118extern char DATA16_BSSEND  ;
     119extern char DATA16_CONSTEND;
     120extern char CODE16END      ;
     121extern char CODE32END      ;
     122extern char DATA32END      ;
     123extern char BSS32END       ;
     124extern char CONST32_ROEND  ;
     125extern char _VFTEND        ;
     126extern char EH_DATAEND     ;
     127
     128
     129
     130
    98131#endif
  • trunk/src/win32k/include/log.h

    r1467 r2898  
    1 /* $Id: log.h,v 1.3 1999-10-27 02:02:56 bird Exp $
     1/* $Id: log.h,v 1.4 2000-02-25 18:15:04 bird Exp $
    22 *
    33 * log - C-style logging - kprintf.
    44 * Dual mode, RING0 and RING3.
     5 * Dual 16 and 32 bit.
    56 *
    6  * Copyright (c) 1998-1999 knut st. osmundsen
     7 * Define NOLOGGING to disable logging for the given sourcefile or the entire system.
     8 *
     9 * Copyright (c) 1998-2000 knut st. osmundsen
    710 *
    811 * Project Odin Software License can be found in LICENSE.TXT
     
    2831 */
    2932#define dprintf kprintf
    30 #ifdef DEBUG
    31     #include <stdarg.h>
    32     #include "vprintf.h"
    33     #define kprintf(a)          printf a
     33#if defined(DEBUG) && !defined(NOLOGGING)
     34    #ifndef INCL_16
     35        /* 32-bit */
     36        #include <stdarg.h>
     37        #include "vprintf.h"
     38        #define kprintf(a)          printf a
     39    #else
     40        /* 16-bit */
     41        #include "vprntf16.h"
     42        #define kprintf(a)          printf16 a
     43    #endif
    3444#else
    35     #define kprintf(a)          (void)0
     45    #define kprintf(a)              (void)0
    3646#endif
    3747
  • trunk/src/win32k/include/options.h

    r2849 r2898  
    1 /* $Id: options.h,v 1.9 2000-02-21 15:59:21 bird Exp $
     1/* $Id: options.h,v 1.10 2000-02-25 18:15:06 bird Exp $
    22 *
    33 * Options.
     
    1616*******************************************************************************/
    1717/* fKernel */
    18 #define KF_UNI      0x00000000UL
    19 #define KF_SMP      0x00000001UL
     18#define KF_UNI              0x00000000UL
     19#define KF_SMP              0x00000001UL
    2020
    2121/* fPE */
     
    2626
    2727/* ulInfoLevel */
    28 #define INFOLEVEL_QUIET      0x00000000UL
    29 #define INFOLEVEL_ERROR      0x00000001UL
    30 #define INFOLEVEL_WARNING    0x00000002UL
    31 #define INFOLEVEL_INFO       0x00000003UL
    32 #define INFOLEVEL_INFOALL    0x00000004UL
     28#define INFOLEVEL_QUIET     0x00000000UL
     29#define INFOLEVEL_ERROR     0x00000001UL
     30#define INFOLEVEL_WARNING   0x00000002UL
     31#define INFOLEVEL_INFO      0x00000003UL
     32#define INFOLEVEL_INFOALL   0x00000004UL
    3333
    3434/* default heapsizes */
    35 #define CB_SWP_INIT         (1024*512)
    36 #define CB_SWP_MAX          (1024*1024*16)
    37 #define CB_RES_INIT         (1024*256)
    38 #define CB_RES_MAX          (1024*1024*10)
     35#define CB_SWP_INIT         (1024*512)      /* 512KB */
     36#define CB_SWP_MAX          (1024*1024*16)  /*  16MB  */
     37#define CB_RES_INIT         (1024*256)      /* 256KB */
     38#define CB_RES_MAX          (1024*1024*10)  /*  10MB  */
    3939
     40/* default assignments */
     41#define DEFAULT_OPTION_ASSIGMENTS                           \
     42            {FALSE,                 /* fQuiet        */     \
     43            OUTPUT_COM2,            /* usCom         */     \
     44            FALSE,                  /* fLogging      */     \
     45            KF_UNI,                 /* fKernel       */     \
     46            ~0UL,                   /* ulBuild       */     \
     47            (unsigned short)~0,     /* usVerMajor    */     \
     48            (unsigned short)~0,     /* usVerMinor    */     \
     49            FLAGS_PE_PE2LX,         /* fPE           */     \
     50            INFOLEVEL_QUIET,        /* ulInfoLevel   */     \
     51            FALSE,                  /* fElf          */     \
     52            TRUE,                   /* fScript       */     \
     53            FALSE,                  /* fNoLoader     */     \
     54            CB_SWP_INIT,            /* cbSwpHeapInit */     \
     55            CB_SWP_MAX,             /* cbSwpHeapMax  */     \
     56            CB_RES_INIT,            /* cbResHeapInit */     \
     57            CB_RES_MAX}             /* cbResHeapMax  */
    4058
    41 /* Set defaults. */
    42 #define SET_OPTIONS_TO_DEFAULT(o)                   \
    43             o.fQuiet        = FALSE;                \
    44             o.usCom         = OUTPUT_COM2;          \
    45             o.fLogging      = FALSE;                \
    46             o.fKernel       = KF_UNI;               \
    47             o.ulBuild       = ~0UL;                 \
    48             o.usVerMajor    = (unsigned short)~0;   \
    49             o.usVerMinor    = (unsigned short)~0;   \
    50             o.fPE           = FLAGS_PE_PE2LX;       \
    51             o.ulInfoLevel   = INFOLEVEL_QUIET;      \
    52             o.fElf          = FALSE;                \
    53             o.fScript       = TRUE;                 \
    54             o.fNoLoader     = FALSE;                \
    55             o.cbSwpHeapInit = CB_SWP_INIT;          \
    56             o.cbSwpHeapMax  = CB_SWP_MAX;           \
    57             o.cbResHeapInit = CB_RES_INIT;          \
    58             o.cbResHeapMax  = CB_RES_MAX;
    5959
    6060
     
    6363*******************************************************************************/
    6464/** Option struct */
     65#pragma pack(4)
    6566struct options
    6667{
    6768    /** @cat misc */
    68     BOOL        fQuiet;                 /* Quiet initialization. */
     69    ULONG       fQuiet;                 /* Quiet initialization. */
    6970
    7071    /** @cat logging options */
    7172    USHORT      usCom;                  /* Output port no. */
    72     BOOL        fLogging;               /* Logging. */
     73    ULONG       fLogging;               /* Logging. */
    7374
    7475    /** @cat kernel selection */
     
    7980
    8081    /** @cat Options affecting the generated LX executables */
    81     BOOL        fPE;                    /* Flags set the type of conversion. */
     82    ULONG       fPE;                    /* Flags set the type of conversion. */
    8283    ULONG       ulInfoLevel;            /* Pe2Lx InfoLevel. */
    8384
    8485    /** @cat Options affecting the generated ELF executables */
    85     BOOL        fElf;                   /* Elf flags. */
     86    ULONG       fElf;                   /* Elf flags. */
    8687
    8788    /** @cat Options affecting the script executables */
    88     BOOL        fScript;                /* Script flags. */
     89    ULONG       fScript;                /* Script flags. */
    8990
    9091    /** @cat Options affecting the script executables */
    91     BOOL        fNoLoader;              /* No loader stuff. */
     92    ULONG       fNoLoader;              /* No loader stuff. */
    9293
    9394    /** @cat Options affecting the heap. */
     
    9798    ULONG       cbResHeapMax;           /* Maxiumem residentheapsize. */
    9899};
     100#pragma pack()
     101
    99102
    100103/*******************************************************************************
    101104*   Global Variables                                                           *
    102105*******************************************************************************/
    103 extern struct options options;          /* defined in d32globals.c */
     106extern struct options options;      /* defined in d32globals.c */
     107#if defined(__IBMC__) || defined(__IBMCPP__)
     108    #pragma map( options , "_options"  )
     109#endif
    104110
    105111#endif
  • trunk/src/win32k/include/probkrnl.h

    r2838 r2898  
    1 /* $Id: probkrnl.h,v 1.10 2000-02-21 09:24:00 bird Exp $
     1/* $Id: probkrnl.h,v 1.11 2000-02-25 18:15:06 bird Exp $
    22 *
    33 * Include file for ProbKrnl.
     
    6161
    6262
     63/*
     64 * Database of kernel symbols.
     65 */
     66#pragma pack(1)
     67typedef struct
     68{
     69    unsigned short usBuild;             /* Build number */
     70    unsigned char  chType;              /* R, H, A */
     71    unsigned char  fSMP;                /* TRUE / FALSE */
     72    unsigned char  cObjects;            /* Count of objects */
     73    struct
     74    {
     75        unsigned char iObject;          /* Object number.  */
     76        unsigned long offObject;        /* offset into object of the symbol. */
     77    } aSyms[NBR_OF_KRNLIMPORTS];
     78
     79} KRNLDBENTRY, *PKRNLDBENTRY;
     80#pragma pack()
     81
     82
    6383
    6484/*******************************************************************************
     
    6787*******************************************************************************/
    6888extern IMPORTKRNLSYM _aImportTab[NBR_OF_KRNLIMPORTS]; /* 'aImportTab' in PrbKrnl.c */
    69 extern unsigned long int  _ulBuild;     /* 'ulBuild'         in PrbKrnl.c */
     89extern unsigned short int _usBuild;     /* 'ulBuild'         in PrbKrnl.c */
    7090extern unsigned short int _usVerMajor;  /* 'usVerMajor'      in PrbKrnl.c */
    7191extern unsigned short int _usVerMinor;  /* 'usVerMinor'      in PrbKrnl.c */
     92extern KRNLDBENTRY aKrnlSymDB[];        /* defined in symdb.c (for 16-bit usage) */
     93extern KRNLDBENTRY _aKrnlSymDB[];       /* defined in symdb.c (for 32-bit usage) */
    7294
    73 #ifdef INCL_16 /* 16-bit only */
     95
     96#if defined(INCL_16) && defined(MAX_DISKDD_CMD) /* 16-bit only */
    7497int ProbeKernel(PRPINITIN pReqPack);
    7598#endif
Note: See TracChangeset for help on using the changeset viewer.