www.delorie.com/archives/browse.cgi   search  
Mail Archives: djgpp/2002/02/21/11:33:57

X-Authentication-Warning: delorie.com: mailnull set sender to djgpp-bounces using -f
From: "Andrew Fairburn" <a DOT j DOT fairburn AT durham DOT ac DOT uk>
Newsgroups: comp.os.msdos.djgpp
Subject: Allocating memory....
Date: Thu, 21 Feb 2002 14:59:06 -0000
Organization: University of Durham, Durham, UK
Lines: 32
Message-ID: <a531ko$od$1@sirius.dur.ac.uk>
NNTP-Posting-Host: secom189.dur.ac.uk
X-Trace: sirius.dur.ac.uk 1014303192 781 129.234.207.189 (21 Feb 2002 14:53:12 GMT)
X-Complaints-To: usenet AT durham DOT ac DOT uk
NNTP-Posting-Date: Thu, 21 Feb 2002 14:53:12 +0000 (UTC)
X-MimeOLE: Produced By Microsoft MimeOLE V5.50.4133.2400
X-Priority: 3
X-Newsreader: Microsoft Outlook Express 5.50.4133.2400
X-MSMail-Priority: Normal
To: djgpp AT delorie DOT com
DJ-Gateway: from newsgroup comp.os.msdos.djgpp
Reply-To: djgpp AT delorie DOT com

ive been trying to allocate a piece of memory so that both teh host itself
and a pci device reading straight from memory can acces it. Obviously its
not to hard to do this from the host point of view, but i need the real
address of the memory segment and offsets, not virtual, to access it via teh
pci device. At first i was attempting to use the
__dpmi_allocate_linear_memory()  function to get the real addres, then used
a descriptor to get the virtual address for teh host acces.
i.e.

smi.size = 0xfff;            // allocates size of host memory
if ((__dpmi_allocate_linear_memory(&smi, 1)) == -1) {
 printf("out");
 exit(32);
 }
sysaddr = smi.address;           // sets sysaddr to the start of smi memory
sys_sel = __dpmi_allocate_ldt_descriptors (2);  //allocates sys_sel as a
descriptor
__dpmi_set_segment_base_address (sys_sel, smi.address); // sets the base
address of the host memory segment
__dpmi_set_segment_limit (sys_sel, smi.size - 1);       // sets the size of
the host memory segment

Unfortunately i found out this call isnt supported by the windows or cws
dpmi library......

Is there any other way of doing this and/or a way of making this call work??

Thanks for any help,

Andy.


- Raw text -


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