1*7c478bd9Sstevel@tonic-gate /* 2*7c478bd9Sstevel@tonic-gate * CDDL HEADER START 3*7c478bd9Sstevel@tonic-gate * 4*7c478bd9Sstevel@tonic-gate * The contents of this file are subject to the terms of the 5*7c478bd9Sstevel@tonic-gate * Common Development and Distribution License, Version 1.0 only 6*7c478bd9Sstevel@tonic-gate * (the "License"). You may not use this file except in compliance 7*7c478bd9Sstevel@tonic-gate * with the License. 8*7c478bd9Sstevel@tonic-gate * 9*7c478bd9Sstevel@tonic-gate * You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE 10*7c478bd9Sstevel@tonic-gate * or http://www.opensolaris.org/os/licensing. 11*7c478bd9Sstevel@tonic-gate * See the License for the specific language governing permissions 12*7c478bd9Sstevel@tonic-gate * and limitations under the License. 13*7c478bd9Sstevel@tonic-gate * 14*7c478bd9Sstevel@tonic-gate * When distributing Covered Code, include this CDDL HEADER in each 15*7c478bd9Sstevel@tonic-gate * file and include the License file at usr/src/OPENSOLARIS.LICENSE. 16*7c478bd9Sstevel@tonic-gate * If applicable, add the following below this CDDL HEADER, with the 17*7c478bd9Sstevel@tonic-gate * fields enclosed by brackets "[]" replaced with your own identifying 18*7c478bd9Sstevel@tonic-gate * information: Portions Copyright [yyyy] [name of copyright owner] 19*7c478bd9Sstevel@tonic-gate * 20*7c478bd9Sstevel@tonic-gate * CDDL HEADER END 21*7c478bd9Sstevel@tonic-gate */ 22*7c478bd9Sstevel@tonic-gate /* 23*7c478bd9Sstevel@tonic-gate * Copyright (c) 1994, by Sun Microsytems, Inc. 24*7c478bd9Sstevel@tonic-gate */ 25*7c478bd9Sstevel@tonic-gate 26*7c478bd9Sstevel@tonic-gate #ifndef _SYS_TNF_COM_H 27*7c478bd9Sstevel@tonic-gate #define _SYS_TNF_COM_H 28*7c478bd9Sstevel@tonic-gate 29*7c478bd9Sstevel@tonic-gate #pragma ident "%Z%%M% %I% %E% SMI" 30*7c478bd9Sstevel@tonic-gate 31*7c478bd9Sstevel@tonic-gate #include <sys/types.h> 32*7c478bd9Sstevel@tonic-gate 33*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus 34*7c478bd9Sstevel@tonic-gate extern "C" { 35*7c478bd9Sstevel@tonic-gate #endif 36*7c478bd9Sstevel@tonic-gate 37*7c478bd9Sstevel@tonic-gate /* 38*7c478bd9Sstevel@tonic-gate * NOTE: All types are in host (not necessarily file) format. 39*7c478bd9Sstevel@tonic-gate * Readers are responsible for endian or other transformation. 40*7c478bd9Sstevel@tonic-gate */ 41*7c478bd9Sstevel@tonic-gate 42*7c478bd9Sstevel@tonic-gate /* 43*7c478bd9Sstevel@tonic-gate * Magic number(s): first word of TNF file. 44*7c478bd9Sstevel@tonic-gate * 45*7c478bd9Sstevel@tonic-gate * A writer stores the native unsigned 32-bit integer TNF_MAGIC. 46*7c478bd9Sstevel@tonic-gate * A same-endian reader will load it as TNF_MAGIC. 47*7c478bd9Sstevel@tonic-gate * A different-endian reader will load it as TNF_MAGIC_1. 48*7c478bd9Sstevel@tonic-gate */ 49*7c478bd9Sstevel@tonic-gate 50*7c478bd9Sstevel@tonic-gate #define TNF_MAGIC 0x544e4600 51*7c478bd9Sstevel@tonic-gate #define TNF_MAGIC_1 0x00464e54 52*7c478bd9Sstevel@tonic-gate 53*7c478bd9Sstevel@tonic-gate /* 54*7c478bd9Sstevel@tonic-gate * Fundamental types. Machine dependent. 55*7c478bd9Sstevel@tonic-gate */ 56*7c478bd9Sstevel@tonic-gate 57*7c478bd9Sstevel@tonic-gate typedef char tnf_char_t; 58*7c478bd9Sstevel@tonic-gate typedef signed char tnf_int8_t; 59*7c478bd9Sstevel@tonic-gate typedef unsigned char tnf_uint8_t; 60*7c478bd9Sstevel@tonic-gate typedef short tnf_int16_t; 61*7c478bd9Sstevel@tonic-gate typedef unsigned short tnf_uint16_t; 62*7c478bd9Sstevel@tonic-gate typedef int tnf_int32_t; 63*7c478bd9Sstevel@tonic-gate typedef unsigned int tnf_uint32_t; 64*7c478bd9Sstevel@tonic-gate typedef longlong_t tnf_int64_t; 65*7c478bd9Sstevel@tonic-gate typedef u_longlong_t tnf_uint64_t; 66*7c478bd9Sstevel@tonic-gate typedef float tnf_float32_t; 67*7c478bd9Sstevel@tonic-gate typedef double tnf_float64_t; 68*7c478bd9Sstevel@tonic-gate 69*7c478bd9Sstevel@tonic-gate /* 70*7c478bd9Sstevel@tonic-gate * TNF references 71*7c478bd9Sstevel@tonic-gate */ 72*7c478bd9Sstevel@tonic-gate 73*7c478bd9Sstevel@tonic-gate typedef tnf_int32_t tnf_ref32_t; /* self-relative, 32 bits */ 74*7c478bd9Sstevel@tonic-gate typedef tnf_int16_t tnf_ref16_t; /* self-relative, 16 bits */ 75*7c478bd9Sstevel@tonic-gate typedef tnf_uint16_t tnf_abs16_t; /* absolute, 16 bits */ 76*7c478bd9Sstevel@tonic-gate 77*7c478bd9Sstevel@tonic-gate /* Generation number for tag blocks */ 78*7c478bd9Sstevel@tonic-gate #define TNF_TAG_GENERATION_NUM 0xffffffff 79*7c478bd9Sstevel@tonic-gate 80*7c478bd9Sstevel@tonic-gate /* definition of space values */ 81*7c478bd9Sstevel@tonic-gate #define TNF_SPACE_MASK 0x80000000 82*7c478bd9Sstevel@tonic-gate #define TNF_SPACE_PERMANENT 0x80000000 83*7c478bd9Sstevel@tonic-gate #define TNF_SPACE_RECLAIMABLE 0x0 84*7c478bd9Sstevel@tonic-gate #define TNF_SPACE_SIGN_BIT 0x40000000 85*7c478bd9Sstevel@tonic-gate 86*7c478bd9Sstevel@tonic-gate /* Macros on setting or checking space values */ 87*7c478bd9Sstevel@tonic-gate #define TNF_REF32_MAKE_PERMANENT(x) ((x) | TNF_SPACE_PERMANENT) 88*7c478bd9Sstevel@tonic-gate #define TNF_REF32_MAKE_RECLAIMABLE(x) ((x) & ~TNF_SPACE_MASK) 89*7c478bd9Sstevel@tonic-gate #define TNF_REF32_SPACE(x) \ 90*7c478bd9Sstevel@tonic-gate ((tnf_uint32_t)(x) & TNF_SPACE_MASK) 91*7c478bd9Sstevel@tonic-gate #define TNF_REF32_IS_PERMANENT(x) \ 92*7c478bd9Sstevel@tonic-gate (TNF_REF32_SPACE(x) == TNF_SPACE_PERMANENT) 93*7c478bd9Sstevel@tonic-gate #define TNF_REF32_IS_RECLAIMABLE(x) \ 94*7c478bd9Sstevel@tonic-gate (TNF_REF32_SPACE(x) == TNF_SPACE_RECLAIMABLE) 95*7c478bd9Sstevel@tonic-gate #define TNF_REF32_SIGN_EXTEND(x) \ 96*7c478bd9Sstevel@tonic-gate ((((tnf_uint32_t)(x) & TNF_SPACE_SIGN_BIT) == TNF_SPACE_SIGN_BIT) ? \ 97*7c478bd9Sstevel@tonic-gate ((tnf_ref32_t)((tnf_uint32_t)(x) | TNF_SPACE_MASK)) : \ 98*7c478bd9Sstevel@tonic-gate (x)) 99*7c478bd9Sstevel@tonic-gate 100*7c478bd9Sstevel@tonic-gate /* definition of references */ 101*7c478bd9Sstevel@tonic-gate #define TNF_REF32_TYPE_MASK 0x3 102*7c478bd9Sstevel@tonic-gate #define TNF_REF32_T_FULL 0x0 103*7c478bd9Sstevel@tonic-gate #define TNF_REF32_T_FWD TNF_REF32_T_FULL 104*7c478bd9Sstevel@tonic-gate #define TNF_REF32_T_PAIR 0x1 105*7c478bd9Sstevel@tonic-gate #define TNF_REF32_T_TAG 0x2 106*7c478bd9Sstevel@tonic-gate #define TNF_REF32_T_RSVD 0x3 107*7c478bd9Sstevel@tonic-gate 108*7c478bd9Sstevel@tonic-gate #define TNF_REF32_REF16_MASK 0xffff 109*7c478bd9Sstevel@tonic-gate 110*7c478bd9Sstevel@tonic-gate #define TNF_REF32_TAG16_SHIFT 16 111*7c478bd9Sstevel@tonic-gate #define TNF_REF32_TAG16_MASK 0xffff 112*7c478bd9Sstevel@tonic-gate 113*7c478bd9Sstevel@tonic-gate #define TNF_REF16_TYPE_MASK 0x3 114*7c478bd9Sstevel@tonic-gate 115*7c478bd9Sstevel@tonic-gate #define TNF_TAG16_TYPE_MASK 0x3 116*7c478bd9Sstevel@tonic-gate #define TNF_TAG16_T_ABS TNF_REF32_T_PAIR 117*7c478bd9Sstevel@tonic-gate #define TNF_TAG16_T_REL TNF_REF32_T_FWD 118*7c478bd9Sstevel@tonic-gate 119*7c478bd9Sstevel@tonic-gate #define TNF_NULL 0 120*7c478bd9Sstevel@tonic-gate 121*7c478bd9Sstevel@tonic-gate /* Macros on tnf_ref32_t values: */ 122*7c478bd9Sstevel@tonic-gate 123*7c478bd9Sstevel@tonic-gate #define TNF_REF32_TYPE(x) \ 124*7c478bd9Sstevel@tonic-gate ((tnf_uint32_t)(x) & TNF_REF32_TYPE_MASK) 125*7c478bd9Sstevel@tonic-gate #define TNF_REF32_VALUE(x) \ 126*7c478bd9Sstevel@tonic-gate ((tnf_ref32_t)(((tnf_uint32_t)(x) & ~TNF_REF32_TYPE_MASK) & \ 127*7c478bd9Sstevel@tonic-gate ~TNF_SPACE_MASK)) 128*7c478bd9Sstevel@tonic-gate 129*7c478bd9Sstevel@tonic-gate #define TNF_REF32_IS_FULL(x) (TNF_REF32_TYPE(x) == TNF_REF32_T_FULL) 130*7c478bd9Sstevel@tonic-gate #define TNF_REF32_IS_FWD(x) (TNF_REF32_TYPE(x) == TNF_REF32_T_FWD) 131*7c478bd9Sstevel@tonic-gate #define TNF_REF32_IS_PAIR(x) (TNF_REF32_TYPE(x) == TNF_REF32_T_PAIR) 132*7c478bd9Sstevel@tonic-gate #define TNF_REF32_IS_TAG(x) (TNF_REF32_TYPE(x) == TNF_REF32_T_TAG) 133*7c478bd9Sstevel@tonic-gate #define TNF_REF32_IS_RSVD(x) (TNF_REF32_TYPE(x) == TNF_REF32_T_RSVD) 134*7c478bd9Sstevel@tonic-gate #define TNF_REF32_IS_NULL(x) ((x) == TNF_NULL) 135*7c478bd9Sstevel@tonic-gate 136*7c478bd9Sstevel@tonic-gate #define TNF_REF32_REF16(x) \ 137*7c478bd9Sstevel@tonic-gate ((tnf_ref16_t)((tnf_uint32_t)(x) & TNF_REF32_REF16_MASK)) 138*7c478bd9Sstevel@tonic-gate 139*7c478bd9Sstevel@tonic-gate #define TNF_REF32_TAG16(x) \ 140*7c478bd9Sstevel@tonic-gate ((tnf_ref16_t)(((tnf_uint32_t)(x) >> TNF_REF32_TAG16_SHIFT) \ 141*7c478bd9Sstevel@tonic-gate & TNF_REF32_TAG16_MASK)) 142*7c478bd9Sstevel@tonic-gate 143*7c478bd9Sstevel@tonic-gate /* Macros on tnf_ref16_t values: */ 144*7c478bd9Sstevel@tonic-gate 145*7c478bd9Sstevel@tonic-gate #define TNF_REF16_TYPE(x) \ 146*7c478bd9Sstevel@tonic-gate ((tnf_uint32_t)(x) & TNF_REF16_TYPE_MASK) 147*7c478bd9Sstevel@tonic-gate #define TNF_REF16_VALUE(x) \ 148*7c478bd9Sstevel@tonic-gate ((tnf_ref16_t)((tnf_uint32_t)(x) & ~TNF_REF16_TYPE_MASK)) 149*7c478bd9Sstevel@tonic-gate 150*7c478bd9Sstevel@tonic-gate #define TNF_TAG16_TYPE(x) \ 151*7c478bd9Sstevel@tonic-gate ((tnf_uint32_t)(x) & TNF_TAG16_TYPE_MASK) 152*7c478bd9Sstevel@tonic-gate 153*7c478bd9Sstevel@tonic-gate #define TNF_TAG16_IS_REL(x) (TNF_TAG16_TYPE(x) == TNF_TAG16_T_REL) 154*7c478bd9Sstevel@tonic-gate #define TNF_TAG16_IS_ABS(x) (TNF_TAG16_TYPE(x) == TNF_TAG16_T_ABS) 155*7c478bd9Sstevel@tonic-gate 156*7c478bd9Sstevel@tonic-gate /* The two kinds of values a tag16 can have: */ 157*7c478bd9Sstevel@tonic-gate 158*7c478bd9Sstevel@tonic-gate #define TNF_TAG16_REF16(x) \ 159*7c478bd9Sstevel@tonic-gate ((tnf_ref16_t)((tnf_uint32_t)(x) & ~TNF_TAG16_TYPE_MASK)) 160*7c478bd9Sstevel@tonic-gate #define TNF_TAG16_ABS16(x) \ 161*7c478bd9Sstevel@tonic-gate ((tnf_abs16_t)((tnf_uint32_t)(x) & ~TNF_TAG16_TYPE_MASK)) 162*7c478bd9Sstevel@tonic-gate 163*7c478bd9Sstevel@tonic-gate /* 164*7c478bd9Sstevel@tonic-gate * TNF binary layouts 165*7c478bd9Sstevel@tonic-gate */ 166*7c478bd9Sstevel@tonic-gate 167*7c478bd9Sstevel@tonic-gate struct tnf_tagged_hdr { 168*7c478bd9Sstevel@tonic-gate tnf_ref32_t tag; /* type record */ 169*7c478bd9Sstevel@tonic-gate }; 170*7c478bd9Sstevel@tonic-gate 171*7c478bd9Sstevel@tonic-gate struct tnf_array_hdr { 172*7c478bd9Sstevel@tonic-gate tnf_ref32_t tag; /* type record */ 173*7c478bd9Sstevel@tonic-gate tnf_uint32_t self_size; /* total size */ 174*7c478bd9Sstevel@tonic-gate }; 175*7c478bd9Sstevel@tonic-gate 176*7c478bd9Sstevel@tonic-gate struct tnf_type_hdr { 177*7c478bd9Sstevel@tonic-gate tnf_ref32_t tag; /* type record */ 178*7c478bd9Sstevel@tonic-gate tnf_ref32_t name; /* string record */ 179*7c478bd9Sstevel@tonic-gate tnf_ref32_t properties; /* array of type records */ 180*7c478bd9Sstevel@tonic-gate }; 181*7c478bd9Sstevel@tonic-gate 182*7c478bd9Sstevel@tonic-gate struct tnf_struct_type_hdr { 183*7c478bd9Sstevel@tonic-gate tnf_ref32_t tag; /* type record */ 184*7c478bd9Sstevel@tonic-gate tnf_ref32_t name; /* string record */ 185*7c478bd9Sstevel@tonic-gate tnf_ref32_t properties; /* array of type records */ 186*7c478bd9Sstevel@tonic-gate tnf_ref32_t slot_types; /* array of type records */ 187*7c478bd9Sstevel@tonic-gate tnf_uint32_t type_size; /* size of struct */ 188*7c478bd9Sstevel@tonic-gate }; 189*7c478bd9Sstevel@tonic-gate 190*7c478bd9Sstevel@tonic-gate struct tnf_array_type_hdr { 191*7c478bd9Sstevel@tonic-gate tnf_ref32_t tag; /* type record */ 192*7c478bd9Sstevel@tonic-gate tnf_ref32_t name; /* string record */ 193*7c478bd9Sstevel@tonic-gate tnf_ref32_t properties; /* array of type records */ 194*7c478bd9Sstevel@tonic-gate tnf_ref32_t slot_types; /* array of type records */ 195*7c478bd9Sstevel@tonic-gate tnf_uint32_t header_size; /* size of array header */ 196*7c478bd9Sstevel@tonic-gate }; 197*7c478bd9Sstevel@tonic-gate 198*7c478bd9Sstevel@tonic-gate struct tnf_derived_type_hdr { 199*7c478bd9Sstevel@tonic-gate tnf_ref32_t tag; /* type record */ 200*7c478bd9Sstevel@tonic-gate tnf_ref32_t name; /* string record */ 201*7c478bd9Sstevel@tonic-gate tnf_ref32_t properties; /* array of type records */ 202*7c478bd9Sstevel@tonic-gate tnf_ref32_t derived_base; /* type record */ 203*7c478bd9Sstevel@tonic-gate }; 204*7c478bd9Sstevel@tonic-gate 205*7c478bd9Sstevel@tonic-gate /* 206*7c478bd9Sstevel@tonic-gate * File header, after magic # 207*7c478bd9Sstevel@tonic-gate */ 208*7c478bd9Sstevel@tonic-gate 209*7c478bd9Sstevel@tonic-gate #define TNF_FILE_VERSION 1 210*7c478bd9Sstevel@tonic-gate 211*7c478bd9Sstevel@tonic-gate typedef struct tnf_file_header { 212*7c478bd9Sstevel@tonic-gate tnf_ref32_t tag; 213*7c478bd9Sstevel@tonic-gate tnf_uint32_t file_version; /* TNF_FILE_VERSION */ 214*7c478bd9Sstevel@tonic-gate tnf_uint32_t file_header_size; 215*7c478bd9Sstevel@tonic-gate tnf_uint32_t file_log_size; 216*7c478bd9Sstevel@tonic-gate tnf_uint32_t block_header_size; 217*7c478bd9Sstevel@tonic-gate tnf_uint32_t block_size; 218*7c478bd9Sstevel@tonic-gate tnf_uint32_t directory_size; 219*7c478bd9Sstevel@tonic-gate tnf_uint32_t block_count; 220*7c478bd9Sstevel@tonic-gate tnf_uint32_t blocks_valid; 221*7c478bd9Sstevel@tonic-gate /* writer-specific information after this */ 222*7c478bd9Sstevel@tonic-gate /* zero padding to end of block */ 223*7c478bd9Sstevel@tonic-gate } tnf_file_header_t; 224*7c478bd9Sstevel@tonic-gate 225*7c478bd9Sstevel@tonic-gate /* 226*7c478bd9Sstevel@tonic-gate * Block header 227*7c478bd9Sstevel@tonic-gate */ 228*7c478bd9Sstevel@tonic-gate 229*7c478bd9Sstevel@tonic-gate typedef unsigned char tnf_byte_lock_t; 230*7c478bd9Sstevel@tonic-gate 231*7c478bd9Sstevel@tonic-gate typedef struct tnf_block_header { 232*7c478bd9Sstevel@tonic-gate tnf_ref32_t tag; 233*7c478bd9Sstevel@tonic-gate tnf_uint32_t generation; /* (-1) => tag block */ 234*7c478bd9Sstevel@tonic-gate tnf_uint16_t bytes_valid; 235*7c478bd9Sstevel@tonic-gate tnf_byte_lock_t A_lock; 236*7c478bd9Sstevel@tonic-gate tnf_byte_lock_t B_lock; 237*7c478bd9Sstevel@tonic-gate struct tnf_block_header *next_block; /* release list */ 238*7c478bd9Sstevel@tonic-gate } tnf_block_header_t; 239*7c478bd9Sstevel@tonic-gate 240*7c478bd9Sstevel@tonic-gate /* 241*7c478bd9Sstevel@tonic-gate * TNF type names 242*7c478bd9Sstevel@tonic-gate */ 243*7c478bd9Sstevel@tonic-gate 244*7c478bd9Sstevel@tonic-gate #define TNF_N_INLINE "tnf_inline" 245*7c478bd9Sstevel@tonic-gate #define TNF_N_TAGGED "tnf_tagged" 246*7c478bd9Sstevel@tonic-gate 247*7c478bd9Sstevel@tonic-gate #define TNF_N_SCALAR "tnf_scalar" 248*7c478bd9Sstevel@tonic-gate #define TNF_N_CHAR "tnf_char" 249*7c478bd9Sstevel@tonic-gate #define TNF_N_INT8 "tnf_int8" 250*7c478bd9Sstevel@tonic-gate #define TNF_N_UINT8 "tnf_uint8" 251*7c478bd9Sstevel@tonic-gate #define TNF_N_INT16 "tnf_int16" 252*7c478bd9Sstevel@tonic-gate #define TNF_N_UINT16 "tnf_uint16" 253*7c478bd9Sstevel@tonic-gate #define TNF_N_INT32 "tnf_int32" 254*7c478bd9Sstevel@tonic-gate #define TNF_N_UINT32 "tnf_uint32" 255*7c478bd9Sstevel@tonic-gate #define TNF_N_INT64 "tnf_int64" 256*7c478bd9Sstevel@tonic-gate #define TNF_N_UINT64 "tnf_uint64" 257*7c478bd9Sstevel@tonic-gate #define TNF_N_FLOAT32 "tnf_float32" 258*7c478bd9Sstevel@tonic-gate #define TNF_N_FLOAT64 "tnf_float64" 259*7c478bd9Sstevel@tonic-gate 260*7c478bd9Sstevel@tonic-gate #define TNF_N_ARRAY "tnf_array" 261*7c478bd9Sstevel@tonic-gate #define TNF_N_STRING "tnf_string" 262*7c478bd9Sstevel@tonic-gate #define TNF_N_TYPE_ARRAY "tnf_type_array" 263*7c478bd9Sstevel@tonic-gate #define TNF_N_NAME_ARRAY "tnf_name_array" 264*7c478bd9Sstevel@tonic-gate 265*7c478bd9Sstevel@tonic-gate #define TNF_N_ALIGN "tnf_align" 266*7c478bd9Sstevel@tonic-gate #define TNF_N_DERIVED "tnf_derived" 267*7c478bd9Sstevel@tonic-gate #define TNF_N_DERIVED_BASE "tnf_derived_base" 268*7c478bd9Sstevel@tonic-gate #define TNF_N_ELEMENT_TYPE "tnf_element_type" 269*7c478bd9Sstevel@tonic-gate #define TNF_N_HEADER_SIZE "tnf_header_size" 270*7c478bd9Sstevel@tonic-gate #define TNF_N_NAME "tnf_name" 271*7c478bd9Sstevel@tonic-gate #define TNF_N_OPAQUE "tnf_opaque" 272*7c478bd9Sstevel@tonic-gate #define TNF_N_PROPERTIES "tnf_properties" 273*7c478bd9Sstevel@tonic-gate #define TNF_N_SELF_SIZE "tnf_self_size" 274*7c478bd9Sstevel@tonic-gate #define TNF_N_SIZE "tnf_size" 275*7c478bd9Sstevel@tonic-gate #define TNF_N_SLOT_NAMES "tnf_slot_names" 276*7c478bd9Sstevel@tonic-gate #define TNF_N_SLOT_TYPES "tnf_slot_types" 277*7c478bd9Sstevel@tonic-gate #define TNF_N_TAG "tnf_tag" 278*7c478bd9Sstevel@tonic-gate #define TNF_N_TAG_ARG "tnf_tag_arg" 279*7c478bd9Sstevel@tonic-gate #define TNF_N_TYPE_SIZE "tnf_type_size" 280*7c478bd9Sstevel@tonic-gate 281*7c478bd9Sstevel@tonic-gate #define TNF_N_STRUCT "tnf_struct" 282*7c478bd9Sstevel@tonic-gate 283*7c478bd9Sstevel@tonic-gate #define TNF_N_ARRAY_TYPE "tnf_array_type" 284*7c478bd9Sstevel@tonic-gate #define TNF_N_DERIVED_TYPE "tnf_derived_type" 285*7c478bd9Sstevel@tonic-gate #define TNF_N_SCALAR_TYPE "tnf_scalar_type" 286*7c478bd9Sstevel@tonic-gate #define TNF_N_STRUCT_TYPE "tnf_struct_type" 287*7c478bd9Sstevel@tonic-gate #define TNF_N_TYPE "tnf_type" 288*7c478bd9Sstevel@tonic-gate 289*7c478bd9Sstevel@tonic-gate /* 290*7c478bd9Sstevel@tonic-gate * Reserved names for block and file header information 291*7c478bd9Sstevel@tonic-gate */ 292*7c478bd9Sstevel@tonic-gate 293*7c478bd9Sstevel@tonic-gate #define TNF_N_FILE_HEADER "tnf_file_header" 294*7c478bd9Sstevel@tonic-gate #define TNF_N_FILE_VERSION "file_version" 295*7c478bd9Sstevel@tonic-gate #define TNF_N_FILE_HEADER_SIZE "file_header_size" 296*7c478bd9Sstevel@tonic-gate #define TNF_N_FILE_LOGICAL_SIZE "file_logical_size" 297*7c478bd9Sstevel@tonic-gate #define TNF_N_BLOCK_HEADER_SIZE "block_header_size" 298*7c478bd9Sstevel@tonic-gate #define TNF_N_BLOCK_SIZE "block_size" 299*7c478bd9Sstevel@tonic-gate #define TNF_N_DIRECTORY_SIZE "directory_size" 300*7c478bd9Sstevel@tonic-gate #define TNF_N_BLOCK_COUNT "block_count" 301*7c478bd9Sstevel@tonic-gate #define TNF_N_BLOCKS_VALID "blocks_valid" 302*7c478bd9Sstevel@tonic-gate 303*7c478bd9Sstevel@tonic-gate #define TNF_N_BLOCK_HEADER "tnf_block_header" 304*7c478bd9Sstevel@tonic-gate #define TNF_N_GENERATION "generation" 305*7c478bd9Sstevel@tonic-gate #define TNF_N_BYTES_VALID "bytes_valid" 306*7c478bd9Sstevel@tonic-gate 307*7c478bd9Sstevel@tonic-gate /* 308*7c478bd9Sstevel@tonic-gate * Reserved names for schedule record information 309*7c478bd9Sstevel@tonic-gate */ 310*7c478bd9Sstevel@tonic-gate 311*7c478bd9Sstevel@tonic-gate #define TNF_N_USER_SCHEDULE "tnf_user_schedule" 312*7c478bd9Sstevel@tonic-gate #define TNF_N_KERNEL_SCHEDULE "tnf_kernel_schedule" 313*7c478bd9Sstevel@tonic-gate 314*7c478bd9Sstevel@tonic-gate #define TNF_N_PID "pid" 315*7c478bd9Sstevel@tonic-gate #define TNF_N_LWPID "lwpid" 316*7c478bd9Sstevel@tonic-gate #define TNF_N_TID "tid" 317*7c478bd9Sstevel@tonic-gate #define TNF_N_TIME_BASE "time_base" 318*7c478bd9Sstevel@tonic-gate #define TNF_N_TIME_DELTA "time_delta" 319*7c478bd9Sstevel@tonic-gate 320*7c478bd9Sstevel@tonic-gate /* XXX TODO: kernel type names */ 321*7c478bd9Sstevel@tonic-gate 322*7c478bd9Sstevel@tonic-gate #ifdef __cplusplus 323*7c478bd9Sstevel@tonic-gate } 324*7c478bd9Sstevel@tonic-gate #endif 325*7c478bd9Sstevel@tonic-gate 326*7c478bd9Sstevel@tonic-gate #endif /* _SYS_TNF_COM_H */ 327