/* Definitions for drw os fn. */

#ifndef drwosh_H
 #define drwosh_H

#ifndef types_H
 #include "OSlib/types.h"
#endif

#ifndef os_H
 #include "OSlib/os.h"
#endif

#ifndef osargs_H
 #include "OSlib/osargs.h"
#endif

#ifndef osfind_H
 #include "OSlib/osfind.h"
#endif

#ifndef osfile_H
 #include "OSlib/osfile.h"
#endif

#ifndef osfscontrol_H
 #include "OSlib/osfscontrol.h"
#endif

#ifndef fileswitch_H
 #include "OSlib/fileswitch.h"
#endif

#ifndef osgbpb_H
 #include "OSlib/osgbpb.h"
#endif

#include "DRW/drwGPdef.h"

#ifndef drw_swix_H
 #include "DRW/drwswix.h"
#endif

#if defined NAMESPACE_DRWIMPC
  namespace DrWimpC {
#endif

#if defined NAMESPACE_OSLIB
  using namespace OSLib;
#endif

#if defined NAMESPACE_OSLIB
  using namespace OSLib;
#endif

#define drw_num_convert_buff_size      40

#ifndef BITS_IN_LONG
 #define BITS_IN_LONG (sizeof(unsigned long) * (size_t) 8)
#endif

/* Flag word width in bytes */
#ifndef FLAGWDWIDTH
 #define FLAGWDWIDTH 4
#endif

/* Number of flag words per 1 word of store. */
#ifndef NUMFLAGWDS
 #define NUMFLAGWDS ((int) sizeof(bits) / FLAGWDWIDTH)
#endif


typedef enum {

DRW_OS_VER_LOOK_UP_FAILED = 1,
DRW_GET_FILE_STAMP_ERROR

} drw_os_error_numbers;

typedef enum {

DRW_DA_LOC_DA = 0,
DRW_DA_LOC_RMA = 1,
DRW_DA_MALLOC = 2

} drw_da_type;

typedef bits drw_throwback_flags;

#define drw_throwbackstart                 ((drw_throwback_flags) 0x1u)
#define drw_throwback                      ((drw_throwback_flags) 0x2u)

#define drw_file_stamp_msb_mask            ((bits) 0xff)
#define drw_time_stamp_msb_shift           24

#define drw_log_name_lim                   10
#define drw_max_log_msg_len                1023

#define drw_min_log_level                  0
#define drw_max_log_level                  255

typedef bits drw_log_msg_flags;

#define drw_log_flags_none                 ((drw_log_msg_flags) 0x0u)
#define drw_log_flags_msg_logged_ok        ((drw_log_msg_flags) 0x1u)
#define drw_log_flags_no_module            ((drw_log_msg_flags) 0x2u)
#define drw_log_flags_no_msg               ((drw_log_msg_flags) 0x4u)
#define drw_log_flags_name_too_long        ((drw_log_msg_flags) 0x8u)
#define drw_log_flags_msg_too_big          ((drw_log_msg_flags) 0x10u)
#define drw_log_flags_loglevel_too_low     ((drw_log_msg_flags) 0x20u)
#define drw_log_flags_loglevel_too_high    ((drw_log_msg_flags) 0x40u)

typedef enum

{
 drw_log_EMERGENCY   = 20,
 drw_log_ALERT       = 30,
 drw_log_CRITICAL    = 40,
 drw_log_ERROR       = 60,
 drw_log_WARNING     = 80,
 drw_log_NOTICE      = 100,
 drw_log_INFORMATION = 150,
 drw_log_DEBUG       = 200

} drw_log_LEVEL;


#if defined NAMESPACE_DRWIMPC
  }
#endif

#include "DRW/drwSysvar.h"
#include "DRW/drwosfn.h"

#endif

/* End of drw os definitions. */


