summaryrefslogtreecommitdiffstats
path: root/src/H5Tprivate.h
blob: 02247253035ca41666af263d09462c6c3e81425f (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
/****************************************************************************
 * NCSA HDF                                                                 *
 * Software Development Group                                               *
 * National Center for Supercomputing Applications                          *
 * University of Illinois at Urbana-Champaign                               *
 * 605 E. Springfield, Champaign IL 61820                                   *
 *                                                                          *
 * For conditions of distribution and use, see the accompanying             *
 * hdf/COPYING file.                                                        *
 *                                                                          *
 ****************************************************************************/

/* $Id$ */

/*
 * This file contains private information about the H5T module
 */

#ifndef H5TPRIVATE_H
#define H5TPRIVATE_H

#include "H5Tproto.h"
#define H5T_RESERVED_ATOMS  8

/* Structure for storing information about a field in a compound datatype */
typedef struct {
    char *name;         /* Name of the field */
    uintn name_off;     /* Offset of name in global small-data heap */
    uintn struct_off;   /* Offset of field within structure */
    h5_atomic_type_t dt;  /* Datatype of the field */
    hatom_t dim_id;     /* dimensionality ID of the field */
  } h5_field_info_t;

/* Structure for storing information about a compound datatype */
typedef struct {
    uintn n;            /* Number of fields */
    uintn mem_size;     /* Size of the compound structure in memory */
    uintn disk_size;    /* Size of the compound structure on disk */
    h5_field_info_t *flist;   /* List of fields in the compound object */
  } h5_compound_info_t;

/* Structure for storing information any datatype */
typedef struct {
    h5_atomic_type_t  dt;     /* Base type of this object */
    char *name;               /* Name of datatype */
    h5_compound_info_t *ci;   /* Information for compound datatypes */
  } h5_datatype_t;

#endif /* H5TPRIVATE_H */