51 lines
1.1 KiB
C
51 lines
1.1 KiB
C
/* Copyright (C) 1992-2001 by Digital Mars. $Revision: 1.1.1.1 $ */
|
|
#if __SC__ || __RCC__
|
|
#pragma once
|
|
#endif
|
|
|
|
#ifndef __PAGE_H
|
|
#define __PAGE_H 1
|
|
|
|
#if __cplusplus
|
|
extern "C" {
|
|
#endif
|
|
|
|
#if __INTSIZE == 4
|
|
#define __BF
|
|
#else
|
|
#define __BF far
|
|
#endif
|
|
|
|
#define __PGOFF sizeof(unsigned short)
|
|
|
|
#pragma pack(1)
|
|
|
|
struct Pageheader
|
|
{
|
|
unsigned short pagesize;
|
|
unsigned short maxsize;
|
|
unsigned short allocp;
|
|
unsigned short bassize;
|
|
unsigned short baslnk;
|
|
};
|
|
|
|
#pragma pack()
|
|
|
|
#define PAGEOVERHEAD sizeof(struct Pageheader)
|
|
|
|
unsigned __cdecl page_calloc(void __BF *baseptr,unsigned size);
|
|
unsigned __cdecl page_malloc(void __BF *baseptr,unsigned size);
|
|
unsigned __cdecl page_realloc(void __BF *baseptr,unsigned p, unsigned nbytes);
|
|
int __cdecl page_free(void __BF *baseptr,unsigned p);
|
|
unsigned __cdecl page_maxfree(void __BF *baseptr);
|
|
unsigned __cdecl page_initialize(void __BF *baseptr,unsigned pagesize);
|
|
#define page_size(baseptr,p) \
|
|
(*(unsigned short __BF *)((char __BF *)(baseptr) + (p) - __PGOFF) - __PGOFF)
|
|
#define page_toptr(baseptr,p) (void __BF *)((char __BF *)(baseptr) + (p))
|
|
|
|
#if __cplusplus
|
|
}
|
|
#endif
|
|
|
|
#endif
|