| 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
|
|---|