/*
 *    PROJECT:      DVS
 *    SUBSYSTEM:    vl
 *    MODULE:       divtypes.h
 *
 *    File:         $RCSfile: divtypes.h,v $
 *    Revision:     $Revision: 2.11 $
 *    Date:         $Date: 1995/05/18 09:36:22 $
 *    Author:       $Author: jeff $
 *    RCS Ident:    $Id: divtypes.h,v 2.11 1995/05/18 09:36:22 jeff beta $
 *
 *    FUNCTION:
 *
 *      This file contains standard type definitions used by all higher
 *      levels in the system.
 *
 * Copyright (c) 1994 Division Ltd.
 *
 * All Rights Reserved.
 *
 * This Document may not, in whole or in part, be copied,
 * photocopied, reproduced, translated, or reduced to any
 * electronic medium or machine readable form without prior
 * written consent from Division Ltd.
 */
#ifndef _DIVTYPES_H
#define _DIVTYPES_H

#ifdef __cplusplus
extern "C" {
#endif

/*
 * mangle the divtypes.def file to get machine specific low level
 * definitions for all our basic types.
 */
#define DEF_TYPE(a,b,c) typedef c b;
#include <dsys/divtypes.def>
#undef DEF_TYPE

///*
// * generate an enum list of all the symbolic values for the types.
// */
//#define DEF_TYPE(a,b,c) a,
typedef enum  dpDivType {
//#include <dsys/divtypes.def>
LAST_TYPE
} dpDivType;
//#undef DEF_TYPE
#define BASIC_TYPE_CNT ((int)LAST_TYPE)

/*
 * A structure to define the names etc of the basic types for internal
 * use. 
 */
typedef struct dpTypeSpec{
    char8   endian16[3];
    char8   endian32[5];
    struct {
        char8  *name;
        uint32  size;
        uint32  alignment;
    }Sizes[BASIC_TYPE_CNT];
} dpTypeSpec;

extern void dpGenDivTypes(dpTypeSpec *spec);

#ifdef __cplusplus
}
#endif
#endif /* _DIVTYPES_H */


