Xref: news2.mv.net comp.os.msdos.djgpp:5839 From: Charles Sandmann Newsgroups: comp.os.msdos.djgpp Subject: Re: Catch protection violations? Date: Wed, 10 Jul 1996 20:15:29 CDT Organization: Rice University, Houston, Texas Lines: 29 Message-ID: <31e455b1.sandmann@clio.rice.edu> References: <4rvaqo$a9 AT news2 DOT delphi DOT com> Reply-To: sandmann AT clio DOT rice DOT edu NNTP-Posting-Host: clio.rice.edu To: djgpp AT delorie DOT com DJ-Gateway: from newsgroup comp.os.msdos.djgpp > In djgpp V2., is it possible to write a handler for protection violations? Yes, see signal() docs. If you want more machine info, you can look at __djgpp_exception_state. > movl %eax-2^24, %ebx ; fault if type is not cons Should work OK. > Second question: Is there any control over page protection? Sure, see mprotect(). Must be aligned on 4K pages, so pad and align. But this only will work under a DPMI 1.0 extension provider, like CWSDPMI. Ignored for other providers. > Can I load data at runtime, then set those pages to read-only? Sure. Same routine as above. Rarely used, beware of bugs. Same limitations. > Does Djgpp remember the origin of read-only pages? Since they came from > the executable image file, they don't need to be allocated any > 'backing store' in the page file. They don't need to be written out! Sorry, doesn't work that way in V2. There aren't any read-only pages by default (since most dpmi's don't support them). Humm, actually, I don't think anyone has probably tried paging readonly pages. For all I know, CWSDPMI will puke if you try it. Never tested it, don't remember if I designed for it either...