Ignore:
Timestamp:
Sep 2, 2000, 11:08:23 PM (25 years ago)
Author:
bird
Message:

Merged in the Grace branch. New Win32k!

File:
1 edited

Legend:

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

    r2918 r4164  
    1 /* $Id: win32k.h,v 1.4 2000-02-26 20:21:42 bird Exp $
     1/* $Id: win32k.h,v 1.5 2000-09-02 21:08:00 bird Exp $
    22 *
    33 * Top level make file for the Win32k library.
     
    2525 */
    2626#define K32_ALLOCMEMEX          0x01
    27 
     27#define K32_QUERYOTES           0x02
     28#define K32_QUERYOPTIONSSTATUS  0x03
     29#define K32_SETOPTIONS          0x04
    2830
    2931/*
     
    3638*   Structures and Typedefs                                                    *
    3739*******************************************************************************/
     40#pragma pack(1)
     41
     42/*
     43 * Object Table Entry buffer.
     44 */
     45typedef struct _QueryOTE
     46{
     47    ULONG   ote_size;                   /* Object virtual size */
     48    ULONG   ote_base;                   /* Object base virtual address */
     49    ULONG   ote_flags;                  /* Attribute flags */
     50    ULONG   ote_pagemap;                /* Object page map index */
     51    ULONG   ote_mapsize;                /* Num of entries in obj page map */
     52  /*ULONG   ote_reserved;*/
     53    USHORT  ote_sel;                    /* Object Selector */
     54    USHORT  ote_hob;                    /* Object Handle */
     55} QOTE, *PQOTE;
     56
     57typedef struct _QueryOTEBuffer
     58{
     59    ULONG   cOTEs;                      /* Number of entries in aOTE. */
     60    QOTE    aOTE[1];                    /* Array of OTEs. */
     61} QOTEBUFFER, *PQOTEBUFFER;
     62
     63
     64/*
     65 * Options struct.
     66 *
     67 * (The function of these members are described in options.h in
     68 *  the src\win32k\include directory.)
     69 * All members of this struct (except cb ofcourse) is changable.
     70 */
     71typedef struct _K32Options
     72{
     73    ULONG   cb;
     74
     75    /** @cat logging options */
     76    USHORT      usCom;                  /* Output port no. */
     77    ULONG       fLogging;               /* Logging. */
     78
     79    /** @cat Options affecting the generated LX executables */
     80    ULONG       fPE;                    /* Flags set the type of conversion. */
     81    ULONG       ulInfoLevel;            /* Pe2Lx InfoLevel. */
     82
     83    /** @cat Options affecting the generated ELF executables */
     84    ULONG       fElf;                   /* Elf flags. */
     85
     86    /** @cat Options affecting the UNIX script executables */
     87    ULONG       fUNIXScript;            /* UNIX script flags. */
     88
     89    /** @cat Options affecting the REXX script executables */
     90    ULONG       fREXXScript;            /* REXX script flags. */
     91
     92    /** @cat Options affecting the JAVA executables */
     93    ULONG       fJava;                  /* Java flags. */
     94
     95    /** @cat Options affecting the  executables */
     96    ULONG       fNoLoader;              /* No loader stuff. !FIXME! We should import / functions even if this flag is set!!! */
     97
     98    /** @cat Options affecting the heap. */
     99    ULONG       cbSwpHeapMax;           /* Maximum heapsize. */
     100    ULONG       cbResHeapMax;           /* Maxiumem residentheapsize. */
     101} K32OPTIONS, *PK32OPTIONS;
     102
     103
     104/*
     105 * Status struct.
     106 *
     107 */
     108typedef struct _K32Status
     109{
     110    ULONG   cb;
     111
     112    /** @cat Options status. */
     113    ULONG       fQuiet;                 /* Quiet initialization. */
     114
     115    /** @cat Kernel status. */
     116    ULONG       fKernel;                /* Smp or uni kernel. */
     117    ULONG       ulBuild;                /* Kernel build. */
     118    USHORT      usVerMajor;             /* OS/2 major ver - 20 */
     119    USHORT      usVerMinor;             /* OS/2 minor ver - 30,40 */
     120
     121    /** @cat Heap status. */
     122    ULONG       cbSwpHeapInit;          /* Initial heapsize. */
     123    ULONG       cbSwpHeapFree;          /* Amount of used space. */
     124    ULONG       cbSwpHeapUsed;          /* Amount of free space reserved. */
     125    ULONG       cbSwpHeapSize;          /* Amount of memory used by the heap free and used++. */
     126    ULONG       cSwpBlocksUsed;         /* Count of used blocks. */
     127    ULONG       cSwpBlocksFree;         /* Count of free blocks. */
     128
     129    ULONG       cbResHeapInit;          /* Initial heapsize. */
     130    ULONG       cbResHeapFree;          /* Amount of free space reserved. */
     131    ULONG       cbResHeapUsed;          /* Amount of used space. */
     132    ULONG       cbResHeapSize;          /* Amount of memory used by the heap free and used++. */
     133    ULONG       cResBlocksUsed;         /* Count of used blocks. */
     134    ULONG       cResBlocksFree;         /* Count of free blocks. */
     135
     136    /** @cat Win32k build, version and init stuff */
     137    CHAR        szBuildDate[12];        /* Date of the win32k build. (Sep 02 2000) */
     138    CHAR        szBuildTime[9];         /* Time of the win32k build. (11:44:21) */
     139    ULONG       ulVersion;              /* Win32k version */
     140    CHAR        szSymFile[CCHMAXPATH];  /* The name of the symbol file or sym database. */
     141
     142    /** @cat Statistics */
     143    ULONG       cPe2LxModules;          /* Number of Pe2Lx modules currently loaded. */
     144    ULONG       cElf2LxModules;         /* Number of Elf2Lx modules currently loaded. */
     145    /*...*/
     146} K32STATUS, *PK32STATUS;
     147
     148
     149
    38150/*
    39151 * K32 category parameter structs
     
    51163} K32ALLOCMEMEX, *PK32ALLOCMEMEX;
    52164
    53 
    54 
    55 
    56 #ifdef INCL_WIN32K_LIB
     165typedef struct _k32QueryOTEs
     166{
     167    HMODULE     hMTE;                   /* Module handle. */
     168    PQOTEBUFFER pQOte;                  /* Pointer to output buffer. */
     169    ULONG       cbQOte;                 /* Size of the buffer pointed to by pQOte  */
     170    ULONG       rc;                     /* Return code. */
     171} K32QUERYOTES, *PK32QUERYOTES;
     172
     173typedef struct _k32QueryOptionsStatus
     174{
     175    PK32OPTIONS     pOptions;           /* Pointer to option struct. (NULL allowed) */
     176    PK32STATUS      pStatus;            /* Pointer to status struct. (NULL allowed) */
     177    ULONG           rc;                 /* Return code. */
     178} K32QUERYOPTIONSSTATUS, *PK32QUERYOPTIONSSTATUS;
     179
     180typedef struct _k32SetOptions
     181{
     182    PK32OPTIONS     pOptions;           /* Pointer to option struct. (NULL allowed) */
     183    ULONG           rc;                 /* Return code. */
     184} K32SETOPTIONS, *PK32SETOPTIONS;
     185
     186
     187#pragma pack()
     188
     189#ifndef NO_WIN32K_LIB_FUNCTIONS
    57190/*******************************************************************************
    58191*   External Functions                                                         *
    59192*******************************************************************************/
     193/* Win32k APIs */
    60194APIRET APIENTRY  libWin32kInit(void);
    61195APIRET APIENTRY  libWin32kTerm(void);
     196BOOL   APIENTRY  libWin32kInstalled(void);
     197APIRET APIENTRY  libWin32kQueryOptionsStatus(PK32OPTIONS pOptions, PK32STATUS pStatus);
     198APIRET APIENTRY  libWin32kSetOptions(PK32OPTIONS pOptions);
     199
     200/* "Extra OS2 APIs" */
     201APIRET APIENTRY  DosAllocMemEx(PPVOID ppv, ULONG cb, ULONG flag);
     202APIRET APIENTRY  W32kQueryOTEs(HMODULE hMTE, PQOTEBUFFER pQOte, ULONG cbQOte);
     203
     204/* Helper function */
    62205USHORT APIENTRY  libHelperGetCS(void);
    63 APIRET APIENTRY  DosAllocMemEx(PPVOID ppv, ULONG cb, ULONG flag);
    64206
    65207
Note: See TracChangeset for help on using the changeset viewer.