X-Git-Url: https://deadsoftware.ru/gitweb?a=blobdiff_plain;f=src%2Fmemory.c;h=5be719f55d45d1741146a21e3341a5a1d97be3b1;hb=871d5f9b9cba5125dc65e52d6352730b9b650ba7;hp=5c7953cc813ee93a99753ff327c2618352bd54da;hpb=ea7819e2f4224e9a5c9be063f9524c8e67a94c36;p=flatwaifu.git diff --git a/src/memory.c b/src/memory.c index 5c7953c..5be719f 100644 --- a/src/memory.c +++ b/src/memory.c @@ -27,18 +27,11 @@ #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)); @@ -47,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: странный номер ресурса"); @@ -81,7 +73,7 @@ void *M_lock(int h) { return resp[h]; } -void M_unlock(void *p) { +void M_unlock (void *p) { int h; if(!p) return; @@ -90,3 +82,11 @@ void M_unlock(void *p) { if(!resl[h]) return; --resl[h]; } + +int M_locked (int h) { + return (h != -1) && (h != 0xFFFF) && (resl[h & (-1 - 0x8000)] != 0); +} + +int M_was_locked (int h) { + return (h != -1) && (h != 0xFFFF) && (resp[h & (-1 - 0x8000)] != NULL); +}