delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/1996/01/21/18:10:17

Xref: news-dnh.mv.net comp.os.msdos.djgpp:4587
From: Charles Sandmann <sandmann AT clio DOT rice DOT edu>
Newsgroups: comp.os.msdos.djgpp
Subject: Re: Problem with locking real mode callbacks in beta4
Date: Sun, 21 Jan 1996 14:56:49 CST
Organization: Rice University, Houston, Texas
Lines: 33
Message-ID: <3102a891.sandmann@clio.rice.edu>
References: <DLJ7n7 DOT HHy AT jade DOT mv DOT net>
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

> I have everything working except my mouse code. This installs a callback 
> routine with the int33 mouse driver, using _go32_dpmi_allocate_real_mode_ \
> callback_retf(); I am convinced that I have locked all the memory ... gormcb.c
> seems to be locking the wrong bits of memory...

A known bug, fixed in the current work in progress (which seems to be destined
to become beta 5).  Beta 4 also doesn't lock the RMCB register structure (that 
was also added in the updated code).  Here is the patch:

*** ../src/libc/go32/gormcb.c	Fri Nov 17 00:24:56 1995
--- gormcb.c	Sun Jan 14 14:29:24 1996
***************
*** 92,96 ****
  	    return 0x8015;				\
  	  }						\
!           if( _go32_dpmi_lock_data( wrapper,            \
              stack_length) ) return 0x8015;              \
  	  ((long *)stack)[0] = STACK_WAS_MALLOCED;	\
--- 92,96 ----
  	    return 0x8015;				\
  	  }						\
!           if( _go32_dpmi_lock_data( stack,              \
              stack_length) ) return 0x8015;              \
  	  ((long *)stack)[0] = STACK_WAS_MALLOCED;	\
***************
*** 102,105 ****
--- 102,107 ----
  
    MALLOC_STACK();
+   if( _go32_dpmi_lock_data(regs, sizeof(__dpmi_regs)))
+     return 0x8015;
  
    *(short *)(wrapper+0x06) = __djgpp_ds_alias;

- Raw text -


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