1/*********************************************************************
2 *   Copyright 1993, UCAR/Unidata
3 *   See netcdf/COPYRIGHT file for copying and redistribution conditions.
4 *********************************************************************/
5#ifndef ALIGN_H
6#define ALIGN_H 1
7
8typedef struct NCtypealignment {
9    char* typename;
10    int alignment;
11NCtypealignment;
12
13/* Define indices for every primitive C type */
14/* NAT => NOT-A-TYPE*/
15#define NCCTYPENAT       0
16#define NCCTYPECHAR      1
17#define NCCTYPEUCHAR     2
18#define NCCTYPESHORT     3
19#define NCCTYPEUSHORT    4
20#define NCCTYPEINT       5
21#define NCCTYPEUINT      6
22#define NCCTYPELONG      7
23#define NCCTYPEULONG     8
24#define NCCTYPELONGLONG  9
25#define NCCTYPEULONGLONG 10
26#define NCCTYPEFLOAT     11
27#define NCCTYPEDOUBLE    12
28#define NCCTYPEPTR       13
29#define NCCTYPENCVLEN    14
30
31/* Capture in struct and in a vector*/
32typedef struct NCtypealignset {
33    NCtypealignment charalign;   /* char*/
34    NCtypealignment ucharalign;   /* unsigned char*/
35    NCtypealignment shortalign;   /* short*/
36    NCtypealignment ushortalign;   /* unsigned short*/
37    NCtypealignment intalign;   /* int*/
38    NCtypealignment uintalign;   /* unsigned int*/
39    NCtypealignment longalign;   /* long*/
40    NCtypealignment ulongalign;   /* unsigned long*/
41    NCtypealignment longlongalign;  /* long long*/
42    NCtypealignment ulonglongalign; /* unsigned long long*/
43    NCtypealignment floatalign;   /* float*/
44    NCtypealignment doublealign;   /* double*/
45    NCtypealignment ptralign;   /* void**/
46    NCtypealignment ncvlenalign;   /* nc_vlen_t*/
47NCtypealignset;
48
49typedef NCtypealignment NCtypealignvec;
50
51extern void compute_nccalignments(void);
52extern unsigned int ncctypealignment(int nctype);
53extern int nccpadding(unsigned long offset, int alignment);
54
55#endif /*ALIGN_H*/


HyperKWIC - Version 7.20DA executed at 11:37 on 27 Oct 2017 | Polyhedron Solutions - INTERNAL USE | COMMERCIAL (Any O/S) SN 4AKIed