delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1999/10/22/06:23:24

From: eplmst AT lu DOT erisoft DOT se (Martin Stromberg)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: far call
Date: 22 Oct 1999 07:59:59 GMT
Organization: Ericsson Erisoft AB, Sweden
Message-ID: <7up5hv$p47$1@antares.lu.erisoft.se>
References: <Pine DOT SUN DOT 3 DOT 91 DOT 991021145742 DOT 2684c-100000 AT is>
NNTP-Posting-Host: propus-144.lu.erisoft.se
X-Newsreader: TIN [version 1.2 PL2]
Lines: 26
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

Eli Zaretskii (eliz AT is DOT elta DOT co DOT il) wrote:

: On 21 Oct 1999, Martin Stromberg wrote:

: > How do you request (and perhaps get) a selector for a different
: > ring-level than your own (which in DJGPP is three)?

: See __dpmi_set_descriptor and __dpmi_set_descriptor_access_rights
: (there are also corresponding *get* functions).

: Whether this will work is another question.

: In general, if you want to call code that's higher privilege that your 
: CPL, you need to set up a ``call gate'' and use it to make the privileged 
: call.  But some environments will let you do that in a naive way.

I must be missing something. Suppose I allocate a descriptor and it's
value is 0x103, which means it's a ring-3 descriptor. I then call
one of those two calls above and try to set its ring to 2. If that
call succeed, the descriptor value has changed to 0x102?!!! Or what?
Seems very strange to me.


U2, Boy,

							MartinS

- Raw text -


  webmaster     delorie software   privacy  
  Copyright © 2019   by DJ Delorie     Updated Jul 2019