Date: Tue, 2 Feb 1999 13:15:20 -0500 Message-Id: <199902021815.NAA00632@envy.delorie.com> From: DJ Delorie To: djgpp AT delorie DOT com In-reply-to: <3.0.6.32.19990202124127.00900c10@pop.netaddress.com> (message from Paul Derbyshire on Tue, 02 Feb 1999 12:41:27 -0500) Subject: Re: ASM - function: what should be pushed? References: <86p4sp5i800 DOT fsf AT vesuri DOT Helsinki DOT FI> <3 DOT 0 DOT 6 DOT 32 DOT 19990202124127 DOT 00900c10 AT pop DOT netaddress DOT com> Reply-To: djgpp AT delorie DOT com > What the heck is IOPL-3... a technical term for ring 3? IOPL indicates what ring is allowed unfettered access to I/O ports. It does not mean that you *are* at that ring, it means that *if* you are at that ring or better (lower ring numbers), *then* you can do any I/O. IOPL-3 means that any program (since 3 is the least permissive ring) is able to do any I/O it wants. The OS normally runs in ring 0, so no matter what the IOPL is, it can do I/O. Intel recommends that device drivers run in ring 1 to protect the OS while allowing I/O, yet protecting the drivers from applications, which would run in ring 2 or 3.