1 | /* $Id: DEVINFO.H,v 1.1.1.1 2003/07/02 13:56:58 eleph Exp $ */
|
---|
2 | /*
|
---|
3 | * OS/2 definitions for logal and global info segments
|
---|
4 | *
|
---|
5 | * (C) 2000-2002 InnoTek Systemberatung GmbH
|
---|
6 | *
|
---|
7 | * This program is free software; you can redistribute it and/or
|
---|
8 | * modify it under the terms of the GNU General Public License as
|
---|
9 | * published by the Free Software Foundation; either version 2 of
|
---|
10 | * the License, or (at your option) any later version.
|
---|
11 | *
|
---|
12 | * This program is distributed in the hope that it will be useful,
|
---|
13 | * but WITHOUT ANY WARRANTY; without even the implied warranty of
|
---|
14 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
---|
15 | * GNU General Public License for more details.
|
---|
16 | *
|
---|
17 | * You should have received a copy of the GNU General Public
|
---|
18 | * License along with this program; if not, write to the Free
|
---|
19 | * Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139,
|
---|
20 | * USA.
|
---|
21 | *
|
---|
22 | */
|
---|
23 |
|
---|
24 |
|
---|
25 | // Prevent multiple inclusion
|
---|
26 | #if !defined(DevInfo_h)
|
---|
27 | #define DevInfo_h 1
|
---|
28 |
|
---|
29 | // Include the fundamental type definitions
|
---|
30 | #include "DevType.h"
|
---|
31 |
|
---|
32 |
|
---|
33 | // Global (per-system) information segment
|
---|
34 | struct GINFO
|
---|
35 | {
|
---|
36 | WORD32 Time; // Time in seconds since 1970.01.01
|
---|
37 | WORD32 MilliSeconds; // Time in milliseconds
|
---|
38 | BYTE Hour; // Current hour
|
---|
39 | BYTE Minute; // Current minute
|
---|
40 | BYTE Second; // Current second
|
---|
41 | BYTE Hundredth; // Current hundredth of a second
|
---|
42 | WORD16 Timezone; // Minutes from UTC (Greenwich mean-time)
|
---|
43 | WORD16 Interval; // Timer interval (tenths of milliseconds)
|
---|
44 | BYTE Day; // Current day of month
|
---|
45 | BYTE Month; // Current month
|
---|
46 | WORD16 Year; // Current year
|
---|
47 | BYTE Weekday; // Current day of week (0 = Sunday, 6 = Saturday)
|
---|
48 | BYTE MajorVersion; // Major version number of OS/2
|
---|
49 | BYTE MinorVersion; // Minor version number of OS/2
|
---|
50 | BYTE Revision; // Revision letter of OS/2
|
---|
51 | BYTE CurrentSession; // Current foreground full-screen session ID
|
---|
52 | BYTE MaxSessions; // Maximum number of full-screen sessions
|
---|
53 | BYTE HugeShift; // Shift count for huge segments
|
---|
54 | BYTE ProtectFlag; // 1 = protected mode only, 0 = mixed mode
|
---|
55 | WORD16 ForegroundPID; // Process ID of the current foreground process
|
---|
56 | BYTE DynamicFlag; // 1 = dynamic variation enabled, 0 = disabled
|
---|
57 | BYTE MaxWaitTime; // Maximum wait to get control (seconds)
|
---|
58 | WORD16 MinTimeSlice; // Minimum time slice length (milliseconds)
|
---|
59 | WORD16 MaxTimeSlice; // Maximum time slice length (milliseconds)
|
---|
60 | WORD16 BootDrive; // ID of system startup drive (1 = A:, 26 = Z:)
|
---|
61 | BYTE Trace[32]; // System tracing flags (RAS)
|
---|
62 | BYTE MaxVIOSessions; // Maximum number of VIO (windowed) sessions
|
---|
63 | BYTE MaxPMSessions; // Maximum number of PM sessions
|
---|
64 | WORD16 ErrorLog; // Error logging status
|
---|
65 | WORD16 RASSelector; // RAS memory mapped IO selector
|
---|
66 | WORD32 RASAddress; // RAS memory mapped IO address
|
---|
67 | BYTE MaxVDMSessions; // Maximum number of virtual DOS machines
|
---|
68 | };
|
---|
69 |
|
---|
70 | // Local (per-process) information segment
|
---|
71 | struct LINFO
|
---|
72 | {
|
---|
73 | WORD16 ProcessID; // Current process ID
|
---|
74 | WORD16 ParentID; // Current process' parent's PID
|
---|
75 | WORD16 Priority; // Current thread's priority
|
---|
76 | WORD16 ThreadID; // Current thread ID
|
---|
77 | WORD16 SessionID; // Current session ID
|
---|
78 | BYTE Status; // Process status
|
---|
79 | BYTE Unused1; // Unused
|
---|
80 | WORD16 ForegroundFlag; // Current process has keyboard focus
|
---|
81 | BYTE Type; // Type of process (0 = FS, 1 = real, 2 = VIO,
|
---|
82 | BYTE Unused2; // 3 = PM, 4 = detached)
|
---|
83 | WORD16 EnvSelector; // Selector for environment
|
---|
84 | WORD16 CommandLineOff; // Offset of command line in EnvironmentSel
|
---|
85 | WORD16 DSLength; // Length of data segment
|
---|
86 | WORD16 StackSize; // Size of stack (bytes)
|
---|
87 | WORD16 HeapSize; // Size of heap (bytes)
|
---|
88 | WORD16 Module; // Module handle
|
---|
89 | WORD16 DSSelector; // Selector for data segment
|
---|
90 | };
|
---|
91 |
|
---|
92 |
|
---|
93 | #endif // DevInfo_h
|
---|