Annotation of mstools/h/rpcndr.h, revision 1.1.1.2

1.1.1.2 ! root        1: 
        !             2: /*++
        !             3: 
        !             4: Copyright (c) 1992 Microsoft Corporation
        !             5: 
        !             6: Module Name:
        !             7: 
        !             8:     floatc.cxx
        !             9: 
        !            10: Abstract:
        !            11: 
        !            12:     Float and double conversion routines.
        !            13: 
        !            14: Author:
        !            15: 
        !            16:     DonnaLi (??-??-91)
        !            17: 
        !            18: Environment:
        !            19: 
        !            20:     This code should execute in all environments supported by RPC
        !            21:     (DOS, Win 3.X, and Win/NT as well as OS2).
        !            22: 
        !            23: Revision History:
        !            24: 
        !            25:    DONNALI  08-29-91     Start recording history
        !            26:    donnali  09-11-91     change conversion macros
        !            27:    donnali  09-18-91     check in files for moving
        !            28:    STEVEZ   10-15-91     Merge with NT tree
        !            29:    donnali  10-28-91     add prototype
        !            30:    donnali  11-19-91     bugfix for strings
        !            31:    MIKEMON  12-17-91     DCE runtime API conversion
        !            32:    donnali  03-24-92     change rpc public header f
        !            33:    STEVEZ   04-04-92     add nsi include
        !            34:    mikemon  04-18-92     security support and misc
        !            35:    DovhH    04-24-24     Changed signature of <int>_from_ndr
        !            36:                          (to unsigned <int>)
        !            37:                          Added <base_type>_array_from_ndr routines
        !            38: Comments:
        !            39: 
        !            40:     This file does not belong in runtime\mtrt.  Needs to move to
        !            41:     ndrlib directory (after code freeze).
        !            42: 
        !            43: --*/
1.1       root       44: 
                     45: #ifndef __RPCNDR_H__
                     46: #define __RPCNDR_H__
                     47: 
1.1.1.2 ! root       48: #include "rpcnsip.h"
        !            49: 
        !            50: #ifdef __cplusplus
        !            51: extern "C" {
        !            52: #endif
        !            53: 
        !            54: /*
        !            55: 
        !            56:      Network Computing Architecture (NCA) definition:
        !            57: 
        !            58:      Network Data Representation: (NDR) Label format:
        !            59:      An unsigned long (32 bits) with the following layout:
        !            60: 
        !            61:      3 3 2 2 2 2 2 2 2 2 2 2 1 1 1 1 1 1 1 1 1 1
        !            62:      1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0 9 8 7 6 5 4 3 2 1 0
        !            63:     +---------------+---------------+---------------+-------+-------+
        !            64:     |   Reserved    |   Reserved    |Floating point | Int   | Char  |
        !            65:     |               |               |Representation | Rep.  | Rep.  |
        !            66:     +---------------+---------------+---------------+-------+-------+
        !            67: 
        !            68:      Where
        !            69: 
        !            70:          Reserved:
        !            71: 
        !            72:              Must be zero (0) for NCA 1.5 and NCA 2.0.
        !            73: 
        !            74:          Floating point Representation is:
        !            75: 
        !            76:              0 - IEEE
        !            77:              1 - VAX
        !            78:              2 - Cray
        !            79:              3 - IBM
        !            80: 
        !            81:          Int Rep. is Integer Representation:
        !            82: 
        !            83:              0 - Big Endian
        !            84:              1 - Little Endian
        !            85: 
        !            86:          Char Rep. is Character Representation:
        !            87: 
        !            88:              0 - ASCII
        !            89:              1 - EBCDIC
        !            90: 
        !            91:      The Microsoft Local Data Representation (for all platforms which are
        !            92:      of interest currently is edefined below:
        !            93: 
1.1       root       94: */
                     95: 
1.1.1.2 ! root       96: #define NDR_CHAR_REP_MASK               (unsigned long)0X0000000FL
        !            97: #define NDR_INT_REP_MASK                (unsigned long)0X000000F0L
        !            98: #define NDR_FLOAT_REP_MASK              (unsigned long)0X0000FF00L
        !            99: 
        !           100: #define NDR_LITTLE_ENDIAN               (unsigned long)0X00000010L
        !           101: #define NDR_BIG_ENDIAN                  (unsigned long)0X00000000L
        !           102: 
        !           103: #define NDR_IEEE_FLOAT                  (unsigned long)0X00000000L
        !           104: #define NDR_VAX_FLOAT                   (unsigned long)0X00000100L
        !           105: 
        !           106: #define NDR_ASCII_CHAR                  (unsigned long)0X00000000L
        !           107: #define NDR_EBCDIC_CHAR                 (unsigned long)0X00000001L
        !           108: 
        !           109: #define NDR_LOCAL_DATA_REPRESENTATION   (unsigned long)0X00000010L
        !           110: 
        !           111: /*
        !           112:  * Context related definitions:
        !           113:  *
        !           114:  * Client and Server Contexts.  Just enough of the structure is exposed
        !           115:  * to allow access to some public fields
        !           116:  *
        !           117:  */
        !           118: 
        !           119: typedef struct {RPC_BINDING_HANDLE hRPC;} PAPI * NDR_CCONTEXT;
1.1       root      120: typedef struct {void * pad[2]; void * userContext; } * NDR_SCONTEXT;
                    121: 
                    122: #define NDRSContextValue(hContext) (&(hContext)->userContext)
                    123: #define NDRCContextBinding(hContext) ((hContext)->hRPC)
                    124: 
                    125: #define cbNDRContext 20         /* size of context on WIRE */
                    126: 
                    127: typedef void (*NDR_RUNDOWN)(void * context);
                    128: 
                    129: void RPC_ENTRY
                    130: NDRCContextMarshall (
                    131:         IN  NDR_CCONTEXT CContext,
                    132:         OUT void PAPI *pBuff
                    133:         );
                    134: 
                    135: void RPC_ENTRY
                    136: NDRCContextUnmarshall (
                    137:         OUT NDR_CCONTEXT PAPI *pCContext,
1.1.1.2 ! root      138:         IN  RPC_BINDING_HANDLE hBinding,
1.1       root      139:         IN  void PAPI *pBuff,
1.1.1.2 ! root      140:         IN  unsigned long DataRepresentation
1.1       root      141:         );
                    142: 
                    143: void RPC_ENTRY
                    144: NDRSContextMarshall (
                    145:         IN  NDR_SCONTEXT CContext,
                    146:         OUT void PAPI *pBuff,
                    147:         IN  NDR_RUNDOWN userRunDownIn
                    148:         );
                    149: 
                    150: NDR_SCONTEXT RPC_ENTRY
                    151: NDRSContextUnmarshall (
1.1.1.2 ! root      152:     IN  void PAPI *pBuff,
        !           153:     IN  unsigned long DataRepresentation
        !           154:     );
1.1       root      155: 
                    156: void RPC_ENTRY
                    157: NDRcopy (
1.1.1.2 ! root      158:     IN void PAPI *pTarget,
        !           159:     IN void PAPI *pSource,
        !           160:     IN unsigned int size
        !           161:     );
        !           162: 
        !           163: /*
        !           164:  *  Other MIDL base types / predefined types:
        !           165:  */
        !           166: 
        !           167: typedef unsigned char byte;
        !           168: typedef unsigned char boolean;
        !           169: 
        !           170: #ifndef _WCHAR_T_DEFINED
        !           171: typedef unsigned short wchar_t;
        !           172: #define _WCHAR_T_DEFINED
        !           173: #endif
        !           174: 
        !           175: #ifndef _SIZE_T_DEFINED
        !           176: typedef unsigned int size_t;
        !           177: #define _SIZE_T_DEFINED
        !           178: #endif
        !           179: 
        !           180: #ifdef __RPC_DOS__
        !           181: #define __RPC_FAR          _far
        !           182: #define __RPC_CALLEE_STUB
        !           183: #endif
        !           184: 
        !           185: #ifdef __RPC_WIN16__
        !           186: #define __RPC_FAR          _far
        !           187: #define __RPC_CALLEE_STUB  _export
        !           188: #endif
        !           189: 
        !           190: #ifdef __RPC_WIN32__
        !           191: #define __RPC_FAR
        !           192: #define __RPC_EXPORT
        !           193: #endif
        !           194: 
        !           195: #ifdef __RPC_OS2_1X__
        !           196: #define __RPC_FAR          _far
        !           197: #define __RPC_CALLEE_STUB  _loadds
        !           198: #endif
        !           199: 
        !           200: #ifndef __MIDL_USER_DEFINED
        !           201: #define midl_user_allocate MIDL_user_allocate
        !           202: #define midl_user_free     MIDL_user_free
        !           203: #define __MIDL_USER_DEFINED
        !           204: #endif
        !           205: 
        !           206: 
        !           207: /*
        !           208:  *
        !           209:  *  Base type conversion macros:
        !           210:  *
        !           211:  */
        !           212: 
        !           213: #define byte_from_ndr(source, target) \
        !           214:     { \
        !           215:     *target = *(*(char **)&source->Buffer)++; \
        !           216:     }
        !           217: 
        !           218: #define boolean_from_ndr(source, target) \
        !           219:     { \
        !           220:     *target = *(*(char **)&source->Buffer)++; \
        !           221:     }
        !           222: 
        !           223: #define small_from_ndr(source, target) \
        !           224:     { \
        !           225:     *target = *(*(char **)&source->Buffer)++; \
        !           226:     }
        !           227: 
        !           228: /*
        !           229:  *
        !           230:  *  Character and string support routines:
        !           231:  *
        !           232:  */
        !           233: 
        !           234: int RPC_ENTRY
        !           235: MIDL_wchar_strlen (
        !           236:     IN wchar_t      s[]
        !           237:     );
        !           238: 
        !           239: void RPC_ENTRY
        !           240: MIDL_wchar_strcpy (
        !           241:     OUT void  *     t,
        !           242:     IN wchar_t *    s
        !           243:     );
        !           244: 
        !           245: /*
        !           246:  *
        !           247:  *  Base type conversion routines:
        !           248:  *
        !           249:  */
        !           250: 
        !           251: void RPC_ENTRY
        !           252: char_from_ndr (
        !           253:     IN OUT PRPC_MESSAGE     SourceMessage,
        !           254:     OUT unsigned char *     Target
        !           255:     );
        !           256: 
        !           257: void RPC_ENTRY
        !           258: char_array_from_ndr (
        !           259:     IN OUT PRPC_MESSAGE     SourceMessage,
        !           260:     IN unsigned int         MemberCount,
        !           261:     OUT unsigned char       Target[]
        !           262:     );
        !           263: 
        !           264: void RPC_ENTRY
        !           265: short_from_ndr (
        !           266:     IN OUT PRPC_MESSAGE     source,
        !           267:     OUT unsigned short *    target
        !           268:     );
        !           269: 
        !           270: void RPC_ENTRY
        !           271: short_array_from_ndr(
        !           272:     IN OUT PRPC_MESSAGE     SourceMessage,
        !           273:     IN unsigned int         MemberCount,
        !           274:     OUT unsigned short      Target[]
        !           275:     );
        !           276: 
        !           277: void RPC_ENTRY
        !           278: short_from_ndr_temp (
        !           279:     IN OUT unsigned char ** source,
        !           280:     OUT unsigned short *    target,
        !           281:     IN unsigned long        format
        !           282:     );
        !           283: 
        !           284: void RPC_ENTRY
        !           285: long_from_ndr (
        !           286:     IN OUT PRPC_MESSAGE     source,
        !           287:     OUT unsigned long *     target
        !           288:     );
        !           289: 
        !           290: void RPC_ENTRY
        !           291: long_array_from_ndr(
        !           292:     IN OUT PRPC_MESSAGE     SourceMessage,
        !           293:     IN unsigned int         MemberCount,
        !           294:     OUT unsigned long       Target[]
        !           295:     );
        !           296: 
        !           297: void RPC_ENTRY
        !           298: long_from_ndr_temp (
        !           299:     IN OUT unsigned char ** source,
        !           300:     OUT unsigned long *     target,
        !           301:     IN unsigned long        format
        !           302:     );
        !           303: 
        !           304: void RPC_ENTRY
        !           305: enum_from_ndr(
        !           306:     IN OUT PRPC_MESSAGE     SourceMessage,
        !           307:     OUT unsigned int *      Target
        !           308:     );
        !           309: 
        !           310: void RPC_ENTRY
        !           311: float_from_ndr (
        !           312:     IN OUT PRPC_MESSAGE     SourceMessage,
        !           313:     OUT void *              Target
        !           314:     );
        !           315: 
        !           316: void RPC_ENTRY
        !           317: float_array_from_ndr (
        !           318:     IN OUT PRPC_MESSAGE     SourceMessage,
        !           319:     IN unsigned int         MemberCount,
        !           320:     OUT void *              Target
        !           321:     );
        !           322: 
        !           323: void RPC_ENTRY
        !           324: double_from_ndr (
        !           325:     IN OUT PRPC_MESSAGE     SourceMessage,
        !           326:     OUT void *              Target
        !           327:     );
        !           328: 
        !           329: void RPC_ENTRY
        !           330: double_array_from_ndr (
        !           331:     IN OUT PRPC_MESSAGE     SourceMessage,
        !           332:     IN unsigned int         MemberCount,
        !           333:     OUT void *              Target
        !           334:     );
        !           335: 
        !           336: /*
        !           337:  *
        !           338:  *  Other data conversion / unmarshalling routines:
        !           339:  *
        !           340:  */
        !           341: 
        !           342: void RPC_ENTRY
        !           343: data_from_ndr (
        !           344:     PRPC_MESSAGE        source,
        !           345:     void *              target,
        !           346:     char *              format,
        !           347:     unsigned char       MscPak
        !           348:     );
        !           349: 
        !           350: void RPC_ENTRY
        !           351: tree_into_ndr (
        !           352:     void *              source,
        !           353:     PRPC_MESSAGE        target,
        !           354:     char *              format,
        !           355:     unsigned char       MscPak
        !           356:     );
        !           357: 
        !           358: void RPC_ENTRY
        !           359: tree_size_ndr (
        !           360:     void *              source,
        !           361:     PRPC_MESSAGE        target,
        !           362:     char *              format,
        !           363:     unsigned char       MscPak
        !           364:     );
        !           365: 
        !           366: void RPC_ENTRY
        !           367: tree_peek_ndr (
        !           368:     PRPC_MESSAGE        source,
        !           369:     unsigned char **    buffer,
        !           370:     char *              format
        !           371:     );
        !           372: 
        !           373: void PAPI * RPC_ENTRY
        !           374: midl_allocate (
        !           375:     size_t      size
        !           376:     );
        !           377: 
        !           378: #ifdef __cplusplus
        !           379: }
        !           380: #endif
1.1       root      381: 
1.1.1.2 ! root      382: #endif /* __RPCNDR_H__ */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.