]> git.saurik.com Git - apple/xnu.git/blobdiff - bsd/netat/at_aarp.h
xnu-1228.3.13.tar.gz
[apple/xnu.git] / bsd / netat / at_aarp.h
index c7fd5352466bbd1d44c5b10b77ecccfc54e0e377..28b03bcbe44bedc2667f1c54a298d22dfdefe1d4 100644 (file)
@@ -1,27 +1,39 @@
 /*
  * Copyright (c) 2000 Apple Computer, Inc. All rights reserved.
  *
- * @APPLE_LICENSE_HEADER_START@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_START@
  * 
- * The contents of this file constitute Original Code as defined in and
- * are subject to the Apple Public Source License Version 1.1 (the
- * "License").  You may not use this file except in compliance with the
- * License.  Please obtain a copy of the License at
- * http://www.apple.com/publicsource and read it before using this file.
+ * This file contains Original Code and/or Modifications of Original Code
+ * as defined in and that are subject to the Apple Public Source License
+ * Version 2.0 (the 'License'). You may not use this file except in
+ * compliance with the License. The rights granted to you under the License
+ * may not be used to create, or enable the creation or redistribution of,
+ * unlawful or unlicensed copies of an Apple operating system, or to
+ * circumvent, violate, or enable the circumvention or violation of, any
+ * terms of an Apple operating system software license agreement.
  * 
- * This Original Code and all software distributed under the License are
- * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
+ * Please obtain a copy of the License at
+ * http://www.opensource.apple.com/apsl/ and read it before using this file.
+ * 
+ * The Original Code and all software distributed under the License are
+ * distributed on an 'AS IS' basis, WITHOUT WARRANTY OF ANY KIND, EITHER
  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
- * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
- * License for the specific language governing rights and limitations
- * under the License.
+ * FITNESS FOR A PARTICULAR PURPOSE, QUIET ENJOYMENT OR NON-INFRINGEMENT.
+ * Please see the License for the specific language governing rights and
+ * limitations under the License.
  * 
- * @APPLE_LICENSE_HEADER_END@
+ * @APPLE_OSREFERENCE_LICENSE_HEADER_END@
  */
 #ifndef _NETAT_AT_AARP_H_
 #define _NETAT_AT_AARP_H_
 #include <sys/appleapiopts.h>
+#ifdef KERNEL_PRIVATE
+#include <netat/at_var.h>
+#endif KERNEL_PRIVATE
+
+#ifdef __APPLE_API_OBSOLETE
+
 /*
  *     Copyright (c) 1988, 1989 Apple Computer, Inc. 
  */
@@ -90,12 +102,14 @@ typedef struct {
 /* Errors returned by AARP routines */
 #define AARP_ERR_NOT_OURS              1       /* not our appletalk address */
 
+#ifdef KERNEL_PRIVATE
+
 /*************************************************/
 /* Declarations for AARP Address Map Table (AMT) */
 /*************************************************/
 
 typedef struct {
-       struct atalk_addr       dest_at_addr;
+       struct atalk_addr       dest_at_addr;           /* net# in network byte order */
        struct etalk_addr       dest_addr;
        char                    dummy[2];       /* pad out to struct size of 32 */
        time_t                  last_time;      /* the last time that this addr
@@ -106,7 +120,7 @@ typedef struct {
        gbuf_t                  *m;             /* ptr to msg blk to be sent out */
        at_ifaddr_t             *elapp;
        int                     error;
-       void    *tmo;
+       int                     tmo;
 } aarp_amt_t;
 
 #define        AMT_BSIZ                         4              /* bucket size */
@@ -120,22 +134,25 @@ typedef struct {
 #define        AMT_HASH(a)                                                             \
        ((NET_VALUE(((struct atalk_addr *)&a)->atalk_net) + ((struct atalk_addr *)&a)->atalk_node) % AMT_NB)
 
+/* at_addr - net # in network byte order */
 #define        AMT_LOOK(at, at_addr, elapp) {                                                  \
-       register n;                                                             \
+       int n;                                                          \
        at = &aarp_table[elapp->ifPort]->et_aarp_amt[AMT_HASH(at_addr) * AMT_BSIZ];                     \
        for (n = 0 ; ; at++) {                                                  \
-           if (ATALK_EQUAL(at->dest_at_addr, at_addr))                         \
+           if (at->dest_at_addr.atalk_node == (at_addr).atalk_node &&                                                                  \
+               NET_EQUAL(at->dest_at_addr.atalk_net, (at_addr).atalk_net))                             \
                break;                                                          \
            if (++n >= AMT_BSIZ) {                                              \
                at = NULL;                                                      \
                break;                                                          \
             }                                                                  \
        }                                                                       \
-        }
+}
 
+/* at_addr - net # in network byte order */
 #define        NEW_AMT(at, at_addr, elapp) {                                                   \
-       register n;                                                             \
-       register aarp_amt_t *myat;                                              \
+       int n;                                                          \
+       aarp_amt_t *myat;                                              \
        myat = at = &aarp_table[elapp->ifPort]->et_aarp_amt[AMT_HASH(at_addr) * AMT_BSIZ];                      \
        for (n = 0 ; ; at++) {                                                  \
            if (at->last_time == 0)                                             \
@@ -145,7 +162,7 @@ typedef struct {
                break;                                                          \
             }                                                                   \
        }                                                                       \
-       }
+}
 
 #define        AARP_NET_MCAST(p, elapp)                                                \
        (NET_VALUE((p)->dst_net) == elapp->ifThisNode.s_net)            \
@@ -174,13 +191,12 @@ typedef struct {
         ) ? 1 : 0                                                              \
        )
 
-#ifdef KERNEL
-#ifdef __APPLE_API_PRIVATE
-
 int aarp_chk_addr(at_ddp_t  *, at_ifaddr_t *);
 int aarp_rcv_pkt(aarp_pkt_t *, at_ifaddr_t *);
+void AARPwakeup(aarp_amt_t *);
+int    aarp_send_data(gbuf_t *, at_ifaddr_t *, struct  atalk_addr *, int);
 
-#endif /* __APPLE_API_PRIVATE */
-#endif /* KERNEL */
+#endif /* KERNEL_PRIVATE */
 
+#endif /* __APPLE_API_OBSOLETE */
 #endif /* _NETAT_AT_AARP_H_ */