/usr/include/ug/dlmgr.h is in libdune-uggrid-dev 2.5.0-1.
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 | // -*- tab-width: 4; indent-tabs-mode: nil; c-basic-offset: 2 -*-
// vi: set et ts=4 sw=2 sts=2:
/*! \file dlmgr.h
* \ingroup gm
*/
/****************************************************************************/
/* */
/* File: dlmgr.h */
/* */
/* Purpose: defines for dynamic linked list management */
/* */
/* Author: Stefan Lang */
/* Institut fuer Computeranwendungen III */
/* Universitaet Stuttgart */
/* Pfaffenwaldring 27 */
/* 70550 Stuttgart */
/* email: ug@ica3.uni-stuttgart.de */
/* */
/* History: 960915 sl start of dynamic list management */
/* */
/* Remarks: */
/* Management of dynamic linked lists, which consist of */
/* several parts. An object can be mapped to a part of the list */
/* by its priority using PRIO2LISTPART(). */
/* The formulation on object basis allows for management of */
/* elements, nodes, vectors and vertices. */
/* A list has the form: */
/* p0first-p0last->p1first-p1last->...->pnfirst..pnlast */
/* where each part p0,p1,..,pn is limited by two pointers, */
/* pxfirst and pxlast, x=0..n. The part numbers are ordered */
/* increasingly and connected in a manner that one can run */
/* through the whole list in increasing order (SUCC) but only */
/* through one listpart in decreasing order (PRED). */
/* Linking/Unlinking of objects in a list part is done in a */
/* way that preserves these conventions. */
/* */
/****************************************************************************/
#ifndef __DLMGR_H__
#include "gm.h"
#include "misc.h"
#include "debug.h"
#ifdef ModelP
#include "parallel.h"
#endif
#include "namespace.h"
START_UGDIM_NAMESPACE
#ifdef ModelP
#define FIRSTPART_OF_LIST 0
#define LASTPART_OF_LIST(OTYPE) ((CAT(OTYPE,_LISTPARTS)) -1)
/* define DDD_HDR macros */
#define HDRELEMENT PARHDRE
#define HDRNODE PARHDR
#define HDRVERTEX PARHDRV
#define HDRVECTOR PARHDR
#define HDR(OTYPE) CAT(HDR,OTYPE)
/* define macros for formatted output */
#define ELEMENTFMT EID_
#define NODEFMT ID_
#define VERTEXFMT VID_
#define VECTORFMT VINDEX_
#define FORMAT(t) CAT(t,FMT)
#endif
/* define Object COUNTER macros */
#define COUNTELEMENT NT
#define COUNTNODE NN
#define COUNTVERTEX NV
#define COUNTVECTOR NVEC
/* define Object COUNTER macros for priorities */
#define PRIOCOUNTELEMENT NT_PRIO
#define PRIOCOUNTNODE NN_PRIO
#define PRIOCOUNTVERTEX NV_PRIO
#define PRIOCOUNTVECTOR NVEC_PRIO
/* define header prototypes */
#define UNLINK(OTYPE) void CAT(GRID_UNLINK_, OTYPE ) (GRID *Grid, OTYPE *Object)
#define LINK(OTYPE) void CAT(GRID_LINK_,OTYPE) (GRID *Grid, OTYPE *Object, INT Prio)
#define LINKX(OTYPE) void CAT(GRID_LINKX_,OTYPE) (GRID *Grid, OTYPE *Object, INT Prio, OTYPE *After)
#define INIT(OTYPE) void CAT3(GRID_INIT_,OTYPE,_LIST(GRID *Grid))
#define CHECK(OTYPE) void CAT3(GRID_CHECK_,OTYPE,_LIST(GRID *Grid))
#ifdef ModelP
#define PRINT_LIST(OTYPE) void CAT(PRINT_LIST_STARTS_,OTYPE) (GRID *Grid, INT prios)
#endif
LINK(ELEMENT);
LINKX(ELEMENT);
UNLINK(ELEMENT);
INIT(ELEMENT);
CHECK(ELEMENT);
LINK(NODE);
LINKX(NODE);
UNLINK(NODE);
INIT(NODE);
CHECK(NODE);
LINK(VERTEX);
LINKX(VERTEX);
UNLINK(VERTEX);
INIT(VERTEX);
CHECK(VERTEX);
LINK(VECTOR);
LINKX(VECTOR);
UNLINK(VECTOR);
INIT(VECTOR);
CHECK(VECTOR);
#ifdef ModelP
PRINT_LIST(ELEMENT);
PRINT_LIST(NODE);
PRINT_LIST(VERTEX);
PRINT_LIST(VECTOR);
#endif
END_UGDIM_NAMESPACE
#endif /* __DLMGR_H__ */
|