• Main Page
  • Related Pages
  • Modules
  • Data Structures
  • Files
  • File List
  • Globals

/home/pvrabec/project/openscap/openscap-0.6.5/src/OVAL/probes/SEAP/public/sexp-types.h

00001 /*
00002  * Copyright 2009 Red Hat Inc., Durham, North Carolina.
00003  * All Rights Reserved.
00004  *
00005  * This library is free software; you can redistribute it and/or
00006  * modify it under the terms of the GNU Lesser General Public
00007  * License as published by the Free Software Foundation; either
00008  * version 2.1 of the License, or (at your option) any later version.
00009  *
00010  * This library is distributed in the hope that it will be useful,
00011  * but WITHOUT ANY WARRANTY; without even the implied warranty of
00012  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013  * Lesser General Public License for more details.
00014  *
00015  * You should have received a copy of the GNU Lesser General Public
00016  * License along with this library; if not, write to the Free Software
00017  * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
00018  *
00019  * Authors:
00020  *      "Daniel Kopecek" <dkopecek@redhat.com>
00021  */
00022 
00023 #pragma once
00024 #ifndef SEXP_TYPES_H
00025 #define SEXP_TYPES_H
00026 
00027 #include <stdint.h>
00028 #include <seap-debug.h>
00029 
00030 #ifdef __cplusplus
00031 extern "C" {
00032 #endif
00033 
00034 typedef uint8_t SEXP_numtype_t;
00035 
00036 /* Number types */
00037 #define SEXP_NUM_NONE    0x00
00038 #define SEXP_NUM_BOOL    0x01
00039 #define SEXP_NUM_INT8    0x07
00040 #define SEXP_NUM_UINT8   0x08
00041 #define SEXP_NUM_INT16   0x0f
00042 #define SEXP_NUM_UINT16  0x10
00043 #define SEXP_NUM_INT32   0x1f
00044 #define SEXP_NUM_UINT32  0x20
00045 #define SEXP_NUM_INT64   0x3f
00046 #define SEXP_NUM_UINT64  0x40
00047 #define SEXP_NUM_DOUBLE  0x41
00048 
00049 /* Aliases */
00050 
00051 #define SEXP_NUM_BOOLEAN       SEXP_NUM_BOOL
00052 #define SEXP_NUM_CHAR          SEXP_NUM_INT8
00053 #define SEXP_NUM_UCHAR         SEXP_NUM_UINT8
00054 #define SEXP_NUM_SHORTINT      SEXP_NUM_INT16
00055 #define SEXP_NUM_USHORTINT     SEXP_NUM_UINT16
00056 #define SEXP_NUM_SHORTUINT     SEXP_NUM_UINT16
00057 #define SEXP_NUM_INT           SEXP_NUM_INT32
00058 #define SEXP_NUM_LONGINT       SEXP_NUM_INT32
00059 #define SEXP_NUM_UINT          SEXP_NUM_UINT32
00060 #define SEXP_NUM_ULONGINT      SEXP_NUM_UINT32
00061 #define SEXP_NUM_LONGUINT      SEXP_NUM_UINT32
00062 #define SEXP_NUM_LONLONGINT    SEXP_NUM_INT64
00063 #define SEXP_NUM_ULONGLONGINT  SEXP_NUM_UINT64
00064 #define SEXP_NUM_LONGLONGUINT  SEXP_NUM_UINT64
00065 #define SEXP_NUM_FLOAT         SEXP_NUM_DOUBLE
00066 
00067 #if 0
00068 # define NUM_FRACT  0x0a /* Not implemented */
00069 # define NUM_BIGNUM 0x0b /* Not implemented */
00070 #endif
00071 
00072 typedef struct SEXP SEXP_t;
00073 
00074 /* S-expression format */
00075 typedef uint8_t SEXP_format_t;
00076 
00077 #define SEXP_FMT_UNDEFINED  0
00078 #define SEXP_FMT_TRANSPORT  1
00079 #define SEXP_FMT_CANONICAL  2
00080 #define SEXP_FMT_ADVANCED   3
00081 #define SEXP_FMT_AUTODETECT 4
00082 
00083 #include <assert.h>
00084 #ifndef _A
00085 # define _A(x) assert(x)
00086 #endif
00087 
00088 #define SEXP_TYPE_EMPTY  0
00089 #define SEXP_TYPE_STRING 1
00090 #define SEXP_TYPE_NUMBER 2
00091 #define SEXP_TYPE_LIST   3
00092 
00093 typedef uint8_t SEXP_type_t;
00094 
00095 #ifdef __cplusplus
00096 }
00097 #endif
00098 
00099 #endif /* SEXP_TYPES_H */

Generated on Wed Dec 1 2010 for Open SCAP Library by  doxygen 1.7.1