#ifndef __INC_POS_PDOS_VAR_H
#define __INC_POS_PDOS_VAR_H
/*******************************************************************
 Includes Release 24
 (C) Copyright 1995-1997 proDAD
     All Rights Reserved

 $AUT Holger Burkarth
 $DAT >>Var.h<<   12 Sep 1996    09:59:00 - (C) ProDAD
*******************************************************************/
#ifndef __INC_POS_PEXEC_LIST_H
#include <pExec/List.h>
#endif

/*----------------------------------
-----------------------------------*/
struct pOS_LocalVar
{
  struct pOS_ExNode lv_Node;
                       /* lv_Node.ln_Type (enum pOS_LocalVarType) */
                       /* The lv_Node.lv_Flags bits are available to the application. */
                       /* lv_Node.ln_Pri bits are reserved for system use */
  UWORD      lv_Flags; /* (enum pOS_LocalVarFlags) */
  UBYTE     *lv_Value;
  size_t     lv_Len;
  CHAR       lv_Name[1];
};


enum pOS_LocalVarType
{
  LOCALVAR_Var=0,         /* an variable */
  LOCALVAR_Alias,         /* an alias */

  LOCALVAR_TypeMask = 0x7f,

/* to be or'ed into type: */
  LOCALVARB_Ignore=7,     /* ignore this entry on GetVar, etc */
  LOCALVARF_Ignore=0x80
};




enum pOS_LocalVarFlags
{
  GVARB_GlobalOnly=      8,
  GVARF_GlobalOnly=      0x100,
  GVARB_LocalOnly=       9,
  GVARF_LocalOnly=       0x200,
  GVARB_BinaryVar=       10,      /* treat variable as binary */
  GVARF_BinaryVar=       0x400,
  GVARB_DontNullTerm=    11,      /* only with GVF_BINARY_VAR */
  GVARF_DontNullTerm=    0x800,

/* this causes SetVar to affect ENVARC: as well as ENV:.        */
  GVARB_SaveVar=         12,      /* only with GVF_GLOBAL_VAR */
  GVARF_SaveVar=         0x1000
};

#endif
