rx-xdr-rename-userland-symbols-also-on-amd64-linux-20030627
[openafs.git] / src / rx / xdr.h
index c74a8f0..03839aa 100644 (file)
 #include <winsock2.h>
 #endif /* _MFC_VER */
 #endif
+#ifndef bool_t
 #define        bool_t  int
 #define        enum_t  int
+#endif
 #ifndef FALSE
 #define        FALSE   0
 #endif /* !FALSE */
 #define mem_free(ptr, bsize)   free(ptr)
 #endif
 
+#if defined(AFS_AMD64_LINUX24_ENV) || (defined(KERNEL) && !defined(UKERNEL))
+#define xdr_void afs_xdr_void
+#define xdr_int afs_xdr_int
+#define xdr_u_int afs_xdr_u_int
+#define xdr_short afs_xdr_short
+#define xdr_u_short afs_xdr_u_short
+#define xdr_long afs_xdr_long
+#define xdr_u_long afs_xdr_u_long
+#define xdr_char afs_xdr_char
+#define xdr_u_char afs_xdr_u_char
+#define xdr_bool afs_xdr_bool
+#define xdr_enum afs_xdr_enum
+#define xdr_array afs_xdr_array
+#define xdr_arrayN afs_xdr_arrayN
+#define xdr_bytes afs_xdr_bytes
+#define xdr_opaque afs_xdr_opaque
+#define xdr_string afs_xdr_string
+#define xdr_union afs_xdr_union
+#define xdr_float afs_xdr_float
+#define xdr_double afs_xdr_double
+#define xdr_reference afs_xdr_reference
+#define xdr_wrapstring afs_xdr_wrapstring
+#define xdr_vector afs_xdr_vector
+#define xdr_int64 afs_xdr_int64
+#define xdr_uint64 afs_xdr_uint64
+#endif
+
 #ifdef KERNEL
-void *afs_osi_Alloc();
 #define        osi_alloc               afs_osi_Alloc
 #define        osi_free                afs_osi_Free
+
+/* keep here for now, 64 bit issues */
+extern void *afs_osi_Alloc(size_t x);
+extern void *afs_osi_Alloc_NoSleep(size_t x);
+extern void afs_osi_Free(void *x, size_t asize);
+
 #endif
 #ifndef major          /* ouch! */
 #include <sys/types.h>
@@ -133,7 +167,12 @@ enum xdr_op {
  * allocate dynamic storage of the appropriate size and return it.
  * bool_t      (*xdrproc_t)(XDR *, caddr_t *);
  */
+#if 0
 typedef        bool_t (*xdrproc_t)();
+#else
+typedef bool_t (*xdrproc_t) (void *, ...);
+#endif
+
 
 /*
  * The XDR handle.
@@ -144,28 +183,28 @@ typedef   bool_t (*xdrproc_t)();
 typedef struct {
        enum xdr_op     x_op;           /* operation; fast additional param */
        struct xdr_ops {
-#if defined(AFS_SGI61_ENV) && defined(KERNEL) && (_MIPS_SZLONG != _MIPS_SZINT)
+#if defined(KERNEL) && ((defined(AFS_SGI61_ENV) && (_MIPS_SZLONG != _MIPS_SZINT)) || defined(AFS_HPUX_64BIT_ENV))
 /* NOTE: SGI 6.1 adds two routines to the xdr_ops if the size of a long is
  * 64 bits. I've only done this for the kernel, since other changes may
  * be necessary if we make a 64 bit user version of AFS.
  */
-               bool_t  (*x_getint64)(); /* get 32 bits into a long */
-               bool_t  (*x_putint64)(); /* send 32 bits of a long */
-#endif /* AFS_SGI61_ENV */
+               bool_t  (*x_getint64)(void *xdrs, afs_int64 *lp); /* get 32 bits into a long */
+               bool_t  (*x_putint64)(void *xdrs, afs_int64 *lp); /* send 32 bits of a long */
+#endif /* defined(KERNEL) && ((defined(AFS_SGI61_ENV) && (_MIPS_SZLONG != _MIPS_SZINT)) || defined(AFS_HPUX_64BIT_ENV)) */
 #if !(defined(KERNEL) && defined(AFS_SUN57_ENV))
-               bool_t  (*x_getint32)();        /* get an afs_int32 from underlying stream */
-               bool_t  (*x_putint32)();        /* put an afs_int32 to " */
+               bool_t  (*x_getint32)(void *xdrs, afs_int32 *lp);       /* get an afs_int32 from underlying stream */
+               bool_t  (*x_putint32)(void *xdrs, afs_int32 *lp);       /* put an afs_int32 to " */
 #endif
-               bool_t  (*x_getbytes)();/* get some bytes from " */
-               bool_t  (*x_putbytes)();/* put some bytes to " */
-               u_int   (*x_getpostn)();/* returns bytes off from beginning */
-               bool_t  (*x_setpostn)();/* lets you reposition the stream */
-               afs_int32 *     (*x_inline)();  /* buf quick ptr to buffered data */
-               void    (*x_destroy)(); /* free privates of this xdr_stream */
+               bool_t  (*x_getbytes)(void *xdrs, caddr_t addr, u_int len);/* get some bytes from " */
+               bool_t  (*x_putbytes)(void *xdrs, caddr_t addr, u_int len);/* put some bytes to " */
+               u_int   (*x_getpostn)(void *xdrs);/* returns bytes off from beginning */
+               bool_t  (*x_setpostn)(void *xdrs, u_int pos);/* lets you reposition the stream */
+               afs_int32 *     (*x_inline)(void *xdrs, u_int len);     /* buf quick ptr to buffered data */
+               void    (*x_destroy)(void *xdrs);       /* free privates of this xdr_stream */
 #if defined(KERNEL) && defined(AFS_SUN57_ENV)
-               bool_t  (*x_control)();
-               bool_t  (*x_getint32)();
-               bool_t  (*x_putint32)();
+               bool_t  (*x_control)(void *xdrs);
+               bool_t  (*x_getint32)(void *xdrs, afs_int32 *lp);
+               bool_t  (*x_putint32)(void *xdrs, afs_int32 *lp);
 #endif
        } *x_ops;
        caddr_t         x_public;       /* users' data */
@@ -183,7 +222,7 @@ typedef struct {
  * u_int        len;
  * u_int        pos;
  */
-#if defined(AFS_SGI61_ENV) && defined(KERNEL) && (_MIPS_SZLONG != _MIPS_SZINT)
+#if defined(AFS_SGI61_ENV) && defined(KERNEL) && (_MIPS_SZLONG != _MIPS_SZINT) || defined(AFS_HPUX_64BIT_ENV)
 #define XDR_GETINT64(xdrs, int64p)                     \
        (*(xdrs)->x_ops->x_getint64)(xdrs, int64p)
 #define xdr_getint64(xdrs, int64p)                     \
@@ -193,7 +232,7 @@ typedef struct {
        (*(xdrs)->x_ops->x_putint64)(xdrs, int64p)
 #define xdr_putint64(xdrs, int64p)                     \
        (*(xdrs)->x_ops->x_putint64)(xdrs, int64p)
-#endif /* defined(AFS_SGI61_ENV) && KERNEL && (_MIPS_SZLONG != _MIPS_SZINT) */
+#endif /* defined(KERNEL) && ((defined(AFS_SGI61_ENV) && (_MIPS_SZLONG != _MIPS_SZINT)) || defined(AFS_HPUX_64BIT_ENV)) */
 
 #define XDR_GETINT32(xdrs, int32p)                     \
        (*(xdrs)->x_ops->x_getint32)(xdrs, int32p)
@@ -283,61 +322,6 @@ struct xdr_discrim {
 #define IXDR_PUT_SHORT(buf, v)         IXDR_PUT_INT32((buf), ((afs_int32)(v)))
 #define IXDR_PUT_U_SHORT(buf, v)       IXDR_PUT_INT32((buf), ((afs_int32)(v)))
 
-/*
- * These are the "generic" xdr routines.
- */
-extern bool_t  xdr_void();
-extern bool_t  xdr_int();
-extern bool_t  xdr_u_int();
-extern bool_t  xdr_short();
-extern bool_t  xdr_u_short();
-extern bool_t  xdr_long();
-extern bool_t  xdr_char();
-extern bool_t  xdr_u_char();
-extern bool_t  xdr_bool();
-extern bool_t  xdr_enum();
-extern bool_t  xdr_array();
-extern bool_t  xdr_bytes();
-extern bool_t  xdr_opaque();
-extern bool_t  xdr_string();
-extern bool_t  xdr_union();
-extern bool_t  xdr_float();
-extern bool_t  xdr_double();
-extern bool_t  xdr_reference();
-extern bool_t  xdr_wrapstring();
-extern bool_t  xdr_vector();
-extern bool_t   xdr_int64();
-extern bool_t   xdr_uint64();
-
-/*
- * These are the public routines for the various implementations of
- * xdr streams.
- */
-extern void   xdrmem_create();         /* XDR using memory buffers */
-extern void   xdrrx_create();          /* XDR using rx */
-extern void   xdrstdio_create();       /* XDR using stdio library */
-extern void   xdrrec_create();         /* XDR pseudo records for tcp */
-extern bool_t xdrrec_endofrecord();    /* make end of xdr record */
-extern bool_t xdrrec_skiprecord();     /* move to begining of next record */
-extern bool_t xdrrec_eof();            /* true iff no more input */
-
-/*
- * If you change the definitions of xdr_afs_int32 and xdr_afs_uint32, be sure
- * to change them in BOTH rx/xdr.h and rxgen/rpc_main.c.  Also, config/stds.h
- * has the defines for afs_int32 which should match below.
- */
-
-#ifndef xdr_afs_int32
-#define xdr_afs_int32 xdr_int
-#endif
-#ifndef xdr_afs_uint32
-#define xdr_afs_uint32 xdr_u_int
-#endif
-#ifndef xdr_afs_int64
-#define xdr_afs_int64 xdr_int64
-#endif
-#ifndef xdr_afs_uint64
-#define xdr_afs_uint64 xdr_uint64
-#endif
+#include "xdr_prototypes.h"
 
 #endif /* __XDR_INCLUDE__ */