1/* BEGIN LICENSE BLOCK 2 * Version: CMPL 1.1 3 * 4 * The contents of this file are subject to the Cisco-style Mozilla Public 5 * License Version 1.1 (the "License"); you may not use this file except 6 * in compliance with the License. You may obtain a copy of the License 7 * at www.eclipse-clp.org/license. 8 * 9 * Software distributed under the License is distributed on an "AS IS" 10 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See 11 * the License for the specific language governing rights and limitations 12 * under the License. 13 * 14 * The Original Code is The ECLiPSe Constraint Logic Programming System. 15 * The Initial Developer of the Original Code is Cisco Systems, Inc. 16 * Portions created by the Initial Developer are 17 * Copyright (C) 1994-2006 Cisco Systems, Inc. All Rights Reserved. 18 * 19 * Contributor(s): Kees Schuerman, ECRC 20 * 21 * END LICENSE BLOCK */ 22/********************************************************************** 23** System: Parallel Distributed System 24** File: nsrv.h 25** Author: Kees Schuerman 26** SccsId: "@(#)nsrv.h 1.14 07 Nov 1995" 27** Description: Name Server Interface 28***********************************************************************/ 29 30#ifndef _NSRV_H_ 31#define _NSRV_H_ 32 33/* 34** Return Codes 35*/ 36 37#define NSRV_OK PDS_OK /* success */ 38#define NSRV_NYI PDS_NYI /* not yet implemented */ 39#define NSRV_WARN PDS_WARN /* general warning */ 40#define NSRV_ERROR PDS_ERROR /* general error */ 41#define NSRV_IMPLIM PDS_IMPLIM /* implementation limit */ 42#define NSRV_INVAL PDS_INVAL /* invalid argument */ 43#define NSRV_NORESOURCES PDS_NORESOURCES /* no resources */ 44#define NSRV_NOMEMORY PDS_NOMEMORY /* no memory */ 45 46#define NSRV_NOPORT (PDS_RET_MAX + 1) /* no such port */ 47#define NSRV_NOT_READY (PDS_RET_MAX + 2) /* not ready for request */ 48#define NSRV_NOT_YOURS (PDS_RET_MAX + 3) /* signature mismatch */ 49#define NSRV_NOT_REGISTERED (PDS_RET_MAX + 4) /* not registered */ 50#define NSRV_NODOMAIN (PDS_RET_MAX + 5) /* no such domain */ 51#define NSRV_NOSERVER (PDS_RET_MAX + 6) /* no name server */ 52#define NSRV_NOHOST (PDS_RET_MAX + 7) /* no such host */ 53#define NSRV_EVERSION (PDS_RET_MAX + 8) /* version mismatch */ 54 55 56 57/* 58** Configurable Parameters 59*/ 60 61#define NSRV_PORT_DEFAULT 4916 /* number of 1st default port */ 62#define NSRV_DEFAULT_PORTS 5 /* number of default ports */ 63#define NSRV_DATA_AREA_SIZE 0x00800000 /* size of nsrv data mem area */ 64#define NSRV_MSG_AREA_SIZE 0x00800000 /* size of nsrv msg mem area */ 65#define NSRV_NAMELEN 64 66#define NSRV_FILENAMELEN_MAX BMSG_FILENAMELEN_MAX 67 68 69 70/* 71** Environment Variables 72*/ 73 74#define NSRV_PATH "NSRV_PATH" 75#define NSRV_PORT "NSRV_PORT" 76#define NSRV_HOST "NSRV_HOST" 77 78 79 80/* 81** Identifiers 82*/ 83 84#define NSRV_BDOMAIN_ID 1 85#define NSRV_BPORT_ID 1 86 87 88 89/* 90** File Names 91*/ 92 93#define NSRV_DATAFILE "nsrv.data" 94#define NSRV_MSGFILE "nsrv.msg" 95 96 97 98/* 99** Key, Domain Name, and Port Name 100*/ 101 102#define NSRV_KEY "nsrv_key" 103#define NSRV_DOMAIN_NAME "nsrv_domain_name" 104#define NSRV_PORT_NAME "nsrv_port_name" 105 106 107 108/* 109** Type Definitions 110*/ 111 112#define NSRV_INTFC 16 113 114typedef char nsrv_name_t [NSRV_NAMELEN+1]; 115typedef pds_ret_t nsrv_ret_t; 116typedef struct { 117 pds_uint32 v_minor; 118 pds_uint32 v_major; 119} nsrv_version_t; 120 121#define MDT_NSRVRET MDT_RET 122 123extern msg_type_t MDT_NSRVNAME; 124extern msg_type_t MDT_NSRVVERSION; 125 126 127 128/* 129** Global Variables 130*/ 131 132extern int nsrv_initialised; 133extern int nsrv_exited; 134extern int nsrv_exiting; 135 136#define nsrv_ready() (nsrv_initialised && !nsrv_exited && !nsrv_exiting) 137 138 139 140/* 141** Name Server Primitives 142*/ 143 144#if defined(__STDC__) 145extern nsrv_ret_t nsrv_init(char * hostname, 146 unsigned * port_number); 147extern nsrv_ret_t nsrv_types_init(void); 148extern void nsrv_exit(void); 149extern char * nsrv_data_base(void); 150extern char * nsrv_msg_base(void); 151extern nsrv_ret_t nsrv_aport_register(nsrv_name_t key, 152 nsrv_name_t port_name, 153 nsrv_name_t signature, 154 aport_t * port); 155extern nsrv_ret_t nsrv_aport_deregister(nsrv_name_t key, 156 nsrv_name_t port_name, 157 nsrv_name_t signature); 158extern nsrv_ret_t nsrv_aport_look_up(nsrv_name_t key, 159 nsrv_name_t port_name, 160 aport_t * port); 161extern nsrv_ret_t nsrv_bport_register(nsrv_name_t key, 162 nsrv_name_t port_name, 163 nsrv_name_t signature, 164 bport_t * port); 165extern nsrv_ret_t nsrv_bport_deregister(nsrv_name_t key, 166 nsrv_name_t port_name, 167 nsrv_name_t signature); 168extern nsrv_ret_t nsrv_bport_look_up(nsrv_name_t key, 169 nsrv_name_t port_name, 170 bport_t * port); 171extern nsrv_ret_t nsrv_bdomain_register(nsrv_name_t key, 172 nsrv_name_t domain_name, 173 nsrv_name_t signature, 174 bdomain_t * domain); 175extern nsrv_ret_t nsrv_bdomain_deregister(nsrv_name_t key, 176 nsrv_name_t domain_name, 177 nsrv_name_t signature); 178extern nsrv_ret_t nsrv_bdomain_look_up(nsrv_name_t key, 179 nsrv_name_t port_name, 180 bdomain_t * domain); 181extern nsrv_ret_t nsrv_new_bport_id(nsrv_name_t signature, 182 bport_id_t * port_id); 183extern nsrv_ret_t nsrv_free_bport_id(nsrv_name_t signature, 184 bport_id_t port_id); 185extern nsrv_ret_t nsrv_new_bdomain_id(nsrv_name_t signature, 186 bdomain_id_t * domain_id); 187extern nsrv_ret_t nsrv_free_bdomain_id(nsrv_name_t signature, 188 bdomain_id_t domain_id); 189extern nsrv_ret_t nsrv_ping(char * hostname, 190 unsigned * port_number); 191extern nsrv_ret_t nsrv_version(nsrv_version_t * version); 192extern char * nsrv_error_string(nsrv_ret_t nret); 193extern void nsrv_perror(nsrv_ret_t nret, 194 char * s); 195#else /* __STDC__ */ 196extern nsrv_ret_t nsrv_init(); 197extern nsrv_ret_t nsrv_types_init(); 198extern void nsrv_exit(); 199extern char * nsrv_data_base(); 200extern char * nsrv_msg_base(); 201extern nsrv_ret_t nsrv_aport_register(); 202extern nsrv_ret_t nsrv_aport_deregister(); 203extern nsrv_ret_t nsrv_aport_look_up(); 204extern nsrv_ret_t nsrv_bport_register(); 205extern nsrv_ret_t nsrv_bport_deregister(); 206extern nsrv_ret_t nsrv_bport_look_up(); 207extern nsrv_ret_t nsrv_bdomain_register(); 208extern nsrv_ret_t nsrv_bdomain_deregister(); 209extern nsrv_ret_t nsrv_bdomain_look_up(); 210extern nsrv_ret_t nsrv_new_bport_id(); 211extern nsrv_ret_t nsrv_free_bport_id(); 212extern nsrv_ret_t nsrv_new_bdomain_id(); 213extern nsrv_ret_t nsrv_free_bdomain_id(); 214extern nsrv_ret_t nsrv_ping(); 215extern nsrv_ret_t nsrv_version(); 216extern char * nsrv_error_string(); 217extern void nsrv_perror(); 218#endif /* __STDC__ */ 219 220 221#endif /* _NSRV_H_ */ 222 223