blob: 60e791598c7df3c9152bf8a78cb41e977b059301 (
plain) (
blame)
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
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
# tbtables.h -- Internal definitions for the table I/O package.
# Software version number.
# Version 0 corresponds to STSDAS and TABLES versions 1.2.3 and earlier.
# The row length was restricted to integral multiples of the size of a
# real number.
# Version 1 begins with STSDAS and TABLES version 1.3. Short integer
# datatype was introduced, and character strings were rounded up to a
# multiple of the number of bytes in a char. The row length is allowed
# to be any integral multiple of SZ_CHAR.
# Version 2 allows header parameters to have comments.
# This change was made after TABLES version 1.3.3 was released.
define TBL_CURRENT_VERSION 2
# Default maximum number of user parameters. The current value is TB_MAXPAR.
define DEFMAXPAR 5
# Default maximum number of columns. The current value is TB_MAXCOLS.
define DEFMAXCOLS 5
# This section describes the size information record.
define LEN_SIZINFO 12 # unit = SZ_INT32
define SZ_SIZINFO (LEN_SIZINFO * SZ_INT32)
define S_NPAR $1[1] # Number of user parameters
define S_MAXPAR $1[2] # Max number of user parameters
define S_NROWS $1[3] # Number of rows
define S_ALLROWS $1[4] # Number of rows allocated
define S_NCOLS $1[5] # Number of columns defined
define S_MAXCOLS $1[6] # Current max number of columns
define S_COLUSED $1[7] # Chars used by defined columns
define S_ROWLEN $1[8] # Total row length alloc (chars)
define S_TYPE $1[9] # Type (row or column ordered)
define S_VERSION $1[10] # Software version number
# This is the size of the table-descriptor structure.
define LEN_TBLSTRUCT (28)
# General descriptive information. (R) means relevant only for row-ordered
# tables, while (C) means relevant only for column-ordered tables.
define TB_TYPE Memi[$1] # what type of table
define TB_NPAR Memi[$1+1] # number of user paramters
define TB_MAXPAR Memi[$1+2] # max number of user paramters
define TB_NROWS Memi[$1+3] # number of rows
define TB_ALLROWS Memi[$1+4] # (C) allocated number of rows
define TB_NCOLS Memi[$1+5] # number of columns
define TB_MAXCOLS Memi[$1+6] # current max number of columns
define TB_COLUSED Memi[$1+7] # (R) chars used by columns
define TB_ROWLEN Memi[$1+8] # (R) row length = chars alloc
define TB_VERSION Memi[$1+9] # Software version number
define TB_BOD Meml[$1+10] # L beg of data (in SZ_CHAR)
define TB_IOMODE Memi[$1+11] # I/O mode
# Flags
define TB_IS_OPEN Memb[$1+12] # Table is open?
define TB_READONLY Memb[$1+13] # Readonly?
define TB_MODIFIED Memb[$1+14] # Actually been changed?
# File descriptor for the table file
define TB_FILE Memi[$1+15]
# Pointers. TB_INDEF is only used for row-ordered tables.
define TB_INDEF Memi[$1+16] # Pointer to indef record buffer
define TB_COLPTR Memi[$1+17] # Ptr to array of column ptrs
# These are for tables in CDF files or FITS files.
define TB_F_TYPE Memi[$1+18] # CDF, FITS, or ordinary file
define TB_HDU Memi[$1+19] # number of HDU in FITS file
define TB_EXTVER Memi[$1+20] # version number
define TB_OVERWRITE Memi[$1+21] # +1 --> yes, 0 --> no
define TB_HDUTYPE Memi[$1+22] # 1--> ascii; 2 --> binary
define TB_CD Memi[$1+23] # returned by cd_open()
define TB_EXTNAME_PTR Memi[$1+24] # pointer to CDF name or EXTNAME
define TB_EXTNAME Memc[TB_EXTNAME_PTR($1)]
# These two are for text tables.
define TB_COMMENT Memi[$1+25] # pointer to comment string
define TB_SZ_COMMENT Memi[$1+26] # size of comment string
# Table name
define TB_NAME_PTR Memi[$1+27] # pointer to table name string
define TB_NAME Memc[TB_NAME_PTR($1)]
# Array of pointers to column information. This array can be reallocated
# to allow more columns; the current size at any time is TB_MAXCOLS.
define TB_COLINFO Memi[TB_COLPTR($1)+$2-1]
# Column information structure.
define LEN_COLSTRUCT 16 # unit = SZ_STRUCT
define SZ_COLSTRUCT (LEN_COLSTRUCT * SZ_STRUCT)
define COL_NUMBER Memi[$1] # Column number
define COL_OFFSET Memi[$1+1] # Offset from start of row
define COL_LEN Memi[$1+2] # Chars for data element
define COL_DTYPE Memi[$1+3] # Data type
define COL_NAME Memc[P2C($1+4)] # Column name 19
define COL_UNITS Memc[P2C($1+9)] # Units 19
define COL_FMT Memc[P2C($1+14)] # Print format 7
# Next available field is ($1 + 16).
# Definitions of data types. These agree with iraf.h.
define TBL_TY_BOOL 1
define TBL_TY_CHAR 2
define TBL_TY_SHORT 3
define TBL_TY_INT 4
define TBL_TY_REAL 6
define TBL_TY_DOUBLE 7
# Undefined double for tables. This agrees with the pre-IRAF 2.11 INDEFD.
define TBL_INDEFD 1.6d38
define TBL_IS_INDEFD (($1)==TBL_INDEFD)
# These two (which are in tbset.h) are used for the file type TB_F_TYPE
# as well as table type TB_TYPE.
# (moved) define TBL_TYPE_FITS 14 # FITS table
# (moved) define TBL_TYPE_CDF 15 # common datafile format
# These two are modifiers for the table type in case it's a FITS table.
# They are the value of TB_HDUTYPE.
define TBL_FITS_ASCII 1 # FITS ASCII table
define TBL_FITS_BINARY 2 # FITS BINTABLE
|