/usr/include/hdf/dynarray.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 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 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 | /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *
* 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: dynarray.h 4932 2007-09-07 17:17:23Z bmribler $ */
/*-----------------------------------------------------------------------------
* File: dynarray.h
* Purpose: header file for dynamic array API
* Dependencies:
* Invokes:
* Contents:
* Structure definitions:
* Constant definitions:
*---------------------------------------------------------------------------*/
/* avoid re-inclusion */
#ifndef __DYNARRAY_H
#define __DYNARRAY_H
#include "hdf.h"
/*
Define the pointer to the dynarray without giving outside routines access
to the internal workings of the structure.
*/
typedef struct dynarray_tag *dynarr_p;
#if defined DYNARRAY_MASTER | defined DYNARRAY_TESTER
typedef struct dynarray_tag
{
intn num_elems; /* Number of elements in the array currently */
intn incr_mult; /* Multiple to increment the array size by */
VOIDP *arr; /* Pointer to the actual array of void *'s */
}dynarr_t;
#endif /* DYNARRAY_MASTER | DYNARRAY_TESTER */
#if defined c_plusplus || defined __cplusplus
extern "C"
{
#endif /* c_plusplus || __cplusplus */
/******************************************************************************
NAME
DAcreate_array - Create a dynarray
DESCRIPTION
Create a dynarray for later use. This routine allocates the dynarray
structure and creates a dynarray with the specified minimum size.
RETURNS
Returns pointer to the dynarray created if successful and NULL otherwise
*******************************************************************************/
dynarr_p DAcreate_array(intn start_size, /* IN: Initial array size */
intn incr_mult /* IN: multiple to create additional elements in */
);
/******************************************************************************
NAME
DAdestroy_array - Destroy a dynarray
DESCRIPTION
Destroy an existing dynarray from use. This routine de-allocates the
dynarray structure and deletes the current dynarray.
RETURNS
Returns SUCCEED if successful and FAIL otherwise
*******************************************************************************/
intn DAdestroy_array(dynarr_p arr, /* IN: Array to destroy */
intn free_elem /* IN: whether to free each element */
);
/******************************************************************************
NAME
DAdestroy_array - Get the current size of a dynarray
DESCRIPTION
Get the number of elements in use currently.
RETURNS
Returns # of dynarray elements if successful and FAIL otherwise
*******************************************************************************/
intn DAsize_array(dynarr_p arr /* IN: Array to get size of */
);
/******************************************************************************
NAME
DAget_elem - Get an element from a dynarray
DESCRIPTION
Retrieve an element from a dynarray. If the element to be retrieved is
beyond the end of the currently allocated array elements, the array is
not extended, a NULL pointer is merely returned.
RETURNS
Returns object ptr if successful and NULL otherwise
*******************************************************************************/
VOIDP DAget_elem(dynarr_p arr_ptr, /* IN: Array to access */
intn elem /* IN: Array element to retrieve */
);
/******************************************************************************
NAME
DAset_elem - Set an element pointer for a dynarray
DESCRIPTION
Set an element pointer for a dynarray. If the element to be set is
beyond the end of the currently allocated array elements, the array is
extended by whatever multiple of the incr_mult is needed to expand the
# of array elements to include the array element to set.
RETURNS
Returns SUCCEED if successful and NULL otherwise
*******************************************************************************/
intn DAset_elem(dynarr_p arr_ptr, /* IN: Array to access */
intn elem, /* IN: Array element to set */
VOIDP obj /* IN: Pointer to the object to store */
);
/*****************************************************************************
NAME
DAdel_elem - Delete an element from a dynarray
DESCRIPTION
Retrieve an element from a dynarray & delete it from the dynarray. If the
element to be retrieved is beyond the end of the currently allocated array
elements, the array is not extended, a NULL pointer is merely returned.
RETURNS
Returns object ptr if successful and NULL otherwise
*******************************************************************************/
VOIDP DAdel_elem(dynarr_p arr_ptr, /* IN: Array to access */
intn elem /* IN: Array element to retrieve */
);
#if defined c_plusplus || defined __cplusplus
}
#endif /* c_plusplus || __cplusplus */
#endif /* __DYNARRAY_H */
|