libnfs-zdr.h: wrap in extern "C" for C++ compatibility
[deb_libnfs.git] / include / nfsc / libnfs-zdr.h
index 44f73786c91d97330884ee67fb01f947183eb1ef..501875efd66ba2e640a677da053fcfbeec1a4f5e 100644 (file)
  * and slightly modified.
  ************************************************************/
 
-#include "config.h"
-
 #ifndef _LIBNFS_ZDR_H_
 #define _LIBNFS_ZDR_H_
 
+#ifdef WIN32
+#ifndef CADDR_T_DEFINED
+#define CADDR_T_DEFINED
+typedef char *caddr_t;
+#endif
+#endif
+
 #include <stdio.h>
 #include <assert.h>
 #include <stdint.h>
 #include <sys/types.h>
 
+#ifdef __cplusplus
+extern "C" {
+#endif
+
 #define _RPC_RPC_H 1
 #define _RPC_ZDR_H 1
 #define _RPC_AUTH_H 1
@@ -43,6 +52,7 @@
 /* we dont need these */
 typedef void CLIENT;
 struct svc_req {
+       int _dummy_;
 };
 typedef void SVCXPRT;
 
@@ -58,8 +68,12 @@ typedef void SVCXPRT;
 #define IZDR_PUT_BOOL(...)             assert(0)
 #define IZDR_GET_BOOL(...)             (assert(0), 0)
 
+#ifndef TRUE
 #define TRUE           1
+#endif
+#ifndef FALSE
 #define FALSE          0
+#endif
 
 enum zdr_op {
        ZDR_ENCODE = 0,
@@ -88,8 +102,6 @@ typedef uint32_t bool_t;
 
 typedef int (*zdrproc_t) (ZDR *, void *,...);
 
-/* XXX find out what we can get rid of */
-
 #define AUTH_NONE 0
 #define AUTH_NULL 0
 #define AUTH_UNIX 1
@@ -178,8 +190,8 @@ struct rejected_reply {
        enum reject_stat stat;
        union {
                struct {
-                       u_long low;
-                       u_long high;
+                       uint32_t low;
+                       uint32_t high;
                } mismatch_info;
                enum auth_stat stat;
        } reject_data;
@@ -272,4 +284,8 @@ struct AUTH *libnfs_authunix_create_default(void);
 #define auth_destroy libnfs_auth_destroy
 void libnfs_auth_destroy(struct AUTH *auth);
 
+#ifdef __cplusplus
+}
+#endif
+
 #endif