/usr/include/hdf/hbitio.h is in libhdf4-dev 4.2.10-3.2.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
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 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* Copyright by The HDF Group. *
* Copyright by the Board of Trustees of the University of Illinois. *
* All rights reserved. *
* *
* This file is part of HDF. The full HDF copyright notice, including *
* terms governing use, modification, and redistribution, is contained in *
* the files COPYING and Copyright.html. COPYING can be found at the root *
* of the source code distribution tree; Copyright.html can be found at *
* http://hdfgroup.org/products/hdf4/doc/Copyright.html. If you do not have *
* access to either file, you may request a copy from help@hdfgroup.org. *
* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
/* $Id: hbitio.h 4932 2007-09-07 17:17:23Z bmribler $ */
/*
** hbitio.h
**
** Data structures and macros for bitfile access to HDF data objects.
** These are mainly used for compression I/O and N-bit data objects.
*/
#ifndef __HBITIO_H
#define __HBITIO_H
/* Define the number of elements in the buffered array */
#define BITBUF_SIZE 4096
/* Macro to define the number of bits cached in the 'bits' variable */
#define BITNUM (sizeof(uint8)*8)
/* Macro to define the number of bits able to be read/written at a time */
#define DATANUM (sizeof(uint32)*8)
typedef struct bitrec_t
{
int32 acc_id; /* Access ID for H layer I/O routines */
int32 bit_id; /* Bitfile ID for internal use */
/* Note that since HDF has signed 32bit offset limit we need to change this to signed
since the get passed to Hxxx calls which take signed 32bit arguments */
int32 block_offset, /* offset of the current buffered block in the dataset */
max_offset, /* offset of the last byte written to the dataset */
byte_offset; /* offset of the current byte in the dataset */
intn count, /* bit count to next boundary */
buf_read; /* number of bytes read into buffer (necessary for random I/O) */
uint8 access; /* What the access on this file is ('r', 'w', etc..) */
uint8 mode; /* how are we interacting with the data now ('r', 'w', etc) */
uint8 bits; /* extra bit buffer, 0..BITNUM-1 bits */
uint8 *bytep; /* current position in buffer */
uint8 *bytez; /* end of buffer to compare */
uint8 *bytea; /* byte buffer */
}
bitrec_t;
#ifndef BITMASTER
extern
#endif
const uint8 maskc[9]
#ifdef BITMASTER
=
{0, 1, 3, 7, 15, 31, 63, 127, 255}
#endif
;
#ifndef BITMASTER
extern
#endif
const uint32 maskl[33]
#ifdef BITMASTER
=
{0x00000000,
0x00000001, 0x00000003, 0x00000007, 0x0000000f,
0x0000001f, 0x0000003f, 0x0000007f, 0x000000ff,
0x000001ff, 0x000003ff, 0x000007ff, 0x00000fff,
0x00001fff, 0x00003fff, 0x00007fff, 0x0000ffff,
0x0001ffff, 0x0003ffff, 0x0007ffff, 0x000fffff,
0x001fffff, 0x003fffff, 0x007fffff, 0x00ffffff,
0x01ffffff, 0x03ffffff, 0x07ffffff, 0x0fffffff,
0x1fffffff, 0x3fffffff, 0x7fffffff, 0xffffffffUL}
#endif
;
/* Function-like Macros */
#define Hputbit(bitid,bit) ((Hbitwrite(bitid,1,(uint32)bit)==FAIL) ? FAIL : SUCCEED)
#endif /* __HBITIO_H */
|