// ------------------------------------------------------------------------
// - ccnf.hpp                                                             -
// - standard platform library - base type configuration                  -
// ------------------------------------------------------------------------
// - This program is free software; you can redistribute it and/or modify -
// - it provided that this copyright notice is kept intact.               -
// -                                                                      -
// - This program is distributed in the hope  that it will be useful, but -
// - without  any  warranty;  without  even  the  implied   warranty   of -
// - merchantability  or  fitness  for  a particular purpose. In no event -
// - shall the  copyright  holder  be  liable  for any  direct, indirect, -
// - incidental or special  damages  arising in any way out of the use of -
// - this software.                                                       -
// -                                                                      -
// - This file was automatically generated by ccnf                        -
// ------------------------------------------------------------------------
// - copyright (c) 1999-2013 amaury darsch                                -
// ------------------------------------------------------------------------

#ifndef  AFNIX_CCNF_HPP
#define  AFNIX_CCNF_HPP

// afnix revision
#define  AFNIX_VERSION_MAJOR      2
#define  AFNIX_VERSION_MINOR      3
#define  AFNIX_VERSION_PATCH      1
#define  AFNIX_VERSION_TOTAL      "2.3.1"

// supported platforms
#define  AFNIX_PLATFORM_UNKNOWN   0
#define  AFNIX_PLATFORM_LINUX     1
#define  AFNIX_PLATFORM_SOLARIS   2
#define  AFNIX_PLATFORM_FREEBSD   3
#define  AFNIX_PLATFORM_DARWIN    4
#define  AFNIX_PLATFORM_GNUKBSD   5
#define  AFNIX_PLATFORM_GNU       6

// supported processors
#define  AFNIX_PROCTYPE_UNKNOWN   0
#define  AFNIX_PROCTYPE_IA32      1
#define  AFNIX_PROCTYPE_SPARC     2
#define  AFNIX_PROCTYPE_ALPHA     3
#define  AFNIX_PROCTYPE_ARM       4
#define  AFNIX_PROCTYPE_PPC       5
#define  AFNIX_PROCTYPE_M68K      6
#define  AFNIX_PROCTYPE_MIPS      7
#define  AFNIX_PROCTYPE_MIPSEL    8
#define  AFNIX_PROCTYPE_PA64      9
#define  AFNIX_PROCTYPE_IA64      10
#define  AFNIX_PROCTYPE_S390      11
#define  AFNIX_PROCTYPE_X64       12
#define  AFNIX_PROCTYPE_SH        13

// recognized processor names
#define  AFNIX_PROCNAME_UNKNOWN   "unknown"
#define  AFNIX_PROCNAME_IA32      "ia32"
#define  AFNIX_PROCNAME_SPARC     "sparc"
#define  AFNIX_PROCNAME_ALPHA     "alpha"
#define  AFNIX_PROCNAME_ARM       "arm"
#define  AFNIX_PROCNAME_PPC       "ppc"
#define  AFNIX_PROCNAME_M68K      "m68k"
#define  AFNIX_PROCNAME_MIPS      "mips"
#define  AFNIX_PROCNAME_MIPSEL    "mipsel"
#define  AFNIX_PROCNAME_PA64      "pa64"
#define  AFNIX_PROCNAME_IA64      "ia64"
#define  AFNIX_PROCNAME_S390      "s390"
#define  AFNIX_PROCNAME_X64       "x64"
#define  AFNIX_PROCNAME_SH        "sh"

// platform definitions
#define  AFNIX_PLATFORM_PLATID    3
#define  AFNIX_PLATFORM_VERSION   9.1
#define  AFNIX_PLATFORM_MAJOR     9
#define  AFNIX_PLATFORM_MINOR     1
#define  AFNIX_PLATFORM_NAME      "freebsd"
#define  AFNIX_PLATFORM_VINFO     "9.1"
#define  AFNIX_PLATFORM_PROCID    1
#define  AFNIX_PLATFORM_PROC      "ia32"
#define  AFNIX_PLATFORM_PTYPE     "generic"

// configuration definitions
#define  AFNIX_LINKTYPE_STATIC    false

// the base nilp pointer definition
#ifndef nilp
#define nilp 0
#endif

namespace afnix {
  // fundamental types of the afnix system
  typedef unsigned char      t_byte;
  typedef unsigned short     t_word;
  typedef unsigned int       t_quad;
  typedef unsigned long long t_octa;
  typedef long long          t_long;
  typedef double             t_real;

  // pointer size type
  typedef unsigned int       t_size;

  // fundamental characters of the afnix system
  const   char     nilc      = 0x00;       // nil character
  const   char     sohc      = 0x01;       // start of heading
  const   char     stxc      = 0x02;       // start of text
  const   char     etxc      = 0x03;       // end of text
  const   char     eosc      = 0x04;       // end of stream
  const   char     bspc      = 0x08;       // backspace
  const   char     delc      = 0x7f;       // delete
  const   char     eolc      = 0x0a;       // end of line
  const   char     crlc      = 0x0d;       // carriage return
  const   char     blkc      = 0x20;       // blank
  const   char     tabc      = 0x09;       // tab

  // fundamental quads of the afnix system
  const   t_quad   nilq      = 0x00000000; // nil quad
  const   t_quad   sohq      = 0x00000001; // start of heading
  const   t_quad   stxq      = 0x00000002; // start of text
  const   t_quad   etxq      = 0x00000003; // end of text
  const   t_quad   eosq      = 0x00000004; // end of stream
  const   t_quad   bspq      = 0x00000008; // backspace
  const   t_quad   delq      = 0x0000007f; // delete
  const   t_quad   eolq      = 0x0000000a; // end of line
  const   t_quad   crlq      = 0x0000000d; // carriage return
  const   t_quad   blkq      = 0x00000020; // blank
  const   t_quad   tabq      = 0x00000009; // tab
}

#endif
