/* @(#)56	1.3  src/rpc/sys_idl/rpctypes.idl, rpc.idl.src, os2dce21.dss, 960602a.1 5/17/95 09:46:56 */
/*
 * COMPONENT_NAME:  rpc.idl.src 
 *
 * FUNCTIONS: 
 *
 * ORIGINS: 72
 *
 */
/*
 * (c) Copyright 1990, 1991 OPEN SOFTWARE FOUNDATION, INC.
 * ALL RIGHTS RESERVED
 * COPYRIGHT NOTICE
 * Copyright (c) 1990, 1991, 1992, 1993 Open Software Foundation, Inc.
 * ALL RIGHTS RESERVED (DCE).  See the file named COPYRIGHT.DCE in the
 * src directory for the full copyright text.
 */
/*
 * HISTORY
 * $Log: rpctypes.idl,v $
 * Revision 1.1.2.3  1993/01/04  00:10:30  bbelch
 * 	Embedding copyright notice
 * 	[1993/01/03  20:16:05  bbelch]
 *
 * Revision 1.1.2.2  1992/12/23  21:21:11  zeliff
 * 	Embedding copyright notice
 * 	[1992/12/23  15:47:47  zeliff]
 * 
 * Revision 1.1  1992/01/19  03:13:37  devrcs
 * 	Initial revision
 * 
 * $EndLog$
 */
/*
**  Copyright (c) 1989 by
**      Hewlett-Packard Company, Palo Alto, Ca. & 
**      Digital Equipment Corporation, Maynard, Mass.
**
**
**  NAME:
**
**      rpctypes.idl
**
**  FACILITY:
**
**      Remote Procedure Call
**
**  ABSTRACT:
**
**  This module contains the non-local type definitions required for
**  the API of the RPC Runtime System.
**
**
*/

[ pointer_default (ref) ]

interface rpctypes
{

/*************************************************************************/
/*************************  Common definitions  **************************/
/*************************************************************************/

/*
 * Interface identifier structure, consisting of uuid and major and minor
 * version fields.
 */
typedef struct rpc_if_id_t   /* OT7619, CMVC5209, rpc_if_id_t added */
{
    uuid_t                  uuid;
    unsigned16              vers_major;
    unsigned16              vers_minor;
} rpc_if_id_t;
typedef [ptr] rpc_if_id_t *rpc_if_id_p_t;

/*
 * A vector of interface identifiers.
 */
typedef struct rpc_if_id_vector_t  /* OT7619, CMVC5209, rpc_if_id_vector_t added */
{
    unsigned32              count;
    [size_is(count)]
    rpc_if_id_p_t           if_id[*];
} rpc_if_id_vector_t;
typedef [ptr] rpc_if_id_vector_t *rpc_if_id_vector_p_t;
 
/*
 * Version options (choices for matching on version numbers).
 */
const long  rpc_c_vers_all              = 1;
const long  rpc_c_vers_compatible       = 2;
const long  rpc_c_vers_exact            = 3;
const long  rpc_c_vers_major_only       = 4;
const long  rpc_c_vers_upto             = 5;

/*************************************************************************/
/******************  Management Services definitions  ********************/
/*************************************************************************/

/*
 * Constants for accessing values in statistics vector
 * - the max size should always be last in this list
 */
const long  rpc_c_stats_calls_in            = 0;
const long  rpc_c_stats_calls_out           = 1;
const long  rpc_c_stats_pkts_in             = 2;
const long  rpc_c_stats_pkts_out            = 3;
const long  rpc_c_stats_array_max_size      = 4;

/*
 * Statistics vector returned by management inquiry
 */
typedef struct rpc_stats_vector_t  /* OT7619, CMVC5209, rpc_stats_vector_t added */
{
    unsigned32          count;
    unsigned32          stats[1];       /* length_is (count) */
} rpc_stats_vector_t, *rpc_stats_vector_p_t;

/*************************************************************************/
/*******************  Endpoint Service definitions  **********************/
/*************************************************************************/

const long  rpc_c_ep_all_elts               = 0;
const long  rpc_c_ep_match_by_if            = 1;
const long  rpc_c_ep_match_by_obj           = 2;
const long  rpc_c_ep_match_by_both          = 3;

}
