This file is indexed.

/usr/include/coin/dylib_std.h is in coinor-libdylp-dev 1.6.0-1.1ubuntu2.

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
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
#ifndef _DYLIB_STD_H
#define _DYLIB_STD_H

/*
  This file is part of the support library for the Dylp LP distribution.

        Copyright (C) 2005 -- 2007 Lou Hafer

        School of Computing Science
        Simon Fraser University
        Burnaby, B.C., V5A 1S6, Canada
        lou@cs.sfu.ca

  This code is licensed under the terms of the Common Public License (CPL).
*/

/*
  @(#)dylib_std.h	1.5	09/25/04
  svn/cvs: $Id: dylib_std.h 148 2007-06-09 03:15:30Z lou $
*/

/*
  This file contains common definitions.

  First thing to do is haul in the Ansi C standard definitions. Takes care of
  NULL plus a few more obscure definitions. Also haul in the standard library
  declarations.
*/

#include <stddef.h>
#include <stdlib.h>

#include "DylpConfig.h"

/*
  A utility definition which allows for easy suppression of unused variable
  warnings from GCC. Useful when a variable is used only for assert()
  statements, and for sccsid/cvsid strings.
*/
#ifndef UNUSED
# if defined(_GNU_SOURCE) || defined(__GNUC__)
#   define UNUSED __attribute__((unused))
# else
#   define UNUSED
# endif
#endif

/*
  Memory copy functions --- memcpy, memset, and other less common ones.
*/
  
#include <string.h>

/*
  We need a boolean type. Never could understand why C doesn't have this.

  [Aug 10, 01] For compatibility with C++, TRUE and FALSE are defined to be
  the corresponding C++ values. BOOL should be set in the compiler command
  line to be the storage type (char/short/int/long) that matches the size of
  a C++ "bool".  All these are necessary to link with and be called by C++
  code in osi-bonsai.
*/

#ifndef	__cplusplus
#define FALSE 0
#define TRUE 1
# ifdef BOOL
  typedef BOOL bool ;
# else
/*
  You're in trouble. The likely source of the problem is that this file is
  being included in the course of a build controlled by a makefile that
  doesn't know about the booltype utility in the dylp distribution. See the
  Utils subdirectory, and also check the makefile for dylp to see how this is
  used.  If you don't want to fiddle with your build control files, just
  build booltype, run it, and edit in the appropriate definition. If you're
  not worried about C++ compatibility, int is a good as anything.
*/
# warning The compile-time symbol BOOL is not defined (dylib_std.h)
  typedef int bool ;
# endif
#endif

#ifdef __cplusplus
#ifndef FALSE
# define FALSE false
#endif
#ifndef TRUE
# define TRUE true
#endif
#endif

/*
  flags	is used to indicate a data type composed of one-bit flags. Manipulated
  with the set of flag manipulation macros defined below.
*/

typedef unsigned int flags ;

#define setflg(zz_flgs,zz_flg) ((zz_flgs) |= (zz_flg))
#define clrflg(zz_flgs,zz_flg) ((zz_flgs) &= ~(zz_flg))
#define comflg(zz_flgs,zz_flg) ((zz_flgs) ^= (zz_flg))
#define getflg(zz_flgs,zz_flg) ((zz_flgs)&(zz_flg))
#define flgon(zz_flgs,zz_flg)  ((zz_flgs)&(zz_flg)?TRUE:FALSE)
#define flgoff(zz_flgs,zz_flg) ((zz_flgs)&(zz_flg)?FALSE:TRUE)
#define flgall(zz_flgs,zz_flg) ((((zz_flgs)&(zz_flg)) == (zz_flg))?TRUE:FALSE)


/*
  lnk_struct is a general-purpose linked list structure.

  Field		Description
  -----		-----------
  llnxt		pointer to the next list element
  llval		pointer to the associated value 
*/

typedef struct lnk_struct_tag
{ struct lnk_struct_tag *llnxt ;
  void *llval ; } lnk_struct ;

#define lnk_in(qqlnk,qqval) ((qqlnk)->llval = (void *) (qqval))
#define lnk_out(qqlnk,qqtype) ((qqtype) (qqlnk)->llval)


/* Max and min macros */

#define minn(qa,qb) (((qa) > (qb))?(qb):(qa))
#define maxx(qa,qb) (((qa) > (qb))?(qa):(qb))


/*
  Some macros to hide the memory allocation functions.

  The serious debugging versions of these macros (MALLOC_DEBUG = 2) use
  outfmt from the io library and assume the existence of a string, rtnnme
  (typically the name of the current subroutine) that's used to identify the
  origin of the message. There's enough information in the messages to track
  the allocation and deallocation of blocks, should you not have access to an
  interactive debugger with this capability.

  The casual debugging versions (MALLOC_DEBUG = 1) only check for a return
  value of 0 and print a message to stderr with the file and line number.
  This at least tells you when your code has core dumped because it ran out
  of space (as opposed to a bug you can actually fix).
*/

#if (MALLOC_DEBUG == 2)

#include "dylib_io.h"

void *zz_ptr_zz ;
ioid  zz_chn_zz ;

#define MALLOC_DBG_INIT(chn) ( zz_chn_zz = chn )

#define MALLOC(zz_sze_zz) \
  ( zz_ptr_zz = (void *) malloc(zz_sze_zz), \
    outfmt(zz_chn_zz,FALSE,":malloc: %d bytes at %#08x in %s.\n", \
	    zz_sze_zz,zz_ptr_zz,rtnnme), \
    zz_ptr_zz )

#define CALLOC(zz_cnt_zz,zz_sze_zz) \
  ( zz_ptr_zz = (void *) calloc(zz_cnt_zz,zz_sze_zz), \
    outfmt(zz_chn_zz,FALSE,":calloc: %d (%d*%d) bytes at %#08x in %s.\n", \
	    zz_cnt_zz*zz_sze_zz,zz_cnt_zz,zz_sze_zz,zz_ptr_zz,rtnnme), \
    zz_ptr_zz )

#define REALLOC(zz_rptr_zz,zz_sze_zz) \
  ( zz_ptr_zz = (void *) realloc(zz_rptr_zz,zz_sze_zz), \
    outfmt(zz_chn_zz,FALSE, \
	   ":realloc: %#08x changed to %d bytes at %#08x in %s.\n", \
	    zz_rptr_zz,zz_sze_zz,zz_ptr_zz,rtnnme), \
    zz_ptr_zz )

#define FREE(zz_fptr_zz) \
  ( outfmt(zz_chn_zz,FALSE,":free: %#08x in %s.\n",zz_fptr_zz,rtnnme), \
    free((void *) zz_fptr_zz) )

#elif (MALLOC_DEBUG == 1)

#include <stdio.h>
void *zz_ptr_zz ;

#define MALLOC(zz_sze_zz) \
  ( zz_ptr_zz = (void *) malloc(zz_sze_zz), \
    (zz_ptr_zz != 0)?0:\
      fprintf(stderr,":malloc: failed to get %d bytes at %s:%d.\n", \
	      zz_sze_zz,__FILE__,__LINE__), \
    zz_ptr_zz )

#define CALLOC(zz_cnt_zz,zz_sze_zz) \
  ( zz_ptr_zz = (void *) calloc(zz_cnt_zz,zz_sze_zz), \
    (zz_ptr_zz != 0)?0:\
      fprintf(stderr,":calloc: failed to get %d bytes at %s:%d.\n", \
	      zz_sze_zz*zz_cnt_zz,__FILE__,__LINE__), \
    zz_ptr_zz )

#define REALLOC(zz_rptr_zz,zz_sze_zz) \
  ( zz_ptr_zz = (void *) realloc(zz_rptr_zz,zz_sze_zz), \
    (zz_ptr_zz != 0)?0:\
      fprintf(stderr,":realloc: failed to get %d bytes at %s:%d.\n", \
	      zz_sze_zz,__FILE__,__LINE__), \
    zz_ptr_zz )

#define FREE(zz_fptr_zz) free((void *) zz_fptr_zz)

#else

#define MALLOC_DBG_INIT(chn)

#define MALLOC(zz_sze_zz) malloc(zz_sze_zz)

#define CALLOC(zz_cnt_zz,zz_sze_zz) calloc(zz_cnt_zz,zz_sze_zz)

#define REALLOC(zz_rptr_zz,zz_sze_zz) realloc(zz_rptr_zz,zz_sze_zz)

#define FREE(zz_fptr_zz) free((void *) zz_fptr_zz)

#endif


#endif /* _DYLIB_STD_H */