www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1995/09/28/23:58:03

Xref: news-dnh.mv.net comp.os.msdos.djgpp:2272
Path: news-dnh.mv.net!mv!news.sprintlink.net!in2.uu.net!usenet.eel.ufl.edu!col.hp.com!bubba.ucc.okstate.edu!wizard.uark.edu!engr.engr.uark.edu!alh
From: ALAN L HIGHTOWER <alh AT engr DOT engr DOT uark DOT edu>
Newsgroups: comp.os.msdos.djgpp
Subject: Locking mem under DPMI
Date: Thu, 28 Sep 1995 21:01:04 -0500
Organization: University of Arkansas
Lines: 36
References: <DFLDA9 DOT Hqp AT goodnet DOT com>
Nntp-Posting-Host: engr.engr.uark.edu
To: djgpp AT sun DOT soe DOT clarkson DOT edu
Dj-Gateway: from newsgroup comp.os.msdos.djgpp

Since a lot of different methods have been thrown around reguarding how 
to lock a function under DPMI, I figure I'll through out another idea.

The most mentioned award goes to the

void start_mem( void ) {}

int foobar(...)
     {
     ....
     }

void end_mem( void ) {}

and use the function pointer to start/end_mem to pinpoint the memory 
start and length of the functions that need locking.

But, as pointed out, this method can fail with static functions and with 
optimizations turned on.

Would it be possible since most functions are long word aligned and 
padded with NOP's to take the associated function pointer and scan along 
long word boundaries till you hit an opcode for either a ret or iret?

How reliable is gcc in always generating an .align 4 directive?  and how 
reliable is it in creating functions with branches to a single ret as the 
last opcode (as opposed to multiple rets)?

Last question, is there any reason preventing auto-locking of the 
iret/callback wrappers and interrupt stack space in subsequent compiles 
of libc.a?  It seems that right after the malloc would be the perfect 
place to go ahead and lock it.  For the .beta3 release I went ahead and 
patched the libc sources, are there any side effect I should be aware of?

Thanks, Alan.

- Raw text -


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