/*	mms.h - definitions for the Linux/MT Memory Manager System (tm)
 *	(C) 1995 Chad Page
 *
 *	These definitions are *not* arch-specific, although each arch could
 *	have different mms implementations in the same build (for instance,
 *	the 80x86/16bit arch tree could have RealMode, EMS, and DPMI MMS 
 *	handlers...
 */

/* The __hMMS 'structure' is actually a void pointer so any handler can
 * use it's own structure */

typedef void * __hMMS;

struct _mms_globalheapops 
{
	__hMMS _VFUNCTION(init, ());
}; 

typedef _mms_gheapops __MMS_gheapops;
typedef _mms_gheapops __pMMS_gheapops;

/**********************************************************************
    MMS stubs (as defined in mm/mms_stubs.c)
***********************************************************************/

__pmms_info _FUNCPROTO(mms_init, ());
/* memcpy group */
__pvoid _FUNCPROTO(memcpy_tohg, (__hglobal h, __pvoid dest, __pvoid src, __uint len));
__pvoid _FUNCPROTO(memcpy_fromhg, (__hglobal h, __pvoid dest, __pvoid src, __uint len));   
__pvoid _FUNCPROTO(memcpy_ingb, (__hglobal h, __pvoid dest, __pvoid src, __uint len));
__pvoid _FUNCPROTO(memcpy_gbs, (__hglobal ha, __pvoid dest, __hglobal hb, __pvoid src, __uint len));
/* global block group */
__mms_ret _FUNCPROTO(mms_global_alloc, (__uint len, __u16 flags, __phglobal h));
__mms_ret _FUNCPROTO(mms_global_free, (__hglobal block)); 
__mms_ret _FUNCPROTO(mms_global_lock, (__hglobal block, __pvoid *p));



