]> git.saurik.com Git - apple/libinfo.git/blobdiff - rpc.subproj/svc.c
Libinfo-517.30.1.tar.gz
[apple/libinfo.git] / rpc.subproj / svc.c
index b0a6a9ae6969277cc086c5434c7bf1d4250ed94a..9fc4c01f8d18f66f240fd1038008734094ae7cd7 100644 (file)
@@ -89,8 +89,13 @@ static SVCXPRT **xports;
  */
 static struct svc_callout {
        struct svc_callout *sc_next;
+#ifdef __LP64__
+       uint32_t                    sc_prog;
+       uint32_t                    sc_vers;
+#else
        u_long              sc_prog;
        u_long              sc_vers;
+#endif
        void                (*sc_dispatch)();
 } *svc_head;
 
@@ -150,11 +155,19 @@ xprt_unregister(xprt)
  */
 bool_t
 svc_register(xprt, prog, vers, dispatch, protocol)
+#ifdef __LP64__
+       SVCXPRT *xprt;
+       uint32_t prog;
+       uint32_t vers;
+       void (*dispatch)();
+       int32_t protocol;
+#else
        SVCXPRT *xprt;
        u_long prog;
        u_long vers;
        void (*dispatch)();
        int protocol;
+#endif
 {
        struct svc_callout *prev;
        register struct svc_callout *s;
@@ -186,8 +199,13 @@ pmap_it:
  */
 void
 svc_unregister(prog, vers)
+#ifdef __LP64__
+       uint32_t prog;
+       uint32_t vers;
+#else
        u_long prog;
        u_long vers;
+#endif
 {
        struct svc_callout *prev;
        register struct svc_callout *s;
@@ -211,8 +229,13 @@ svc_unregister(prog, vers)
  */
 static struct svc_callout *
 svc_find(prog, vers, prev)
+#ifdef __LP64__
+       uint32_t prog;
+       uint32_t vers;
+#else
        u_long prog;
        u_long vers;
+#endif
        struct svc_callout **prev;
 {
        register struct svc_callout *s, *p;
@@ -347,9 +370,15 @@ svcerr_noprog(xprt)
  */
 void  
 svcerr_progvers(xprt, low_vers, high_vers)
+#ifdef __LP64__
+       register SVCXPRT *xprt; 
+       uint32_t low_vers;
+       uint32_t high_vers;
+#else
        register SVCXPRT *xprt; 
        u_long low_vers;
        u_long high_vers;
+#endif
 {
        struct rpc_msg rply;
 
@@ -398,21 +427,37 @@ svc_getreqset(readfds)
        enum xprt_stat stat;
        struct rpc_msg msg;
        int prog_found;
+#ifdef __LP64__
+       uint32_t low_vers;
+       uint32_t high_vers;
+#else
        u_long low_vers;
        u_long high_vers;
+#endif
        struct svc_req r;
        register SVCXPRT *xprt;
+#ifdef __LP64__
+       register uint32_t mask;
+#else
        register u_long mask;
+#endif
        register int bit;
+#ifdef __LP64__
+       register uint32_t *maskp;
+#else
        register u_long *maskp;
+#endif
        register int sock;
        char cred_area[2*MAX_AUTH_BYTES + RQCRED_SIZE];
        msg.rm_call.cb_cred.oa_base = cred_area;
        msg.rm_call.cb_verf.oa_base = &(cred_area[MAX_AUTH_BYTES]);
        r.rq_clntcred = &(cred_area[2*MAX_AUTH_BYTES]);
 
-
+#ifdef __LP64__
+       maskp = (uint32_t *)readfds->fds_bits;
+#else
        maskp = (u_long *)readfds->fds_bits;
+#endif
        for (sock = 0; sock <= svc_maxfd; sock += NFDBITS) {
            for (mask = *maskp++; (bit = ffs(mask)); mask ^= (1 << (bit - 1))) {
                if ((sock + bit) > (svc_maxfd + 1))