Changeset a3c06e11 in rtems
- Timestamp:
- 04/18/05 05:20:02 (19 years ago)
- Branches:
- 4.10, 4.11, 4.8, 4.9, 5, master
- Children:
- 145c5561
- Parents:
- c834daa
- Location:
- cpukit/libnetworking
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
cpukit/libnetworking/net/if.c
rc834daa ra3c06e11 11 11 * notice, this list of conditions and the following disclaimer in the 12 12 * documentation and/or other materials provided with the distribution. 13 * 3. All advertising materials mentioning features or use of this software14 * must display the following acknowledgement:15 * This product includes software developed by the University of16 * California, Berkeley and its contributors.17 13 * 4. Neither the name of the University nor the names of its contributors 18 14 * may be used to endorse or promote products derived from this software … … 31 27 * SUCH DAMAGE. 32 28 * 33 * @(#)if.c 8.3 (Berkeley) 1/4/94 29 * @(#)if.c 8.5 (Berkeley) 1/9/95 30 * $FreeBSD: src/sys/net/if.c,v 1.226 2005/04/15 01:51:26 cperciva Exp $ 31 */ 32 33 /* 34 34 * $Id$ 35 35 */ … … 58 58 */ 59 59 60 static int ifconf __P((int, caddr_t));61 void ifinit __P((void *));62 static void if_qflush __P((struct ifqueue *));63 static void if_slowtimo __P((void *));64 static void link_rtrequest __P((int, struct rtentry *, struct sockaddr *));60 static int ifconf(u_long, caddr_t); 61 void ifinit(void *); 62 static void if_qflush(struct ifqueue *); 63 static void if_slowtimo(void *); 64 static void link_rtrequest(int, struct rtentry *, struct sockaddr *); 65 65 66 66 SYSINIT(interfaces, SI_SUB_PROTO_IF, SI_ORDER_FIRST, ifinit, NULL) … … 83 83 void *dummy; 84 84 { 85 registerstruct ifnet *ifp;85 struct ifnet *ifp; 86 86 87 87 for (ifp = ifnet; ifp; ifp = ifp->if_next) … … 100 100 */ 101 101 void 102 if_attach(ifp) 103 struct ifnet *ifp; 102 if_attach(struct ifnet *ifp) 104 103 { 105 104 unsigned socksize, ifasize; 106 105 int namelen, masklen; 107 106 char workbuf[64]; 108 registerstruct ifnet **p = &ifnet;109 registerstruct sockaddr_dl *sdl;110 registerstruct ifaddr *ifa;107 struct ifnet **p = &ifnet; 108 struct sockaddr_dl *sdl; 109 struct ifaddr *ifa; 111 110 static int if_indexlim = 8; 112 111 … … 169 168 /*ARGSUSED*/ 170 169 struct ifaddr * 171 ifa_ifwithaddr(addr) 172 register struct sockaddr *addr; 173 { 174 register struct ifnet *ifp; 175 register struct ifaddr *ifa; 170 ifa_ifwithaddr(struct sockaddr *addr) 171 { 172 struct ifnet *ifp; 173 struct ifaddr *ifa; 176 174 177 175 #define equal(a1, a2) \ … … 194 192 /*ARGSUSED*/ 195 193 struct ifaddr * 196 ifa_ifwithdstaddr(addr) 197 register struct sockaddr *addr; 198 { 199 register struct ifnet *ifp; 200 register struct ifaddr *ifa; 194 ifa_ifwithdstaddr(struct sockaddr *addr) 195 { 196 struct ifnet *ifp; 197 struct ifaddr *ifa; 201 198 202 199 for (ifp = ifnet; ifp; ifp = ifp->if_next) … … 216 213 */ 217 214 struct ifaddr * 218 ifa_ifwithnet(addr) 219 struct sockaddr *addr; 220 { 221 register struct ifnet *ifp; 222 register struct ifaddr *ifa; 215 ifa_ifwithnet(struct sockaddr *addr) 216 { 217 struct ifnet *ifp; 218 struct ifaddr *ifa; 223 219 struct ifaddr *ifa_maybe = (struct ifaddr *) 0; 224 220 u_int af = addr->sa_family; … … 226 222 227 223 if (af == AF_LINK) { 228 registerstruct sockaddr_dl *sdl = (struct sockaddr_dl *)addr;224 struct sockaddr_dl *sdl = (struct sockaddr_dl *)addr; 229 225 if (sdl->sdl_index && sdl->sdl_index <= if_index) 230 226 return (ifnet_addrs[sdl->sdl_index - 1]); … … 232 228 for (ifp = ifnet; ifp; ifp = ifp->if_next) { 233 229 for (ifa = ifp->if_addrlist; ifa; ifa = ifa->ifa_next) { 234 registerchar *cp, *cp2, *cp3;230 char *cp, *cp2, *cp3; 235 231 236 232 if (ifa->ifa_addr->sa_family != af) … … 265 261 cp2 = ifa->ifa_addr->sa_data; 266 262 cp3 = ifa->ifa_netmask->sa_data; 267 cplim = ifa->ifa_netmask->sa_len + (char *)ifa->ifa_netmask; 263 cplim = ifa->ifa_netmask->sa_len 264 + (char *)ifa->ifa_netmask; 268 265 while (cp3 < cplim) 269 266 if ((*cp++ ^ *cp2++) & *cp3++) 270 goto next; 267 goto next; /* next address! */ 268 /* 269 * If the netmask of what we just found 270 * is more specific than what we had before 271 * (if we had one) then remember the new one 272 * before continuing to search 273 * for an even better one. 274 */ 271 275 if (ifa_maybe == 0 || 272 276 rn_refines((caddr_t)ifa->ifa_netmask, … … 284 288 */ 285 289 struct ifaddr * 286 ifaof_ifpforaddr(addr, ifp) 287 struct sockaddr *addr; 288 register struct ifnet *ifp; 289 { 290 register struct ifaddr *ifa; 291 register char *cp, *cp2, *cp3; 292 register char *cplim; 290 ifaof_ifpforaddr(struct sockaddr *addr, struct ifnet *ifp) 291 { 292 struct ifaddr *ifa; 293 char *cp, *cp2, *cp3; 294 char *cplim; 293 295 struct ifaddr *ifa_maybe = 0; 294 296 u_int af = addr->sa_family; … … 333 335 */ 334 336 static void 335 link_rtrequest(cmd, rt, sa) 336 int cmd; 337 register struct rtentry *rt; 338 struct sockaddr *sa; 339 { 340 register struct ifaddr *ifa; 337 link_rtrequest(int cmd, struct rtentry *rt, struct sockaddr *sa) 338 { 339 struct ifaddr *ifa; 341 340 struct sockaddr *dst; 342 341 struct ifnet *ifp; … … 361 360 */ 362 361 void 363 if_down(ifp) 364 register struct ifnet *ifp; 365 { 366 register struct ifaddr *ifa; 362 if_down(struct ifnet *ifp) 363 { 364 struct ifaddr *ifa; 367 365 368 366 ifp->if_flags &= ~IFF_UP; … … 380 378 */ 381 379 void 382 if_up(ifp) 383 register struct ifnet *ifp; 380 if_up(struct ifnet *ifp) 384 381 { 385 382 … … 387 384 microtime(&ifp->if_lastchange); 388 385 #ifdef notyet 389 registerstruct ifaddr *ifa;386 struct ifaddr *ifa; 390 387 /* this has no effect on IP, and will kill all iso connections XXX */ 391 388 for (ifa = ifp->if_addrlist; ifa; ifa = ifa->ifa_next) … … 399 396 */ 400 397 static void 401 if_qflush(ifq) 402 register struct ifqueue *ifq; 403 { 404 register struct mbuf *m, *n; 398 if_qflush(struct ifqueue *ifq) 399 { 400 struct mbuf *m, *n; 405 401 406 402 n = ifq->ifq_head; … … 420 416 */ 421 417 static void 422 if_slowtimo(arg) 423 void *arg; 424 { 425 register struct ifnet *ifp; 418 if_slowtimo(void *arg) 419 { 420 struct ifnet *ifp; 426 421 int s = splimp(); 427 422 … … 441 436 */ 442 437 struct ifnet * 443 ifunit(name) 444 register char *name; 445 { 446 register char *cp; 447 register struct ifnet *ifp; 438 ifunit(char *name) 439 { 440 char *cp; 441 struct ifnet *ifp; 448 442 int unit; 449 443 unsigned len; … … 482 476 */ 483 477 int 484 ifioctl(so, cmd, data, p) 485 struct socket *so; 486 int cmd; 487 caddr_t data; 488 struct proc *p; 489 { 490 register struct ifnet *ifp; 491 register struct ifreq *ifr; 478 ifioctl(struct socket *so, int cmd, caddr_t data, struct proc *p) 479 { 480 struct ifnet *ifp; 481 struct ifreq *ifr; 492 482 int error; 493 483 … … 687 677 */ 688 678 int 689 ifpromisc(ifp, pswitch) 690 struct ifnet *ifp; 691 int pswitch; 679 ifpromisc(struct ifnet *ifp, int pswitch) 692 680 { 693 681 struct ifreq ifr; … … 722 710 /*ARGSUSED*/ 723 711 static int 724 ifconf(cmd, data) 725 int cmd; 726 caddr_t data; 727 { 728 register struct ifconf *ifc = (struct ifconf *)data; 729 register struct ifnet *ifp = ifnet; 730 register struct ifaddr *ifa; 712 ifconf(u_long cmd, caddr_t data) 713 { 714 struct ifconf *ifc = (struct ifconf *)data; 715 struct ifnet *ifp = ifnet; 716 struct ifaddr *ifa; 731 717 struct ifreq ifr, *ifrp; 732 718 int space = ifc->ifc_len, error = 0; … … 753 739 } else 754 740 for ( ; space > sizeof (ifr) && ifa; ifa = ifa->ifa_next) { 755 registerstruct sockaddr *sa = ifa->ifa_addr;741 struct sockaddr *sa = ifa->ifa_addr; 756 742 #ifdef COMPAT_43 757 743 if (cmd == OSIOCGIFCONF) { -
cpukit/libnetworking/net/if.h
rc834daa ra3c06e11 246 246 #define IFF_PROMISC 0x100 /* receive all packets */ 247 247 #define IFF_ALLMULTI 0x200 /* receive all multicast packets */ 248 #define IFF_OACTIVE 0x400 /* t ransmission in progress*/248 #define IFF_OACTIVE 0x400 /* tx hardware queue is full */ 249 249 #define IFF_SIMPLEX 0x800 /* can't hear own transmissions */ 250 250 #define IFF_LINK0 0x1000 /* per link layer defined bit */ … … 512 512 int ifioctl(struct socket *, int, caddr_t, struct proc *); 513 513 int ifpromisc(struct ifnet *, int); 514 struct ifnet *ifunit(char *);515 514 516 515 struct ifaddr *ifa_ifwithaddr(struct sockaddr *); -
cpukit/libnetworking/sys/mbuf.h
rc834daa ra3c06e11 11 11 * notice, this list of conditions and the following disclaimer in the 12 12 * documentation and/or other materials provided with the distribution. 13 * 3. All advertising materials mentioning features or use of this software 14 * must display the following acknowledgement: 15 * This product includes software developed by the University of 16 * California, Berkeley and its contributors. 17 * 4. Neither the name of the University nor the names of its contributors 13 * 3. Neither the name of the University nor the names of its contributors 18 14 * may be used to endorse or promote products derived from this software 19 15 * without specific prior written permission. … … 32 28 * 33 29 * @(#)mbuf.h 8.5 (Berkeley) 2/19/95 30 * $FreeBSD: src/sys/sys/mbuf.h,v 1.169 2005/03/17 19:34:57 jmg Exp $ 31 */ 32 33 /* 34 34 * $Id$ 35 35 */ 36 36 37 37 #ifndef _SYS_MBUF_H_ 38 38 #define _SYS_MBUF_H_ … … 64 64 */ 65 65 #define mtod(m,t) ((t)((m)->m_data)) 66 #define dtom(x) ((struct mbuf *)(( long)(x) & ~(MSIZE-1)))66 #define dtom(x) ((struct mbuf *)((intptr_t)(x) & ~(MSIZE-1))) 67 67 #define mtocl(x) (((u_long)(x) - (u_long)mbutl) >> MCLSHIFT) 68 68 #define cltom(x) ((caddr_t)((u_long)mbutl + ((u_long)(x) << MCLSHIFT))) 69 69 70 /* header at beginning of each mbuf: */ 70 /* 71 * Header present at the beginning of every mbuf. 72 */ 71 73 struct m_hdr { 72 74 struct mbuf *mh_next; /* next buffer in chain */ … … 74 76 caddr_t mh_data; /* location of data */ 75 77 int mh_len; /* amount of data in this mbuf */ 78 int mh_flags; /* flags; see below */ 76 79 short mh_type; /* type of data in this mbuf */ 77 short mh_flags; /* flags; see below */ 78 }; 79 80 /* record/packet header in first mbuf of chain; valid if M_PKTHDR set */ 80 }; 81 82 /* 83 * Record/packet header in first mbuf of chain; valid only if M_PKTHDR is set. 84 */ 81 85 struct pkthdr { 82 86 struct ifnet *rcvif; /* rcv interface */ … … 84 88 }; 85 89 86 /* description of external storage mapped into mbuf, valid if M_EXT set */ 90 /* 91 * Description of external storage mapped into mbuf; valid only if M_EXT is set. 92 */ 87 93 struct m_ext { 88 94 caddr_t ext_buf; /* start of buffer */ … … 94 100 }; 95 101 102 /* 103 * The core of the mbuf object along with some shortcut defines for 104 * practical purposes. 105 */ 96 106 struct mbuf { 97 107 struct m_hdr m_hdr;
Note: See TracChangeset
for help on using the changeset viewer.