/* @(#)ex_ltsstrct.h	128.1 1/20/93 19:42:35 */
/************************************************************************\
   Copyright (C) 1990 Lotus Development Corporation.  All rights reserved.
   Name:    ltsstrct.h (External Version)
   Date:    10 Apr 1989
   Description:  Lotus common structure definitions.
\************************************************************************/
#if !defined(LTSSTRCT_H)
#define LTSSTRCT_H
/*********************************************************************/
/*
**       Environment Block
*/
/*t bplmbtyp */
typedef lsshort lmbcs_type;  /* lmbcs dialect types */
#define CSID_LATIN       0x01   /* Code Page 850 */
#define CSID_GREEK       0x02   /* Code Page 851 */
#define CSID_HEBREW      0x03   /* Code Page 862 */
#define CSID_ARABIC      0x04   /* Code Page 864 */
#define CSID_CYRILLIC    0x05   /* Code Page 855 */
#define CSID_JAPANESE    0x10   /* Katakana and Kanji - JS 6226 */
#define CSID_KOREAN      0x11   /* Hanguel and Hanja */
#define CSID_TAIWANESE   0x12   /* Hanzi */
#define CSID_CHINESE     0x13   /* Hanzi */
/*e*/
/*d bpplatyp */
typedef lsshort platform;
/*e*/
/*d bpmemtyp */
typedef lsshort memory_type;
/* memory manager types */
#define NOT_MAPPED     0x8000 /* handles need not be mapped */
#define MUST_MAP       0x4000 /* must be mapped before use */
#define MUST_UNMAP     0x2000 /* must be unmapped after use */
/*e*/
/*t bpenvblk */
#if L_ANSI_C
typedef struct envblk_
     {                         /* environment descriptor block */
     lsshort         envsize;  /* length of environment descriptor */
     platform        pfid;     /* platform identifier */
     lmbcs_type      csid;     /* applications's LMBCS group */
     lsshort         pad;      /* ..for alignment..*/
     lsshort         maps;     /* maximum number of mapped handles */
     memory_type     type;     /* type of memory allocation scheme */
     lmhdl(void)     nulh;     /* null handle value */
     lulong          maxsize;  /* largest block that can be allocated */
     lptr(lmbcs)     applid;   /* application identification string */
     lptr(void)      gabinfo;  /* place for GAB to hand environment info */
     lptr(char)      regfile;  /* name of GAB registration file */
     lexportp(lmhdl(void), get)(lulong,lsshort); /* memory allocator */
     lexportp(lbool, free)(lmhdl(void), lulong); /* memory deallocator */
     lexportp(lptr(void), map)(lmhdl(void), lsshort); /* memory mapper */
     lexportp(void, unmap)(lmhdl(void), lsshort); /* memory unmapper */
     lexportp(lptr(void), alloc) (lulong); /* fixed memory allocator */
     lexportp(lbool, dealloc) (lptr(void),lulong); /* fixed mem dealloc */
     lexportp(lushort, load) (lptr(char),lretarg(lptr(void)),
            lretarg(lptr(void)));             /* module loader */
     lexportp(lushort, unload) (lptr(void));   /* module unloader */
     lexportp(lushort, syscall) (lptr(char));  /* system command shell */
     } envblk;                 /* environment descriptor block */
#else /* !L_ANSI_C */
typedef struct envblk_
     {                               /* environment descriptor block */
     lsshort     envsize;            /* length of environment descriptor */
     platform    pfid;               /* platform identifier */
     lmbcs_type  csid;               /* applications's LMBCS group */
     lsshort     pad;                /* ..for alignment..*/
     lsshort     maps;               /* maximum number of mapped handles */
     memory_type type;               /* type of memory allocation scheme */
     lmhdl(void) nulh;               /* null handle value */
     lulong      maxsize;            /* largest block that can be allocated */
     lptr(lmbcs) applid;             /* application identification string */
     lptr(void)  gabinfo;            /* place for GAB to hand environment info */
     lptr(char)  regfile;            /* name of GAB registration file */
     lexportp(lmhdl(void), get)  (); /* memory allocator */
     lexportp(lbool, free)       (); /* memory deallocator */
     lexportp(lptr(void), map)   (); /* memory mapper */
     lexportp(void, unmap)       (); /* memory unmapper */
     lexportp(lptr(void), alloc) (); /* fixed memory allocator */
     lexportp(lbool, dealloc)    (); /* fixed mem dealloc */
     lexportp(lushort, load)     (); /* module loader */
     lexportp(lushort, unload)   (); /* module unloader */
     lexportp(lushort, syscall)  (); /* system command shell */
     } envblk;                       /* environment descriptor block */
#endif /* L_ANSI_C */
/*e*/
/********************************************************************/
/*
**             END OF FILE
*/
#endif   /* if !defined(LTSSTRCT_H) */
