/* @(#)48	1.3  src/rpc/sys_idl/ndrold.idl, rpc.idl.src, os2dce21.dss, 960602a.1 5/17/95 09:47:39 */
/*
 * 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: ndrold.idl,v $
 * Revision 1.1.2.3  1993/01/04  00:10:12  bbelch
 * 	Embedding copyright notice
 * 	[1993/01/03  20:15:34  bbelch]
 *
 * Revision 1.1.2.2  1992/12/23  21:20:36  zeliff
 * 	Embedding copyright notice
 * 	[1992/12/23  15:47:14  zeliff]
 * 
 * Revision 1.1  1992/01/19  03:13:29  devrcs
 * 	Initial revision
 * 
 * $EndLog$
 */
/*
**  Copyright (c) 1989 by
**      Hewlett-Packard Company, Palo Alto, Ca. & 
**      Digital Equipment Corporation, Maynard, Mass.
**
**
**  NAME:
**
**      ndrold.idl
**
**  FACILITY:
**
**      Network Data Representation (NDR)
**
**  ABSTRACT:
**
**  !---------------------------------------!
**  !-- THIS INTERFACE FOR IMPORTING ONLY --!
**  !---- DO NOT COMPILE THIS INTERFACE ----!
**  !---------------------------------------!
**
**  This local interface logically defines the data type "ndr_old_format_t"
**  (called "rpc_$drep_t" prior to v2).  The actual representation of
**  this data type is not expressible in NIDL since it is a struct that
**  uses bit field descriptions.  For binary compatibility with old
**  (pre-v2) stubs, we need to maintain the exact bit field representation.
**  The problem with not defining this data type in NIDL is that the
**  data type needs to be used in the definitions of other local
**  interfaces.  (These local interfaces are part of v2.) Prior to v2,
**  the way we solved this problem was to make the NIDL compiler treat
**  "rpc_$drep_t" as a builtin type.  This less-than-ideal solution was
**  not carried forward to v2.  Instead, we do something almost as ugly,
**  but which requires no hacks to the NIDL compiler itself.  What we
**  do is make local interfaces that need this data type import this
**  interface.  This makes use of this data type valid.  However, we
**  never actually run this interface itself through the NIDL compiler.
**  Rather, we make the build process substitute a hand-crafted "ndrold.h"
**  which contains the correct definition of "ndr_old_format_t".
**
**
*/

[local] interface ndrold
{

/* 
 * Data representation descriptor type for NCS pre-v2.
 */
 
typedef struct ndr_old_format_t   /* OT7619, CMVC5209, ndr_old_format_t added */
{
    unsigned long int_rep /* : 4 */;
    unsigned long char_rep /* : 4 */;
    unsigned long float_rep /* : 8 */;
    unsigned long reserved /*: 16 */;
} ndr_old_format_t;

}
