/usr/include/lam/dl_inet.h is in lam4-dev 7.1.4-3.1build1.
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 | /*
* Copyright (c) 2001-2003 The Trustees of Indiana University.
* All rights reserved.
* Copyright (c) 1998-2001 University of Notre Dame.
* All rights reserved.
* Copyright (c) 1994-1998 The Ohio State University.
* All rights reserved.
*
* This file is part of the LAM/MPI software package. For license
* information, see the LICENSE file in the top level directory of the
* LAM/MPI source distribution.
*
* $HEADER$
*
* $Id: dl_inet.h,v 6.9 2003/03/25 00:34:01 jsquyres Exp $
*
* Function: - dli/dlo_inet constants and templates
*/
#ifndef LAM_DL_INET
#define LAM_DL_INET
#include <sys/types.h>
#include <netinet/in.h>
#include <lam_config.h>
#include <portable.h>
#include <net.h>
/*
* dli/dlo common constants
*/
#define TO_DLO_ESTIMATE 200 /* timeout estimate count trigger */
#define DLDEFPORT 5555 /* default dl_inet port */
#define DLMAXSEQ 0x40000000 /* max sequence # */
#define DLMINFRAMELEN (sizeof(struct dlframe) - MAXNMSGLEN)
/* header-only frame size */
/*
* dlo constants
*/
#define DOSLOTCNT 8 /* max # window slots */
#define DOMAXPENDING 3 /* max # pending messages */
#define DOMAXSTALE ((int) (LAM_TO_DLO_IDLE / (LAM_TO_DLO_ACK / 1000000.0)))
/* causes an alive message */
#ifndef DOMAXRESEND
#define DOMAXRESEND 300 /* max # resends per message */
#endif
/*
* dlo slot flags
*/
#define DORESEND 1 /* resend-on-timeout flag */
#define DOPENDING 2 /* message pending */
#define DORESERVED 4 /* reserved for receive */
/*
* sequence macros
*/
#define seqinc(a) ((a + 1) % DLMAXSEQ)
#define seqmin(a, b) (((b - a) > 0) ? (((b - a) > (DLMAXSEQ / 2)) ? b : a) : \
(((a - b) > (DLMAXSEQ / 2)) ? a : b))
/*
* dlo requests
*/
#define DOQSETLINK 0
#define DOQREMLINK 1
#define DOQGETLINKS 2
#define DOQVOPEN 3 /* open dlo valve */
#define DOQVCLOSE 4 /* close dlo valve */
/*
* dli requests
*/
#define DIQSETLINK 0
#define DIQSANITY 1
#define DIQREMLINK 2
/*
* dlo request template
*/
struct doreq {
int4 doq_req; /* request code */
int4 doq_src_node; /* client node */
int4 doq_src_event; /* client event */
int4 doq_link; /* output link */
int4 doq_extra; /* extra information */
};
/*
* dlo reply
*/
struct doreply {
int4 dor_reply; /* reply code */
int4 dor_nlinks; /* # datalinks */
};
/*
* dli request
*/
struct direq {
int4 diq_req; /* request code */
int4 diq_src_node; /* client node */
int4 diq_src_event; /* client event */
int4 diq_link;
int4 diq_type;
int4 diq_ncpus;
};
/*
* dli reply
*/
struct direply {
int4 dir_reply; /* reply code */
};
/*
* output datalink
*/
struct dolink {
int4 dol_link; /* link number */
int4 dol_seqgive; /* next assignable sequence # */
int4 dol_seqsend; /* next sendable sequence # */
int4 dol_npending; /* # pending seq. # */
int4 dol_idle; /* idle timeout periods */
struct sockaddr_in
dol_addr; /* dli socket address */
};
/*
* extra information from startup protocols
*/
struct diinfo {
int4 dii_num_cpus;
int4 dii_node_type;
};
/*
* input datalink
*/
struct dilink {
int4 dil_link; /* link number */
int4 dil_seqrecv; /* next recvable sequence # */
struct sockaddr_in
dil_addr; /* dli socket address */
};
/*
* network portion of struct nmsg
*/
struct dlheader {
int4 dlh_node;
int4 dlh_event;
int4 dlh_type;
int4 dlh_length;
int4 dlh_flags;
int4 dlh_data[NHDSIZE];
};
/*
* datalink frame
*/
struct dlframe {
int4 dlf_src_node; /* message source node */
int4 dlf_seqnum; /* message sequence # */
struct dlheader dlf_msghead; /* message header */
char dlf_msg[MAXNMSGLEN];
/* message body */
};
struct doslot {
int4 dos_link; /* outgoing link */
int4 dos_flags; /* slot status flags */
int4 dos_resend; /* # resends */
struct dlframe dos_frame; /* datalink frame */
};
struct dlack {
int4 dla_seqnum; /* ack sequence # */
int4 dla_destid; /* destination node */
};
#ifdef __cplusplus
extern "C" {
#endif
extern int ldogetlinks __ARGS((struct dolink **pdol,int4 *pndol));
extern int ldosetlink __ARGS((struct dolink *pdol));
extern int ldoremlink __ARGS((int4 link));
#ifdef __cplusplus
}
#endif
#endif /* LAM_DL_INET */
|