blob: 3483405858a4f9de4e09e2e22ab9f2094df1a703 (
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
51
52
53
54
55
56
57
58
59
60
61
|
/****************************************************************************
* 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 <H5Tpublic.h>
/* Private headers needed by this file */
#include <H5private.h>
#include <H5Cprivate.h> /*for hobjtype_t defn*/
#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 */
hid_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;
/* Private functions */
herr_t H5T_init(void);
hid_t H5T_create(hid_t owner_id, hobjtype_t type, const char *name);
hbool_t H5T_is_atomic(h5_datatype_t *type);
uintn H5T_size(h5_datatype_t *dt, hbool_t mem_flag);
intn H5T_arch(h5_datatype_t *dt);
herr_t H5T_release(hid_t oid);
#endif
|