www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/09/22/19:21:33

Xref: news-dnh.mv.net comp.os.msdos.djgpp:2137
Path: news-dnh.mv.net!mv!news.sprintlink.net!in2.uu.net!comp.vuw.ac.nz!mu.sans.vuw.ac.nz!empty
From: empty AT sans DOT vuw DOT ac DOT nz (Malcolm Taylor)
Newsgroups: comp.os.msdos.djgpp
Subject: Re: DPMI question
Date: 22 Sep 1995 01:04:17 GMT
Organization: SANS, Student Access Network System
Lines: 23
References: <DEt18B DOT HsB AT jade DOT mv DOT net> <4355ve$hj2 AT news DOT mountain DOT net> <43kpn0$1ji AT magus DOT cs DOT utah DOT edu> <811525224snz AT chocolat DOT demon DOT co DOT uk>
Nntp-Posting-Host: mu.sans.vuw.ac.nz
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Dj-Gateway: from newsgroup comp.os.msdos.djgpp

Paul Shirley (PS AT chocolat DOT demon DOT co DOT uk) wrote:
: larsen AT sunset DOT cs DOT utah DOT edu "Steve Larsen" writes:

: I thought the CPU caches the segment descriptor? If so it would attempt
: to load invalid values during the selector load op.

All a segment register does is point to an entry in the GDT, IDT or LDT 
(hence the name selector as it selects an entry). The CPU has a cache of 
these entries to make execution faster. Without this cache the processor 
would spend all it's time referencing the tables, instead of executing 
the code. Loading a selector with a value will cause the processor to 
lookup the descriptor in the appropriate table. Loading an inappropriate 
value will cause a fault for looking further along the table than 
actually exists.
My advice in this area is to leav deling with the creation of selectors, 
descriptors etc. to the DPMI provider. The DPMI server is guaranteed to 
give a valid value to you.

Hope this helps
Malcolm

: -- 
: Paul Shirley: too lazy to change this sig.

- Raw text -


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