source: trunk/libc/src/kNIX.os2/FastInfoBlocks.c@ 2726

Last change on this file since 2726 was 2726, checked in by bird, 19 years ago

Fast info blocks for Nt. Updated all users of the old header to user the klibc one.

  • Property cvs2svn:cvs-rev set to 1.1
  • Property svn:eol-style set to native
  • Property svn:executable set to *
  • Property svn:keywords set to Author Date Id Revision
File size: 8.2 KB
Line 
1/* $Id: FastInfoBlocks.c 2726 2006-07-17 22:15:11Z bird $ */
2/** @file
3 *
4 * Fast InfoBlock Access.
5 *
6 * Copyright (c) 2004 knut st. osmundsen <bird@innotek.de>
7 *
8 *
9 * This file is part of InnoTek LIBC.
10 *
11 * InnoTek LIBC is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU Lesser General Public License as published
13 * by the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * InnoTek LIBC is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU Lesser General Public License for more details.
20 *
21 * You should have received a copy of the GNU Lesser General Public License
22 * along with InnoTek LIBC; if not, write to the Free Software
23 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
24 *
25 */
26
27
28/*******************************************************************************
29* Header Files *
30*******************************************************************************/
31#include "libc-alias.h"
32#define INCL_DOSINFOSEG
33#define INCL_DOSPROCESS
34#define INCL_FSMACROS
35#include <os2emx.h>
36#include <klibc/fib.h>
37#define __LIBC_LOG_GROUP __LIBC_LOG_GRP_MISC
38#include <InnoTekLIBC/logstrict.h>
39
40
41/*******************************************************************************
42* Global Variables *
43*******************************************************************************/
44struct __libc_GpFIBLIS_s *__libc_GpFIBLIS = NULL;
45struct __libc_GpFIBGIS_s *__libc_GpFIBGIS = NULL;
46struct __libc_GpFIBPIB_s *__libc_GpFIBPIB = NULL;
47
48
49/**
50 * Initialize the global infoblock/segment pointers.
51 * @param fForced Used during fork().
52 */
53int __libc_back_fibInit(int fForced)
54{
55 LIBCLOG_ENTER("\n");
56 if (!fForced && __libc_GpFIBPIB)
57 LIBCLOG_RETURN_INT(0);
58
59 __libc_GpFIBGIS = (struct __libc_GpFIBGIS_s *)GETGINFOSEG();
60 __libc_GpFIBLIS = (struct __libc_GpFIBLIS_s *)GETLINFOSEG();
61 PPIB pPib = NULL;
62 PTIB pTib;
63 FS_VAR();
64 FS_SAVE_LOAD();
65 DosGetInfoBlocks(&pTib, &pPib);
66 __libc_GpFIBPIB = (struct __libc_GpFIBPIB_s *)pPib;
67 __libc_Back_fibDumpAll();
68 FS_RESTORE();
69 LIBCLOG_RETURN_INT(0);
70}
71
72
73/**
74 * Logs the content of all the structures.
75 */
76void __libc_Back_fibDumpAll(void)
77{
78 LIBCLOG_ENTER("\n");
79
80 LIBCLOG_MSG("_gpfibPIB=%p\n", (void *)__libc_GpFIBPIB);
81 if (__libc_GpFIBPIB)
82 {
83 LIBCLOG_MSG("pib_ulpid = %08lx\n", __libc_GpFIBPIB->pib_ulpid );
84 LIBCLOG_MSG("pib_ulppid = %08lx\n", __libc_GpFIBPIB->pib_ulppid );
85 LIBCLOG_MSG("pib_hmte = %08lx\n", __libc_GpFIBPIB->pib_hmte );
86 LIBCLOG_MSG("pib_pchcmd = %p\n", __libc_GpFIBPIB->pib_pchcmd );
87 LIBCLOG_MSG("pib_pchenv = %p\n", __libc_GpFIBPIB->pib_pchenv );
88 LIBCLOG_MSG("pib_flstatus = %08lx\n", __libc_GpFIBPIB->pib_flstatus );
89 LIBCLOG_MSG("pib_ultype = %08lx\n", __libc_GpFIBPIB->pib_ultype );
90 }
91 LIBCLOG_MSG("__libc_GpFIBLIS = %p\n", (void *)__libc_GpFIBLIS);
92 if (__libc_GpFIBLIS)
93 {
94 LIBCLOG_MSG("pidCurrent = %08x\n", (unsigned)__libc_GpFIBLIS->pidCurrent );
95 LIBCLOG_MSG("pidParent = %08x\n", (unsigned)__libc_GpFIBLIS->pidParent );
96 LIBCLOG_MSG("prtyCurrent = %08x\n", (unsigned)__libc_GpFIBLIS->prtyCurrent );
97 LIBCLOG_MSG("tidCurrent = %08x\n", (unsigned)__libc_GpFIBLIS->tidCurrent );
98 LIBCLOG_MSG("sgCurrent = %08x\n", (unsigned)__libc_GpFIBLIS->sgCurrent );
99 LIBCLOG_MSG("rfProcStatus = %08x\n", (unsigned)__libc_GpFIBLIS->rfProcStatus );
100 LIBCLOG_MSG("LIS_fillbyte1 = %08x\n", (unsigned)__libc_GpFIBLIS->LIS_fillbyte1 );
101 LIBCLOG_MSG("fFoureground = %08x\n", (unsigned)__libc_GpFIBLIS->fFoureground );
102 LIBCLOG_MSG("typeProcess = %08x\n", (unsigned)__libc_GpFIBLIS->typeProcess );
103 LIBCLOG_MSG("LIS_fillbyte2 = %08x\n", (unsigned)__libc_GpFIBLIS->LIS_fillbyte2 );
104 LIBCLOG_MSG("selEnv = %08x\n", (unsigned)__libc_GpFIBLIS->selEnv );
105 LIBCLOG_MSG("offCmdLine = %08x\n", (unsigned)__libc_GpFIBLIS->offCmdLine );
106 LIBCLOG_MSG("cbDataSegment = %08x\n", (unsigned)__libc_GpFIBLIS->cbDataSegment );
107 LIBCLOG_MSG("cbStack = %08x\n", (unsigned)__libc_GpFIBLIS->cbStack );
108 LIBCLOG_MSG("cbHeap = %08x\n", (unsigned)__libc_GpFIBLIS->cbHeap );
109 LIBCLOG_MSG("hmod = %08x\n", (unsigned)__libc_GpFIBLIS->hmod );
110 LIBCLOG_MSG("selDS = %08x\n", (unsigned)__libc_GpFIBLIS->selDS );
111 LIBCLOG_MSG("LIS_PackSel = %08x\n", (unsigned)__libc_GpFIBLIS->LIS_PackSel );
112 LIBCLOG_MSG("LIS_PackShrSel = %08x\n", (unsigned)__libc_GpFIBLIS->LIS_PackShrSel);
113 LIBCLOG_MSG("LIS_PackPckSel = %08x\n", (unsigned)__libc_GpFIBLIS->LIS_PackPckSel);
114 }
115 LIBCLOG_MSG("__libc_GpFIBGIS=%p\n", (void *)__libc_GpFIBGIS);
116 if (__libc_GpFIBGIS)
117 {
118 LIBCLOG_MSG("SIS_BigTime = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_BigTime );
119 LIBCLOG_MSG("SIS_MsCount = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MsCount );
120 LIBCLOG_MSG("SIS_HrsTime = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_HrsTime );
121 LIBCLOG_MSG("SIS_MinTime = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MinTime );
122 LIBCLOG_MSG("SIS_SecTime = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_SecTime );
123 LIBCLOG_MSG("SIS_HunTime = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_HunTime );
124 LIBCLOG_MSG("SIS_TimeZone = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_TimeZone );
125 LIBCLOG_MSG("SIS_ClkIntrvl = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_ClkIntrvl );
126 LIBCLOG_MSG("SIS_DayDate = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_DayDate );
127 LIBCLOG_MSG("SIS_MonDate = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MonDate );
128 LIBCLOG_MSG("SIS_YrsDate = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_YrsDate );
129 LIBCLOG_MSG("SIS_DOWDate = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_DOWDate );
130 LIBCLOG_MSG("SIS_VerMajor = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_VerMajor );
131 LIBCLOG_MSG("SIS_VerMinor = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_VerMinor );
132 LIBCLOG_MSG("SIS_RevLettr = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_RevLettr );
133 LIBCLOG_MSG("SIS_CurScrnGrp = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_CurScrnGrp );
134 LIBCLOG_MSG("SIS_MaxScrnGrp = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MaxScrnGrp );
135 LIBCLOG_MSG("SIS_HugeShfCnt = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_HugeShfCnt );
136 LIBCLOG_MSG("SIS_ProtMdOnly = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_ProtMdOnly );
137 LIBCLOG_MSG("SIS_FgndPID = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_FgndPID );
138 LIBCLOG_MSG("SIS_Dynamic = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_Dynamic );
139 LIBCLOG_MSG("SIS_MaxWait = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MaxWait );
140 LIBCLOG_MSG("SIS_MinSlice = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MinSlice );
141 LIBCLOG_MSG("SIS_MaxSlice = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MaxSlice );
142 LIBCLOG_MSG("SIS_BootDrv = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_BootDrv );
143 LIBCLOG_MSG("SIS_MaxVioWinSG = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MaxVioWinSG );
144 LIBCLOG_MSG("SIS_MaxPresMgrSG = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MaxPresMgrSG );
145 LIBCLOG_MSG("SIS_SysLog = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_SysLog );
146 LIBCLOG_MSG("SIS_MMIOBase = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MMIOBase );
147 LIBCLOG_MSG("SIS_MMIOAddr = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MMIOAddr );
148 LIBCLOG_MSG("SIS_MaxVDMs = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_MaxVDMs );
149 LIBCLOG_MSG("SIS_Reserved = %08x\n", (unsigned)__libc_GpFIBGIS->SIS_Reserved );
150 }
151 LIBCLOG_RETURN_VOID();
152}
153
Note: See TracBrowser for help on using the repository browser.