ICElibint.h revision c5629e66
1266e564dSmrg/* $Xorg: ICElibint.h,v 1.4 2001/02/09 02:03:26 xorgcvs Exp $ */ 2266e564dSmrg/****************************************************************************** 3266e564dSmrg 4266e564dSmrg 5266e564dSmrgCopyright 1993, 1998 The Open Group 6266e564dSmrg 7266e564dSmrgPermission to use, copy, modify, distribute, and sell this software and its 8266e564dSmrgdocumentation for any purpose is hereby granted without fee, provided that 9266e564dSmrgthe above copyright notice appear in all copies and that both that 10266e564dSmrgcopyright notice and this permission notice appear in supporting 11266e564dSmrgdocumentation. 12266e564dSmrg 13266e564dSmrgThe above copyright notice and this permission notice shall be included in 14266e564dSmrgall copies or substantial portions of the Software. 15266e564dSmrg 16266e564dSmrgTHE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17266e564dSmrgIMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18266e564dSmrgFITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19266e564dSmrgOPEN GROUP BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN 20266e564dSmrgAN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN 21266e564dSmrgCONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. 22266e564dSmrg 23266e564dSmrgExcept as contained in this notice, the name of The Open Group shall not be 24266e564dSmrgused in advertising or otherwise to promote the sale, use or other dealings 25266e564dSmrgin this Software without prior written authorization from The Open Group. 26266e564dSmrg 27266e564dSmrgAuthor: Ralph Mor, X Consortium 28266e564dSmrg******************************************************************************/ 29266e564dSmrg/* $XFree86: xc/lib/ICE/ICElibint.h,v 1.6 2001/12/14 19:53:35 dawes Exp $ */ 30266e564dSmrg 31266e564dSmrg#ifndef _ICELIBINT_H_ 32266e564dSmrg#define _ICELIBINT_H_ 33266e564dSmrg 34266e564dSmrg#include <X11/Xos.h> 35266e564dSmrg#include <X11/Xfuncs.h> 36266e564dSmrg#include <X11/Xmd.h> 37266e564dSmrg#include <X11/ICE/ICEproto.h> 38266e564dSmrg#include <X11/ICE/ICEconn.h> 39266e564dSmrg#include <X11/ICE/ICEmsg.h> 40c5629e66Smrg#ifdef WIN32 41c5629e66Smrg#include <X11/Xwindows.h> 42c5629e66Smrg#endif 43266e564dSmrg 44266e564dSmrg#include <stdlib.h> 45266e564dSmrg#include <stddef.h> 46266e564dSmrg 47266e564dSmrg 48266e564dSmrg/* 49266e564dSmrg * Vendor & Release 50266e564dSmrg */ 51266e564dSmrg 52266e564dSmrg#define IceVendorString "MIT" 53266e564dSmrg#define IceReleaseString "1.0" 54266e564dSmrg 55266e564dSmrg 56266e564dSmrg/* 57266e564dSmrg * Pad to a 64 bit boundary 58266e564dSmrg */ 59266e564dSmrg 60266e564dSmrg#define PAD64(_bytes) ((8 - ((unsigned int) (_bytes) % 8)) % 8) 61266e564dSmrg 62266e564dSmrg#define PADDED_BYTES64(_bytes) (_bytes + PAD64 (_bytes)) 63266e564dSmrg 64266e564dSmrg 65266e564dSmrg/* 66266e564dSmrg * Pad to 32 bit boundary 67266e564dSmrg */ 68266e564dSmrg 69266e564dSmrg#define PAD32(_bytes) ((4 - ((unsigned int) (_bytes) % 4)) % 4) 70266e564dSmrg 71266e564dSmrg#define PADDED_BYTES32(_bytes) (_bytes + PAD32 (_bytes)) 72266e564dSmrg 73266e564dSmrg 74266e564dSmrg/* 75266e564dSmrg * Number of 8 byte units in _bytes. 76266e564dSmrg */ 77266e564dSmrg 78266e564dSmrg#define WORD64COUNT(_bytes) (((unsigned int) ((_bytes) + 7)) >> 3) 79266e564dSmrg 80266e564dSmrg 81266e564dSmrg/* 82266e564dSmrg * Number of 4 byte units in _bytes. 83266e564dSmrg */ 84266e564dSmrg 85266e564dSmrg#define WORD32COUNT(_bytes) (((unsigned int) ((_bytes) + 3)) >> 2) 86266e564dSmrg 87266e564dSmrg 88266e564dSmrg/* 89266e564dSmrg * Given a string, compute the number of bytes for the STRING representation 90266e564dSmrg */ 91266e564dSmrg 92266e564dSmrg#define STRING_BYTES(_string) \ 93266e564dSmrg (2 + strlen (_string) + PAD32 (2 + strlen (_string))) 94266e564dSmrg 95266e564dSmrg 96266e564dSmrg/* 97266e564dSmrg * Size of ICE input/output buffers 98266e564dSmrg */ 99266e564dSmrg 100266e564dSmrg#define ICE_INBUFSIZE 1024 101266e564dSmrg 102266e564dSmrg#define ICE_OUTBUFSIZE 1024 103266e564dSmrg 104266e564dSmrg 105266e564dSmrg/* 106266e564dSmrg * Maxium number of ICE authentication methods allowed, and maxiumum 107266e564dSmrg * number of authentication data entries allowed to be set in the 108266e564dSmrg * IceSetPaAuthData function. 109266e564dSmrg * 110266e564dSmrg * We should use linked lists, but this is easier and should suffice. 111266e564dSmrg */ 112266e564dSmrg 113266e564dSmrg#define MAX_ICE_AUTH_NAMES 32 114266e564dSmrg#define ICE_MAX_AUTH_DATA_ENTRIES 100 115266e564dSmrg 116266e564dSmrg 117266e564dSmrg/* 118266e564dSmrg * ICE listen object 119266e564dSmrg */ 120266e564dSmrg 121266e564dSmrgstruct _IceListenObj { 122266e564dSmrg struct _XtransConnInfo *trans_conn; /* transport connection object */ 123266e564dSmrg char *network_id; 124266e564dSmrg IceHostBasedAuthProc host_based_auth_proc; 125266e564dSmrg}; 126266e564dSmrg 127266e564dSmrg 128266e564dSmrg/* 129266e564dSmrg * Some internal data structures for processing ICE messages. 130266e564dSmrg */ 131266e564dSmrg 132266e564dSmrgtypedef void (*_IceProcessCoreMsgProc) ( 133266e564dSmrg IceConn /* iceConn */, 134266e564dSmrg int /* opcode */, 135266e564dSmrg unsigned long /* length */, 136266e564dSmrg Bool /* swap */, 137266e564dSmrg IceReplyWaitInfo * /* replyWait */, 138266e564dSmrg Bool * /* replyReadyRet */, 139266e564dSmrg Bool * /* connectionClosedRet */ 140266e564dSmrg); 141266e564dSmrg 142266e564dSmrgtypedef struct { 143266e564dSmrg int major_version; 144266e564dSmrg int minor_version; 145266e564dSmrg _IceProcessCoreMsgProc process_core_msg_proc; 146266e564dSmrg} _IceVersion; 147266e564dSmrg 148266e564dSmrg 149266e564dSmrg/* 150266e564dSmrg * STORE FOO 151266e564dSmrg */ 152266e564dSmrg 153266e564dSmrg#define STORE_CARD8(_pBuf, _val) \ 154266e564dSmrg{ \ 155266e564dSmrg *((CARD8 *) _pBuf) = _val; \ 156266e564dSmrg _pBuf += 1; \ 157266e564dSmrg} 158266e564dSmrg 159266e564dSmrg#ifndef WORD64 160266e564dSmrg 161266e564dSmrg#define STORE_CARD16(_pBuf, _val) \ 162266e564dSmrg{ \ 163266e564dSmrg *((CARD16 *) _pBuf) = _val; \ 164266e564dSmrg _pBuf += 2; \ 165266e564dSmrg} 166266e564dSmrg 167266e564dSmrg#define STORE_CARD32(_pBuf, _val) \ 168266e564dSmrg{ \ 169266e564dSmrg *((CARD32 *) _pBuf) = _val; \ 170266e564dSmrg _pBuf += 4; \ 171266e564dSmrg} 172266e564dSmrg 173266e564dSmrg#else /* WORD64 */ 174266e564dSmrg 175266e564dSmrg#define STORE_CARD16(_pBuf, _val) \ 176266e564dSmrg{ \ 177266e564dSmrg struct { \ 178266e564dSmrg int value :16; \ 179266e564dSmrg int pad :16; \ 180266e564dSmrg } _d; \ 181266e564dSmrg _d.value = _val; \ 182266e564dSmrg memcpy (_pBuf, &_d, 2); \ 183266e564dSmrg _pBuf += 2; \ 184266e564dSmrg} 185266e564dSmrg 186266e564dSmrg#define STORE_CARD32(_pBuf, _val) \ 187266e564dSmrg{ \ 188266e564dSmrg struct { \ 189266e564dSmrg int value :32; \ 190266e564dSmrg } _d; \ 191266e564dSmrg _d.value = _val; \ 192266e564dSmrg memcpy (_pBuf, &_d, 4); \ 193266e564dSmrg _pBuf += 4; \ 194266e564dSmrg} 195266e564dSmrg 196266e564dSmrg#endif /* WORD64 */ 197266e564dSmrg 198266e564dSmrg#define STORE_STRING(_pBuf, _string) \ 199266e564dSmrg{ \ 200266e564dSmrg CARD16 _len = strlen (_string); \ 201266e564dSmrg STORE_CARD16 (_pBuf, _len); \ 202266e564dSmrg memcpy (_pBuf, _string, _len); \ 203266e564dSmrg _pBuf += _len; \ 204266e564dSmrg if (PAD32 (2 + _len)) \ 205266e564dSmrg _pBuf += PAD32 (2 + _len); \ 206266e564dSmrg} 207266e564dSmrg 208266e564dSmrg 209266e564dSmrg/* 210266e564dSmrg * EXTRACT FOO 211266e564dSmrg */ 212266e564dSmrg 213266e564dSmrg#define EXTRACT_CARD8(_pBuf, _val) \ 214266e564dSmrg{ \ 215266e564dSmrg _val = *((CARD8 *) _pBuf); \ 216266e564dSmrg _pBuf += 1; \ 217266e564dSmrg} 218266e564dSmrg 219266e564dSmrg#ifndef WORD64 220266e564dSmrg 221266e564dSmrg#define EXTRACT_CARD16(_pBuf, _swap, _val) \ 222266e564dSmrg{ \ 223266e564dSmrg _val = *((CARD16 *) _pBuf); \ 224266e564dSmrg _pBuf += 2; \ 225266e564dSmrg if (_swap) \ 226266e564dSmrg _val = lswaps (_val); \ 227266e564dSmrg} 228266e564dSmrg 229266e564dSmrg#define EXTRACT_CARD32(_pBuf, _swap, _val) \ 230266e564dSmrg{ \ 231266e564dSmrg _val = *((CARD32 *) _pBuf); \ 232266e564dSmrg _pBuf += 4; \ 233266e564dSmrg if (_swap) \ 234266e564dSmrg _val = lswapl (_val); \ 235266e564dSmrg} 236266e564dSmrg 237266e564dSmrg#else /* WORD64 */ 238266e564dSmrg 239266e564dSmrg#define EXTRACT_CARD16(_pBuf, _swap, _val) \ 240266e564dSmrg{ \ 241266e564dSmrg _val = *(_pBuf + 0) & 0xff; /* 0xff incase _pBuf is signed */ \ 242266e564dSmrg _val <<= 8; \ 243266e564dSmrg _val |= *(_pBuf + 1) & 0xff;\ 244266e564dSmrg _pBuf += 2; \ 245266e564dSmrg if (_swap) \ 246266e564dSmrg _val = lswaps (_val); \ 247266e564dSmrg} 248266e564dSmrg 249266e564dSmrg#define EXTRACT_CARD32(_pBuf, _swap, _val) \ 250266e564dSmrg{ \ 251266e564dSmrg _val = *(_pBuf + 0) & 0xff; /* 0xff incase _pBuf is signed */ \ 252266e564dSmrg _val <<= 8; \ 253266e564dSmrg _val |= *(_pBuf + 1) & 0xff;\ 254266e564dSmrg _val <<= 8; \ 255266e564dSmrg _val |= *(_pBuf + 2) & 0xff;\ 256266e564dSmrg _val <<= 8; \ 257266e564dSmrg _val |= *(_pBuf + 3) & 0xff;\ 258266e564dSmrg _pBuf += 4; \ 259266e564dSmrg if (_swap) \ 260266e564dSmrg _val = lswapl (_val); \ 261266e564dSmrg} 262266e564dSmrg 263266e564dSmrg#endif /* WORD64 */ 264266e564dSmrg 265266e564dSmrg#define EXTRACT_STRING(_pBuf, _swap, _string) \ 266266e564dSmrg{ \ 267266e564dSmrg CARD16 _len; \ 268266e564dSmrg EXTRACT_CARD16 (_pBuf, _swap, _len); \ 269266e564dSmrg _string = (char *) malloc (_len + 1); \ 270266e564dSmrg memcpy (_string, _pBuf, _len); \ 271266e564dSmrg _pBuf += _len; \ 272266e564dSmrg _string[_len] = '\0'; \ 273266e564dSmrg if (PAD32 (2 + _len)) \ 274266e564dSmrg _pBuf += PAD32 (2 + _len); \ 275266e564dSmrg} 276266e564dSmrg 277266e564dSmrg#define EXTRACT_LISTOF_STRING(_pBuf, _swap, _count, _strings) \ 278266e564dSmrg{ \ 279266e564dSmrg int _i; \ 280266e564dSmrg for (_i = 0; _i < _count; _i++) \ 281266e564dSmrg EXTRACT_STRING (_pBuf, _swap, _strings[_i]); \ 282266e564dSmrg} 283266e564dSmrg 284266e564dSmrg 285266e564dSmrg#define SKIP_STRING(_pBuf, _swap, _end, _bail) \ 286266e564dSmrg{ \ 287266e564dSmrg CARD16 _len; \ 288266e564dSmrg EXTRACT_CARD16 (_pBuf, _swap, _len); \ 289266e564dSmrg _pBuf += _len + PAD32(2+_len); \ 290266e564dSmrg if (_pBuf > _end) { \ 291266e564dSmrg _bail; \ 292266e564dSmrg } \ 293266e564dSmrg} 294266e564dSmrg 295266e564dSmrg#define SKIP_LISTOF_STRING(_pBuf, _swap, _count, _end, _bail) \ 296266e564dSmrg{ \ 297266e564dSmrg int _i; \ 298266e564dSmrg for (_i = 0; _i < _count; _i++) \ 299266e564dSmrg SKIP_STRING (_pBuf, _swap, _end, _bail); \ 300266e564dSmrg} 301266e564dSmrg 302266e564dSmrg 303266e564dSmrg 304266e564dSmrg/* 305266e564dSmrg * Byte swapping 306266e564dSmrg */ 307266e564dSmrg 308266e564dSmrg/* byte swap a long literal */ 309266e564dSmrg#define lswapl(_val) ((((_val) & 0xff) << 24) |\ 310266e564dSmrg (((_val) & 0xff00) << 8) |\ 311266e564dSmrg (((_val) & 0xff0000) >> 8) |\ 312266e564dSmrg (((_val) >> 24) & 0xff)) 313266e564dSmrg 314266e564dSmrg/* byte swap a short literal */ 315266e564dSmrg#define lswaps(_val) ((((_val) & 0xff) << 8) | (((_val) >> 8) & 0xff)) 316266e564dSmrg 317266e564dSmrg 318266e564dSmrg 319266e564dSmrg/* 320266e564dSmrg * ICE replies (not processed via callbacks because we block) 321266e564dSmrg */ 322266e564dSmrg 323266e564dSmrg#define ICE_CONNECTION_REPLY 1 324266e564dSmrg#define ICE_CONNECTION_ERROR 2 325266e564dSmrg#define ICE_PROTOCOL_REPLY 3 326266e564dSmrg#define ICE_PROTOCOL_ERROR 4 327266e564dSmrg 328266e564dSmrgtypedef struct { 329266e564dSmrg int type; 330266e564dSmrg int version_index; 331266e564dSmrg char *vendor; 332266e564dSmrg char *release; 333266e564dSmrg} _IceConnectionReply; 334266e564dSmrg 335266e564dSmrgtypedef struct { 336266e564dSmrg int type; 337266e564dSmrg char *error_message; 338266e564dSmrg} _IceConnectionError; 339266e564dSmrg 340266e564dSmrgtypedef struct { 341266e564dSmrg int type; 342266e564dSmrg int major_opcode; 343266e564dSmrg int version_index; 344266e564dSmrg char *vendor; 345266e564dSmrg char *release; 346266e564dSmrg} _IceProtocolReply; 347266e564dSmrg 348266e564dSmrgtypedef struct { 349266e564dSmrg int type; 350266e564dSmrg char *error_message; 351266e564dSmrg} _IceProtocolError; 352266e564dSmrg 353266e564dSmrg 354266e564dSmrgtypedef union { 355266e564dSmrg int type; 356266e564dSmrg _IceConnectionReply connection_reply; 357266e564dSmrg _IceConnectionError connection_error; 358266e564dSmrg _IceProtocolReply protocol_reply; 359266e564dSmrg _IceProtocolError protocol_error; 360266e564dSmrg} _IceReply; 361266e564dSmrg 362266e564dSmrg 363266e564dSmrg/* 364266e564dSmrg * Watch for ICE connection create/destroy. 365266e564dSmrg */ 366266e564dSmrg 367266e564dSmrgtypedef struct _IceWatchedConnection { 368266e564dSmrg IceConn iceConn; 369266e564dSmrg IcePointer watch_data; 370266e564dSmrg struct _IceWatchedConnection *next; 371266e564dSmrg} _IceWatchedConnection; 372266e564dSmrg 373266e564dSmrgtypedef struct _IceWatchProc { 374266e564dSmrg IceWatchProc watch_proc; 375266e564dSmrg IcePointer client_data; 376266e564dSmrg _IceWatchedConnection *watched_connections; 377266e564dSmrg struct _IceWatchProc *next; 378266e564dSmrg} _IceWatchProc; 379266e564dSmrg 380266e564dSmrg 381266e564dSmrg/* 382266e564dSmrg * Locking 383266e564dSmrg */ 384266e564dSmrg 385266e564dSmrg#define IceLockConn(_iceConn) 386266e564dSmrg#define IceUnlockConn(_iceConn) 387266e564dSmrg 388266e564dSmrg 389266e564dSmrg/* 390266e564dSmrg * Extern declarations 391266e564dSmrg */ 392266e564dSmrg 393266e564dSmrgextern IceConn _IceConnectionObjs[]; 394266e564dSmrgextern char *_IceConnectionStrings[]; 395266e564dSmrgextern int _IceConnectionCount; 396266e564dSmrg 397266e564dSmrgextern _IceProtocol _IceProtocols[]; 398266e564dSmrgextern int _IceLastMajorOpcode; 399266e564dSmrg 400266e564dSmrgextern int _IceAuthCount; 401266e564dSmrgextern char *_IceAuthNames[]; 402266e564dSmrgextern IcePoAuthProc _IcePoAuthProcs[]; 403266e564dSmrgextern IcePaAuthProc _IcePaAuthProcs[]; 404266e564dSmrg 405266e564dSmrgextern int _IceVersionCount; 406266e564dSmrgextern _IceVersion _IceVersions[]; 407266e564dSmrg 408266e564dSmrgextern _IceWatchProc *_IceWatchProcs; 409266e564dSmrg 410266e564dSmrgextern IceErrorHandler _IceErrorHandler; 411266e564dSmrgextern IceIOErrorHandler _IceIOErrorHandler; 412266e564dSmrg 413266e564dSmrg 414266e564dSmrgextern void _IceErrorBadMajor ( 415266e564dSmrg IceConn /* iceConn */, 416266e564dSmrg int /* offendingMajor */, 417266e564dSmrg int /* offendingMinor */, 418266e564dSmrg int /* severity */ 419266e564dSmrg); 420266e564dSmrg 421266e564dSmrgextern void _IceErrorNoAuthentication ( 422266e564dSmrg IceConn /* iceConn */, 423266e564dSmrg int /* offendingMinor */ 424266e564dSmrg); 425266e564dSmrg 426266e564dSmrgextern void _IceErrorNoVersion ( 427266e564dSmrg IceConn /* iceConn */, 428266e564dSmrg int /* offendingMinor */ 429266e564dSmrg); 430266e564dSmrg 431266e564dSmrgextern void _IceErrorSetupFailed ( 432266e564dSmrg IceConn /* iceConn */, 433266e564dSmrg int /* offendingMinor */, 434266e564dSmrg char * /* reason */ 435266e564dSmrg); 436266e564dSmrg 437266e564dSmrgextern void _IceErrorAuthenticationRejected ( 438266e564dSmrg IceConn /* iceConn */, 439266e564dSmrg int /* offendingMinor */, 440266e564dSmrg char * /* reason */ 441266e564dSmrg); 442266e564dSmrg 443266e564dSmrgextern void _IceErrorAuthenticationFailed ( 444266e564dSmrg IceConn /* iceConn */, 445266e564dSmrg int /* offendingMinor */, 446266e564dSmrg char * /* reason */ 447266e564dSmrg); 448266e564dSmrg 449266e564dSmrgextern void _IceErrorProtocolDuplicate ( 450266e564dSmrg IceConn /* iceConn */, 451266e564dSmrg char * /* protocolName */ 452266e564dSmrg); 453266e564dSmrg 454266e564dSmrgextern void _IceErrorMajorOpcodeDuplicate ( 455266e564dSmrg IceConn /* iceConn */, 456266e564dSmrg int /* majorOpcode */ 457266e564dSmrg); 458266e564dSmrg 459266e564dSmrgextern void _IceErrorUnknownProtocol ( 460266e564dSmrg IceConn /* iceConn */, 461266e564dSmrg char * /* protocolName */ 462266e564dSmrg); 463266e564dSmrg 464266e564dSmrgextern void _IceAddOpcodeMapping ( 465266e564dSmrg IceConn /* iceConn */, 466266e564dSmrg int /* hisOpcode */, 467266e564dSmrg int /* myOpcode */ 468266e564dSmrg); 469266e564dSmrg 470266e564dSmrgextern char *_IceGetPeerName ( 471266e564dSmrg IceConn /* iceConn */ 472266e564dSmrg); 473266e564dSmrg 474266e564dSmrgextern void _IceFreeConnection ( 475266e564dSmrg IceConn /* iceConn */ 476266e564dSmrg); 477266e564dSmrg 478266e564dSmrgextern void _IceAddReplyWait ( 479266e564dSmrg IceConn /* iceConn */, 480266e564dSmrg IceReplyWaitInfo * /* replyWait */ 481266e564dSmrg); 482266e564dSmrg 483266e564dSmrgextern IceReplyWaitInfo *_IceSearchReplyWaits ( 484266e564dSmrg IceConn /* iceConn */, 485266e564dSmrg int /* majorOpcode */ 486266e564dSmrg); 487266e564dSmrg 488266e564dSmrgextern void _IceSetReplyReady ( 489266e564dSmrg IceConn /* iceConn */, 490266e564dSmrg IceReplyWaitInfo * /* replyWait */ 491266e564dSmrg); 492266e564dSmrg 493266e564dSmrgextern Bool _IceCheckReplyReady ( 494266e564dSmrg IceConn /* iceConn */, 495266e564dSmrg IceReplyWaitInfo * /* replyWait */ 496266e564dSmrg); 497266e564dSmrg 498266e564dSmrgextern void _IceConnectionOpened ( 499266e564dSmrg IceConn /* iceConn */ 500266e564dSmrg); 501266e564dSmrg 502266e564dSmrgextern void _IceConnectionClosed ( 503266e564dSmrg IceConn /* iceConn */ 504266e564dSmrg); 505266e564dSmrg 506266e564dSmrgextern void _IceGetPoAuthData ( 507266e564dSmrg char * /* protocol_name */, 508266e564dSmrg char * /* address */, 509266e564dSmrg char * /* auth_name */, 510266e564dSmrg unsigned short * /* auth_data_length_ret */, 511266e564dSmrg char ** /* auth_data_ret */ 512266e564dSmrg); 513266e564dSmrg 514266e564dSmrgextern void _IceGetPaAuthData ( 515266e564dSmrg char * /* protocol_name */, 516266e564dSmrg char * /* address */, 517266e564dSmrg char * /* auth_name */, 518266e564dSmrg unsigned short * /* auth_data_length_ret */, 519266e564dSmrg char ** /* auth_data_ret */ 520266e564dSmrg); 521266e564dSmrg 522266e564dSmrgextern void _IceGetPoValidAuthIndices ( 523266e564dSmrg char * /* protocol_name */, 524266e564dSmrg char * /* address */, 525266e564dSmrg int /* num_auth_names */, 526266e564dSmrg char ** /* auth_names */, 527266e564dSmrg int * /* num_indices_ret */, 528266e564dSmrg int * /* indices_ret */ 529266e564dSmrg); 530266e564dSmrg 531266e564dSmrgextern void _IceGetPaValidAuthIndices ( 532266e564dSmrg char * /* protocol_name */, 533266e564dSmrg char * /* address */, 534266e564dSmrg int /* num_auth_names */, 535266e564dSmrg char ** /* auth_names */, 536266e564dSmrg int * /* num_indices_ret */, 537266e564dSmrg int * /* indices_ret */ 538266e564dSmrg); 539266e564dSmrg 540266e564dSmrg#endif /* _ICELIBINT_H_ */ 541