How to Use the SMP Programming Addendum
Introduction to OS/2 Warp Server Version 4 Advanced
What's New Since OS/2 for SMP 2.11
Exploiting SMP-Specific Features
Notation Conventions
Conventions Used in Function Descriptions
Error Severities
Header Files
Addressing Elements in Arrays
Implicit Pointer Data Types
Storage Mapping of Data Types
Double-Byte Character Set (DBCS)
C++ Considerations
C++ Header Files
LINK386
Platform Specific Drivers (PSDs)
Platform Specific Driver Architecture and Structure
OS/2 Initialization
PSD Function Glossary
PSD Functions
PSD_INSTALL
PSD_DEINSTALL
PSD_INIT
PSD_PROC_INIT
PSD_START_PROC
PSD_GET_NUM_OF_PROCS
PSD_GEN_IPI
PSD_END_IPI
PSD_PORT_IO
PSD_IRQ_MASK
PSD_IRQ_REG
PSD_IRQ_EOI
PSD_APP_COMM
PSD_SET_ADV_INT_MODE
PSD Helps
PSDHLP_VMALLOC
PSDHLP_VMFREE
PSDHLP_SET_IRQ
PSDHLP_CALL_REAL_MODE
PSDHLP_VMLINTOPHYS
Application Programming Interface
DosTestPSD
High Memory Support
VIRTUALADDRESSLIMIT Parameter in CONFIG.SYS
New OBJ_ANY Memory Attribute
Implementation Details
High Memory Support Functions
DosAllocMem
DosAllocSharedMem
DosQuerySysInfo
Raw File System
Programming Recommendations
DosClose
DosDevIOCtl
DosListIO
DosOpen
DosPhysicalDisk
DosRead
DosSetFilePtr
DosWrite
Processor Management and Performance Functions
DosGetProcessorStatus
DosPerfSysCall
DosQuerySysInfo
DosSetProcessorStatus
Application Considerations
Application Compatibility Requirements
Device Drivers In OS/2 Warp Server for SMP
New Device Helper (DevHlp) Routines
DevHlp_PerfSysTrace
DevHlp_SetIRQMask
DevHlp_GetIRQMask
Virtual Device Driver Helps
VDHPortIO
Kernel Debugger
New and Changed Commands
KDB Communications Protocol
Raw Mode
Packet Mode
Packet Format
Packet Header Format
Packet Data Format
Maximum Packet Size
General Considerations
Kernel Debugger Packet Responses
Events Reported by the Kernel Debugger
CVK_RET_GPF Events
CVK_RET_TBT Event
CVK_RET_BPT Event
CVK_RET_NMI Event
CVK_RET_SUC Event
CVK_RET_ASYNC Event
CVK_RET_LIB and CVK_RET_KIL Events
CVK_RET_TNEW and CVK_RET_TEND Events
CVK_RET_PAGEIN Events
Kernel Debugger Packet Commands
Read Memory (CVK_CMD_RMEM)
Read Registers (CVK_CMD_RREG)
Write Memory (CVK_CMD_WMEM)
Write Registers (CVK_CMD_WREG)
Resume Execution (CVK_CMD_RUN)
Reboot Victim (CVK_CMD_KILL)
Single Step (CVK_CMD_STEP)
Get Object/Segment Information (CVK_CMD_NUMTOBASE)
Get Module Information (CVK_CMD_LIBNAME)
Perform Kernel Debugger Command (CVK_CMD_RAW)
Get Selector Information (CVK_CMD_DBIT)
Range Step (CVK_CMD_RSTEP)
Scan Module Table (CVK_CMD_SCANMTE)
Scan Thread Control Blocks (CVK_CMD_SCANTCB)
Convert Selector:Offset to Linear Address (CVK_CMD_SEL2LIN)
Convert Linear Address to Selector:Offset (CVK_CMD_LIN2SEL)
Get Number of Objects/Segments in Module (CVK_CMD_OBJCOUNT)
Scan Object/Segment Table (CVK_CMD_SCANOBJ)
Get Selector Information (CVK_CMD_SELINFO)
Read NPX Information (CVK_CMD_RNPX)
Write NPX Information (CVK_CMD_WNPX)
Enable Optional Features (CVK_CMD_ENA)
Disable Optional Features (CVK_CMD_DIS)
Register for PAGEIN Notification (CVK_CMD_PIREG)
Deregister for PAGEIN Notification (CVK_CMD_PIDRG)
Scan Processor Control Blocks (CVK_CMD_SCANPCB)
The ICAT Debugger
What is the ICAT Debugger
Before You Begin
Hardware Requirements
Software Requirements
Compiling and Linking Your Program
Setting Environment Variables
Finding Source Files
Limitations
Helpful Tips and Hints
When Things Go Wrong
Using the Demo
Getting Started
Starting the Debugger from OS/2
Using the Initialization Window
Ending the Debugging Session
Frequently Used Features of the Debugger
Using the Tool Buttons
Executing a Program
Setting Breakpoints
Introducing the Main Debugging Windows
Using the Debug Session Control Window
File Menu Choices
Open new source...
Find function...
Where is execution point
Save thread list in file
Save component list in file
Initialization...
Close debugger
Breakpoints Menu Choices
Set line...
Set function...
Set address...
Set watchpoint...
Set load occurrence...
List
Delete All
Monitors Menu Choices
Run Menu Choices
Run
Halt
Hide Debugger on Run
Options Menu Choices
Window settings->
Debugger settings->
Debugger properties...
Monitor properties...
Default data representation->
Program profiles->
Save debugger window positions
Global font change
Enable window cascading
Display tool buttons
Display hover help
Display infoarea
Display tool buttons on title bar
Windows Menu Choices
Help Menu Choices
Using the Source Windows
File Menu Choices
View Menu Choices
Find Window
Find next
Scroll to line number...
Select include file
Change text file
Source
Disassembly
Mixed
Breakpoints Menu Choices
Monitors Menu Choices
Monitor expression...
Call stack
Registers
Storage
Local variables
Passthru
Run Menu Choices
Step over
Step into
Step debug
Step return
Run
Halt
Run to location
Jump to location
Hide Debugger on Run
Options Menu Choices
Window settings->
Debugger settings->
Windows Menu Choices
Help Menu Choices
Introducing the Other Debugging Windows
Using the Call Stack Window
File Menu Choice
Options Menu Choices
Fonts...
Display style...
Restore defaults
Tool buttons
Hover help
Infoarea
Windows Menu Choices
Help Menu Choices
Using the Registers Window
File Menu Choices
Options Menu Choice
Fonts...
Display style...
Restore defaults
Tool buttons
Hover help
Infoarea
Windows Menu Choices
Help Menu Choices
Using the Storage Window
File Menu Choice
Options Menu Choices
Fonts...
Display style...
Fill Storage...
Monitor expression...
Restore defaults
Tool buttons
Hover help
Infoarea
Windows Menu Choices
Help Menu Choices
Using the Local Variables Window
File Menu Choice
Edit Menu Choices
Delete
Select all
Deselect all
Other elements...
Representation->
Copy to clipboard
Save window in file
Options Menu Choices
Fonts...
Restore defaults
Show context
Tool buttons
Hover help
Infoarea
Windows Menu Choices
Help Menu Choices
Using the Passthru Window
REXX Command Files
File Menu Choice
Edit Menu Choices
Edit
Delete
Delete all
Find
Find Next
Options Menu Choices
Fonts...
Display style...
Restore defaults
Add custom tool buttons
Tool buttons
Hover help
Infoarea
Windows Menu Choices
Help Menu Choices
Using the Monitor Windows
Using the Breakpoints List Window
File Menu Choice
Edit Menu Choices
Delete
Disable
Modify
Delete all
Disable all
Enable all
Set Menu Choices
Options Menu Choices
Fonts...
Display style...
Sort
Restore defaults
Tool buttons
Hover help
Infoarea
Windows Menu Choices
Help Menu Choices
Expressions Supported
Supported Expression Operands
Supported Expression Operators
Supported Data Types
Software Trace Facility (STRACE)
STRACE Overview
STRACE Syntax
STRACE Arguments
STRACE Options
STRACE Command Examples
Sample Use of STRACE
STRACE POST Processing
STRACE ASCII Dump Format
Hook Types
Timer high order 32 bits change hook (SFT_HOOK_TIMEHI)
Startup Hook (SFT_HOOK_STARTUP)
Module Table Entry Hook (SFT_HOOK_MTE)
Hook logging 1 32-bit value
Hook logging 4 32-bit values
Hook logging 3 2-byte buffers
STRACE MTE Dump Format
Differences Between TRACE and STRACE
OS/2 Trace Facility
How STRACE is Different
System Trace Hook Definitions
Exceptions and Interrupts
Dos Functions - 1 of 12
Dos Functions - 2 of 12
Dos Functions - 3 of 12
Dos Functions - 4 of 12
Dos Functions - 5 of 12
Dos Functions - 6 of 12
Dos Functions - 7 of 12
Dos Functions - 8 of 12
Dos Functions - 9 of 12
Dos Functions - 10 of 12
Dos Functions - 11 of 12
Dos Functions - 12 of 12
DevHlp Functions - 1 of 2
DevHlp Functions - 2 of 2
Kbd Functions
Mouse Functions
VIO Functions
Miscellaneous Kernel Functions
VDH Functions
Vpic, WinOS2 and STRACE Functions
Hooks Reserved for Customer Use
View and Set Program Type For Executable File (MARKEXE)
Command-Line Syntax
Syntax Definitions
Viewing Program Type
Setting Program Type
Requirements for Multi-Processing
Data Types
AddrS
APIRET
BIOSPARAMETERBLOCK
BOOL
BOOL32
BYTE
CHAR
CPUUTIL
cvkcmd_s
DosDebug Buffer
DTR
DWORD
EAOP2
EASIZEBUF
ERRORID
EXCEPTIONREGISTRATIONRECORD
EXCEPTIONREPORTRECORD
FATTRS
FDATE
FEA2
FEA2LIST
FHLOCK
FILEFINDBUF
FILEFINDBUF3
FILEFINDBUF4
FILELOCK
FILESTATUS
FILESTATUS3
FILESTATUS4
FPREG
FRAME
FSALLOCATE
FSINFO
FSQBUFFER2
FTIME
GEA2
GEA2LIST
HDC
HDIR
HEV
HFILE
HKBD
HMODULE
HMTX
HMUX
HOOKDATA
HOTKEY
HPIPE
HQUEUE
HRGN
HSEM
HSPINLOCK
HTIMER
HVDD
LISTIO
LONG
PCH
PCSZ
PFHLOCK
PFN
PFNEXITLIST
PFNSIGHANDLER
PFNTHREAD
PIB
PID
PIPEINFO
PSZ
PVOID
QWORD
RegSA_struc
REQUESTDATA
RESULTCODES
SEL
SEMRECORD
SFTSTARTUP
SHORT
STATUSDATA
STRINGINBUF
TIB
TIB2
TID
TRACKLAYOUT
UCHAR
ULONG
USHORT
VOID
VOLUMELABEL
WORD
Errors
Generic IOCtl Commands
Category 08h Logical Disk Control IOCtl Commands
DSK_LOCKDRIVE (00h) - Lock Drive
DSK_UNLOCKDRIVE (01h) - Unlock Drive
DSK_REDETERMINEMEDIA (02h) - Redetermine Media
DSK_SETLOGICALMAP (03h) - Set Logical Map
DSK_BEGINFORMAT (04h) - Begin Format
DSK_BLOCKREMOVABLE (20h) - Block Removable
DSK_GETLOGICALMAP (21h) - Query Logical Map
DSK_UNLOCKEJECTMEDIA (40h) - Removable Media Control
DSK_SETDEVICEPARAMS (43h) - Set Device Parameters
DSK_WRITETRACK (44h) - Write Logical Track
DSK_FORMATVERIFY (45h) - Format and Verify Track
DSK_DISKETTECONTROL (5Dh) - Diskette Control
DSK_QUERYMEDIASENSE (60h) - Query Media Sense
DSK_GETDEVICEPARAMS (63h) - Query Device Parameters
DSK_READTRACK (64h) - Read Logical Track
DSK_VERIFYTRACK (65h) - Verify Logical Track
DSK_GETLOCKSTATUS (66h) - Status
Category 09h Physical Disk Control IOCtl Commands
PDSK_LOCKPHYSDRIVE (00h) - Lock Physical Drive
PDSK_UNLOCKPHYSDRIVE (01h) - Unlock Physical Drive
PDSK_WRITEPHYSTRACK (44h) - Write Physical Track
PDSK_GETPHYSDEVICEPARAMS (63h) - Query Physical Device Parameters
PDSK_READPHYSTRACK (64h) - Read Physical Track
PDSK_VERIFYPHYSTRACK (65h) - Verify Physical Track
Sample Source Code for a PSD
Main program
Entry stub
PSD.H
Specific header
Makefile
Comments, Please!
Glossary
Notices
Copyright Notices
Disclaimers
Trademarks