delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp-workers/2001/08/14/08:31:15

Date: Tue, 14 Aug 2001 15:30:37 +0300
From: "Eli Zaretskii" <eliz AT is DOT elta DOT co DOT il>
Sender: halo1 AT zahav DOT net DOT il
To: djgpp-workers AT delorie DOT com
Message-Id: <2950-Tue14Aug2001153036+0300-eliz@is.elta.co.il>
X-Mailer: Emacs 20.6 (via feedmail 8.3.emacs20_6 I) and Blat ver 1.8.9
CC: acottrel AT ihug DOT com DOT au, pavenis AT lanet DOT lv, sandmann AT clio DOT rice DOT edu
In-reply-to: <3B791F66.22654.6DAEEC@localhost> (pavenis@lanet.lv)
Subject: Re: Selector Exhaustion
References: <3B791F66 DOT 22654 DOT 6DAEEC AT localhost>
Reply-To: djgpp-workers AT delorie DOT com
Errors-To: nobody AT delorie DOT com
X-Mailing-List: djgpp-workers AT delorie DOT com
X-Unsubscribes-To: listserv AT delorie DOT com

> From: pavenis AT lanet DOT lv
> Date: Tue, 14 Aug 2001 12:53:58 +0300
> 
> Here is patch that seems to work both under Win98SE and 
> WinNT 4.0+SP6 (with my test program). I added wrapper procedure
> around original direct_exec_tail() as I think it's easier to debug if 
> needed.

Thanks.

> +   if (is_nt)
> +   {
> +      sel1 = __dpmi_allocate_ldt_descriptors (1);
> +   }
> +   else
> +   {
> +      char * map = desc_map;
> +      for (i=0x0000007; i<0x00010000; i+=8)
> +      {  /* FIXME: Use __dpmi_get_selector_increment_value() instead of 8 ?  */
> +         *map++ = (__dpmi_get_descriptor_access_rights(i) & 0x80) ? 0 : 1;
> +      }
> +   }

I think we need to make sure the else clause doesn't get run on plain
MS-DOS, at least with CWSDPMI.  It's a waste of time in that case.

- Raw text -


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