🚀 go-pugleaf

RetroBBS NetNews Server

Inspired by RockSolid Light RIP Retro Guy

Article View: de.comp.sys.amiga.tech
Article #4466

wie programmiert man low memory handler?

#4466
From: Joerg Kollmann
Date: Wed, 27 Mar 1996 12:29
44 lines
1642 bytes
Hallo Allerseits,

ich probiere gerade mit einem low memory-handler und habe das Problem, dass er
offenbar nicht tut, was er soll, naemlich Speicher freigeben. Falls sich jemand
damit auskennt und mir mal verraten koennte, wie es richtig ist und ob ich
MEM_TRY_AGAIN, MEM_ALL_DONE und MEM_DID_NOTHING richtig eingesetzt habe, waere
mir sehr geholfen.

In is_Data wird ein Array mit 10 vorher allokierten Bloecken zu je 1MB
uebergeben, das Hauptprogramm wartet nur noch auf CTRL_C.
Die Interrupt-Struktur wird mit
struct Interrupt lowInt = {NULL,NULL,NT_INTERRUPT,0,"LowHandler",pool,lowHandler};
initialisiert.
/* GCC */
int lowHandler()
{
  register struct MemHandlerData *mhd asm("a0");
  register APTR *data asm("a1");
  int i;
  APTR h;

  if((mhd->memh_RequestFlags & ~MEMF_CHIP) &&
     (mhd->memh_RequestSize<=maxmem(data)))
  {
    i=0;
    while((i<10) && (data[i]==NULL)) i++;
    if((i<10) && (data[i]))
    {
      h=data[i];
      data[i]=NULL;
      FreeMem(h,1024*1024);
      if(maxmem(data)>0)
        return MEM_TRY_AGAIN;
      else
        return MEM_ALL_DONE;
    }
  }
  return MEM_DID_NOTHING;
}

Vielen Dank im vorraus,
        Joerg
---
joergk@informatik.uni-bremen.de
Technical Details
Message-ID: <4jbcbd$8li@gina.zfn.uni-bremen.de>
Path: arc1-ca.pugleaf.net!gina.zfn.uni-bremen.de!waigel!joergk

Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!gina.zfn.uni-bremen.de!waigel!joergk
From: joergk@waigel.informatik.uni-bremen.de (Joerg Kollmann)
Newsgroups: de.comp.sys.amiga.tech
Subject: wie programmiert man low memory handler?
Date: 27 Mar 1996 12:29:33 GMT
Organization: Universitaet Bremen
Message-ID: <4jbcbd$8li@gina.zfn.uni-bremen.de>
NNTP-Posting-Host: waigel-bb.informatik.uni-bremen.de
X-Newsreader: TIN [version 1.2 PL2]