| 1 | /* $Id: MemInfoTest.c,v 1.1 2001-02-11 15:25:51 bird Exp $ | 
|---|
| 2 | * | 
|---|
| 3 | * Test program for the k32/W32kQuerySystemMemInfo IOCtl. | 
|---|
| 4 | * | 
|---|
| 5 | * Copyright (c) 2001 knut st. osmundsen (knut.stange.osmundsen@mynd.no) | 
|---|
| 6 | * | 
|---|
| 7 | * Project Odin Software License can be found in LICENSE.TXT | 
|---|
| 8 | * | 
|---|
| 9 | */ | 
|---|
| 10 |  | 
|---|
| 11 | /******************************************************************************* | 
|---|
| 12 | *   Defined Constants And Macros                                               * | 
|---|
| 13 | *******************************************************************************/ | 
|---|
| 14 | #define INCL_BASE | 
|---|
| 15 |  | 
|---|
| 16 | /******************************************************************************* | 
|---|
| 17 | *   Header Files                                                               * | 
|---|
| 18 | *******************************************************************************/ | 
|---|
| 19 | #include <os2.h> | 
|---|
| 20 |  | 
|---|
| 21 | #include <stdio.h> | 
|---|
| 22 | #include <string.h> | 
|---|
| 23 |  | 
|---|
| 24 | #include "win32k.h" | 
|---|
| 25 |  | 
|---|
| 26 |  | 
|---|
| 27 |  | 
|---|
| 28 | int main(void) | 
|---|
| 29 | { | 
|---|
| 30 | APIRET rc; | 
|---|
| 31 |  | 
|---|
| 32 | rc = libWin32kInit(); | 
|---|
| 33 | if (rc) | 
|---|
| 34 | { | 
|---|
| 35 | fprintf(stderr, "Win32k init failed with rc=0x%x(%d)\n", rc, rc); | 
|---|
| 36 | return rc; | 
|---|
| 37 | } | 
|---|
| 38 |  | 
|---|
| 39 | for (;;) | 
|---|
| 40 | { | 
|---|
| 41 | K32SYSTEMMEMINFO MemInfo; | 
|---|
| 42 |  | 
|---|
| 43 | memset(&MemInfo, 0xFE, sizeof(MemInfo)); | 
|---|
| 44 | MemInfo.cb = sizeof(K32SYSTEMMEMINFO); | 
|---|
| 45 | MemInfo.flFlags = K32_SYSMEMINFO_ALL; | 
|---|
| 46 | rc = W32kQuerySystemMemInfo(&MemInfo); | 
|---|
| 47 | if (rc) | 
|---|
| 48 | { | 
|---|
| 49 | fprintf(stderr, "W32kQuerySystemMemInfo failed with rc=0x%x(%d)\n", rc, rc); | 
|---|
| 50 | break; | 
|---|
| 51 | } | 
|---|
| 52 |  | 
|---|
| 53 | printf("\n" | 
|---|
| 54 | " * Swap File *\n" | 
|---|
| 55 | " -------------\n"); | 
|---|
| 56 | printf(" fSwapFile               0x%08x (%d)\n", MemInfo.fSwapFile            , MemInfo.fSwapFile); | 
|---|
| 57 | printf(" cbSwapFileSize          0x%08x (%d)\n", MemInfo.cbSwapFileSize       , MemInfo.cbSwapFileSize); | 
|---|
| 58 | printf(" cbSwapFileAvail         0x%08x (%d)\n", MemInfo.cbSwapFileAvail      , MemInfo.cbSwapFileAvail); | 
|---|
| 59 | printf(" cbSwapFileUsed          0x%08x (%d)\n", MemInfo.cbSwapFileUsed       , MemInfo.cbSwapFileUsed); | 
|---|
| 60 | printf(" cbSwapFileMinFree       0x%08x (%d)\n", MemInfo.cbSwapFileMinFree    , MemInfo.cbSwapFileMinFree); | 
|---|
| 61 | printf(" cbSwapFileCFGMinFree    0x%08x (%d)\n", MemInfo.cbSwapFileCFGMinFree , MemInfo.cbSwapFileCFGMinFree); | 
|---|
| 62 | printf(" cbSwapFileCFGSwapSize   0x%08x (%d)\n", MemInfo.cbSwapFileCFGSwapSize, MemInfo.cbSwapFileCFGSwapSize); | 
|---|
| 63 | printf(" cSwapFileBrokenDF       0x%08x (%d)\n", MemInfo.cSwapFileBrokenDF    , MemInfo.cSwapFileBrokenDF); | 
|---|
| 64 | printf(" cSwapFileGrowFails      0x%08x (%d)\n", MemInfo.cSwapFileGrowFails   , MemInfo.cSwapFileGrowFails); | 
|---|
| 65 | printf(" cSwapFileInMemFile      0x%08x (%d)\n", MemInfo.cSwapFileInMemFile   , MemInfo.cSwapFileInMemFile); | 
|---|
| 66 |  | 
|---|
| 67 |  | 
|---|
| 68 | printf("\n" | 
|---|
| 69 | " * Physical Memory *\n" | 
|---|
| 70 | " -------------------\n"); | 
|---|
| 71 | printf(" cbPhysSize              0x%08x (%d)\n", MemInfo.cbPhysSize , MemInfo.cbPhysSize ); | 
|---|
| 72 | printf(" cbPhysAvail             0x%08x (%d)\n", MemInfo.cbPhysAvail, MemInfo.cbPhysAvail); | 
|---|
| 73 | printf(" cbPhysUsed              0x%08x (%d)\n", MemInfo.cbPhysUsed , MemInfo.cbPhysUsed ); | 
|---|
| 74 |  | 
|---|
| 75 |  | 
|---|
| 76 | printf("\n" | 
|---|
| 77 | " * Other paging info *\n" | 
|---|
| 78 | " ---------------------\n"); | 
|---|
| 79 | printf(" fPagingSwapEnabled      0x%08x (%d)\n", MemInfo.fPagingSwapEnabled     , MemInfo.fPagingSwapEnabled     ); | 
|---|
| 80 | printf(" cPagingPageFaults       0x%08x (%d)\n", MemInfo.cPagingPageFaults      , MemInfo.cPagingPageFaults      ); | 
|---|
| 81 | printf(" cPagingPageFaultsActive 0x%08x (%d)\n", MemInfo.cPagingPageFaultsActive, MemInfo.cPagingPageFaultsActive); | 
|---|
| 82 | printf(" cPagingPhysPages        0x%08x (%d)\n", MemInfo.cPagingPhysPages       , MemInfo.cPagingPhysPages       ); | 
|---|
| 83 | printf(" ulPagingPhysMax         0x%08x (%d)\n", MemInfo.ulPagingPhysMax        , MemInfo.ulPagingPhysMax        ); | 
|---|
| 84 | printf(" cPagingResidentPages    0x%08x (%d)\n", MemInfo.cPagingResidentPages   , MemInfo.cPagingResidentPages   ); | 
|---|
| 85 | printf(" cPagingSwappablePages   0x%08x (%d)\n", MemInfo.cPagingSwappablePages  , MemInfo.cPagingSwappablePages  ); | 
|---|
| 86 | printf(" cPagingDiscardableInmem 0x%08x (%d)\n", MemInfo.cPagingDiscardableInmem, MemInfo.cPagingDiscardableInmem); | 
|---|
| 87 | printf(" cPagingDiscardablePages 0x%08x (%d)\n", MemInfo.cPagingDiscardablePages, MemInfo.cPagingDiscardablePages); | 
|---|
| 88 |  | 
|---|
| 89 |  | 
|---|
| 90 | printf("\n" | 
|---|
| 91 | " * Other paging info *\n" | 
|---|
| 92 | " ---------------------\n"); | 
|---|
| 93 | printf(" ulAddressLimit          0x%08x (%d)\n", MemInfo.ulAddressLimit        , MemInfo.ulAddressLimit         ); | 
|---|
| 94 | printf(" ulVMArenaPrivMax        0x%08x (%d)\n", MemInfo.ulVMArenaPrivMax      , MemInfo.ulVMArenaPrivMax       ); | 
|---|
| 95 | printf(" ulVMArenaSharedMin      0x%08x (%d)\n", MemInfo.ulVMArenaSharedMin    , MemInfo.ulVMArenaSharedMin     ); | 
|---|
| 96 | printf(" ulVMArenaSharedMax      0x%08x (%d)\n", MemInfo.ulVMArenaSharedMax    , MemInfo.ulVMArenaSharedMax     ); | 
|---|
| 97 | printf(" ulVMArenaSystemMin      0x%08x (%d)\n", MemInfo.ulVMArenaSystemMin    , MemInfo.ulVMArenaSystemMin     ); | 
|---|
| 98 | printf(" ulVMArenaSystemMax      0x%08x (%d)\n", MemInfo.ulVMArenaSystemMax    , MemInfo.ulVMArenaSystemMax     ); | 
|---|
| 99 | printf(" ulVMArenaHighPrivMax    0x%08x (%d)\n", MemInfo.ulVMArenaHighPrivMax  , MemInfo.ulVMArenaHighPrivMax   ); | 
|---|
| 100 | printf(" ulVMArenaHighSharedMin  0x%08x (%d)\n", MemInfo.ulVMArenaHighSharedMin, MemInfo.ulVMArenaHighSharedMin ); | 
|---|
| 101 | printf(" ulVMArenaHighSharedMax  0x%08x (%d)\n", MemInfo.ulVMArenaHighSharedMax, MemInfo.ulVMArenaHighSharedMax ); | 
|---|
| 102 |  | 
|---|
| 103 | DosSleep(2000); | 
|---|
| 104 | } | 
|---|
| 105 |  | 
|---|
| 106 | libWin32kTerm(); | 
|---|
| 107 | return rc; | 
|---|
| 108 | } | 
|---|
| 109 |  | 
|---|