File: dapalign.h

package info (click to toggle)
netcdf 1%3A4.4.1.1-2
  • links: PTS, VCS
  • area: main
  • in suites: stretch
  • size: 96,828 kB
  • ctags: 15,369
  • sloc: ansic: 163,650; sh: 9,294; yacc: 2,457; makefile: 1,208; lex: 1,161; xml: 173; f90: 7; fortran: 6; awk: 2
file content (55 lines) | stat: -rw-r--r-- 1,842 bytes parent folder | download
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
/*********************************************************************
 *   Copyright 1993, UCAR/Unidata
 *   See netcdf/COPYRIGHT file for copying and redistribution conditions.
 *********************************************************************/
#ifndef ALIGN_H
#define ALIGN_H 1

typedef struct NCtypealignment {
    char* typename;
    int alignment;
} NCtypealignment;

/* Define indices for every primitive C type */
/* NAT => NOT-A-TYPE*/
#define NCCTYPENAT       0
#define NCCTYPECHAR      1
#define NCCTYPEUCHAR     2
#define NCCTYPESHORT     3
#define NCCTYPEUSHORT    4
#define NCCTYPEINT       5
#define NCCTYPEUINT      6
#define NCCTYPELONG      7
#define NCCTYPEULONG     8
#define NCCTYPELONGLONG  9
#define NCCTYPEULONGLONG 10
#define NCCTYPEFLOAT     11
#define NCCTYPEDOUBLE    12
#define NCCTYPEPTR       13
#define NCCTYPENCVLEN    14

/* Capture in struct and in a vector*/
typedef struct NCtypealignset {
    NCtypealignment charalign;	  /* char*/
    NCtypealignment ucharalign;	  /* unsigned char*/
    NCtypealignment shortalign;	  /* short*/
    NCtypealignment ushortalign;	  /* unsigned short*/
    NCtypealignment intalign;	  /* int*/
    NCtypealignment uintalign;	  /* unsigned int*/
    NCtypealignment longalign;	  /* long*/
    NCtypealignment ulongalign;	  /* unsigned long*/
    NCtypealignment longlongalign;  /* long long*/
    NCtypealignment ulonglongalign; /* unsigned long long*/
    NCtypealignment floatalign;	  /* float*/
    NCtypealignment doublealign;	  /* double*/
    NCtypealignment ptralign;	  /* void**/
    NCtypealignment ncvlenalign;	  /* nc_vlen_t*/
} NCtypealignset;

typedef NCtypealignment NCtypealignvec;

extern void compute_nccalignments(void);
extern unsigned int ncctypealignment(int nctype);
extern int nccpadding(unsigned long offset, int alignment);

#endif /*ALIGN_H*/