X-Git-Url: https://deadsoftware.ru/gitweb?p=flatwaifu.git;a=blobdiff_plain;f=src%2Fmemory.c;h=7089cc5cadb64d31aec69a2ecd8dccc6b518821d;hp=bec045671e5a8f3202cefb02bd7f615cb5913c4d;hb=2b481ae25adcf3bebf37be182eafc8bfa0acb4c1;hpb=a46a1d55c077e3aa91a728047409050187e90083 diff --git a/src/memory.c b/src/memory.c index bec0456..7089cc5 100644 --- a/src/memory.c +++ b/src/memory.c @@ -22,24 +22,16 @@ #include "glob.h" #include #include -#include #include #include "error.h" #include "files.h" #include "memory.h" -dword dpmi_memavl(void); - -extern int d_start,d_end; - -extern mwad_t wad[]; - -static byte m_active=FALSE; - +static byte m_active; static void *resp[MAX_WAD]; static short resl[MAX_WAD]; -void M_startup(void) { +void M_startup (void) { if(m_active) return; logo("M_startup: настройка памяти\n"); memset(resp,0,sizeof(resp)); @@ -48,13 +40,12 @@ void M_startup(void) { m_active=TRUE; } -void M_shutdown(void) { - +void M_shutdown (void) { if(!m_active) return; m_active=FALSE; } -static void allocres(int h) { +static void allocres (int h) { int *p,s; if(h>d_start && h=MAX_WAD) ERR_fatal("M_lock: странный номер ресурса"); if(!resl[h]) if(!resp[h]) allocres(h); ++resl[h]; return resp[h]; } -void M_unlock(void *p) { +void M_unlock (void *p) { int h; if(!p) return; @@ -91,3 +81,11 @@ void M_unlock(void *p) { if(!resl[h]) return; --resl[h]; } + +int M_locked (int h) { + return (h != -1) && (h != 0xFFFF) && (resl[h] != 0); +} + +int M_was_locked (int h) { + return (h != -1) && (h != 0xFFFF) && (resp[h] != NULL); +}