Dismiss
InnovationQ will be updated on Sunday, Oct. 22, from 10am ET - noon. You may experience brief service interruptions during that time.
Browse Prior Art Database

Resetting Dirty Bits on OS/2 2.0

IP.com Disclosure Number: IPCOM000120896D
Original Publication Date: 1991-Jun-01
Included in the Prior Art Database: 2005-Apr-02
Document File: 2 page(s) / 47K

Publishing Venue

IBM

Related People

Evans, DH: AUTHOR

Abstract

Disclosed is a procedure which allows system-level debuggers on OS/2* 2.0 to modify any code page without the operating system detecting an error condition when the code page is swapped out or terminated. This is accomplished via resetting dirty bits that indicate that a page has been written to on an Intel 80386 processor. In the detailed description that follows, ASDT32 refers to a system-level debugger for OS/2 2.0. STEP 1

This text was extracted from an ASCII text file.
This is the abbreviated version, containing approximately 100% of the total text.

Resetting Dirty Bits on OS/2 2.0

      Disclosed is a procedure which allows system-level
debuggers on OS/2* 2.0 to modify any code page without the operating
system detecting an error condition when the code page is swapped out
or terminated.  This is accomplished via resetting dirty bits that
indicate that a page has been written to on an Intel 80386 processor.
In the detailed description that follows, ASDT32 refers to a
system-level debugger for OS/2 2.0.
STEP 1

      When ASDT32 is to be exited, it reads the kernel-level stack by
using the system-defined global descriptor table (GDT) selector (SSO)
for that data structure.  SSO can be found in the task state segment
(TSS), which is aliased using the contents of the task register (TR).
The value from the TR can be used as an index into the global
descriptor table where ASDT32 can read the base linear address of the
TSS.  Once the TSS is aliased, ASDT32 can read and use SSO to
reference the kernel-level stack.  See Fig. 1.
STEP 2

      ASDT32 then reads the kernel-level stack at a specified offset
(label this TSKPGOFF for reference) to obtain a linear address alias
to the current task's page tables (PTs).  Using the alias at
TSKPGOFF, ASDT32 can then read/write all page table entries (PTEs)
for the current task.  When a PTE indicates that a PT for the current
task is both present and read-only, ASDT32 ensures that the dirty bit
is off in that PTE.  See Fig. 2.
*  Trademark of IBM Corp.