From 5337421c6171e008c78ba759b7ee97ddbe23e847 Mon Sep 17 00:00:00 2001 From: Sepherosa Ziehau Date: Thu, 2 May 2013 14:29:30 +0800 Subject: [PATCH] netisr: Inline netisr_cpuport() and netisr_curport() These two functions do nothing more than just return pointer to the element in the array. Per our header file naming convention, put these two functions in net/netisr2.h --- sys/dev/acpica/acpi_cpu_pstate.c | 2 +- sys/kern/uipc_socket.c | 1 + sys/kern/uipc_socket2.c | 2 + sys/net/bpf.c | 1 + sys/net/bridge/if_bridge.c | 1 + sys/net/bridge/if_bridgevar.h | 1 + sys/net/dummynet/ip_dummynet.c | 1 + sys/net/dummynet/ip_dummynet_glue.c | 2 +- sys/net/if.c | 2 +- sys/net/if_ethersubr.c | 1 + sys/net/if_poll.c | 1 + sys/net/ipfw/ip_fw2.h | 2 + sys/net/netisr.c | 24 +---- sys/net/netisr.h | 3 - sys/net/{netisr.h => netisr2.h} | 134 +++++----------------------- sys/net/pf/pf.c | 2 +- sys/net/pfil.c | 1 + sys/net/rtsock.c | 1 + sys/net/vlan/if_vlan.c | 1 + sys/netinet/if_ether.c | 1 + sys/netinet/in.c | 1 + sys/netinet/ip_carp.c | 1 + sys/netinet/ip_demux.c | 2 +- sys/netinet/ip_divert.c | 1 + sys/netinet/ip_flow.c | 2 +- sys/netinet/ip_input.c | 2 +- sys/netinet/tcp_output.c | 1 + sys/netinet/tcp_subr.c | 2 +- sys/netinet/tcp_syncache.c | 1 + sys/netinet/tcp_usrreq.c | 1 + sys/netinet/udp_usrreq.c | 1 + sys/netinet6/ip6_input.c | 1 + sys/netinet6/udp6_usrreq.c | 1 + tools/tools/netrate/pktgen/pktgen.c | 1 + 34 files changed, 59 insertions(+), 143 deletions(-) copy sys/net/{netisr.h => netisr2.h} (53%) diff --git a/sys/dev/acpica/acpi_cpu_pstate.c b/sys/dev/acpica/acpi_cpu_pstate.c index ab0bec42a5..4f6851fbf3 100644 --- a/sys/dev/acpica/acpi_cpu_pstate.c +++ b/sys/dev/acpica/acpi_cpu_pstate.c @@ -43,7 +43,7 @@ #include #include -#include +#include #include #include diff --git a/sys/kern/uipc_socket.c b/sys/kern/uipc_socket.c index 62a52bed69..32ebecfa3d 100644 --- a/sys/kern/uipc_socket.c +++ b/sys/kern/uipc_socket.c @@ -92,6 +92,7 @@ #include #include #include +#include #include #include diff --git a/sys/kern/uipc_socket2.c b/sys/kern/uipc_socket2.c index 9b292dbe84..0dc5e53db1 100644 --- a/sys/kern/uipc_socket2.c +++ b/sys/kern/uipc_socket2.c @@ -59,6 +59,8 @@ #include #include +#include + int maxsockets; /* diff --git a/sys/net/bpf.c b/sys/net/bpf.c index d0d47ded70..95dfbcf7fc 100644 --- a/sys/net/bpf.c +++ b/sys/net/bpf.c @@ -67,6 +67,7 @@ #include #include #include +#include #include #include diff --git a/sys/net/bridge/if_bridge.c b/sys/net/bridge/if_bridge.c index 0e1e79337c..7af7913ae7 100644 --- a/sys/net/bridge/if_bridge.c +++ b/sys/net/bridge/if_bridge.c @@ -260,6 +260,7 @@ #include #include #include +#include #include #include diff --git a/sys/net/bridge/if_bridgevar.h b/sys/net/bridge/if_bridgevar.h index 8b3e90f5c0..902892d6eb 100644 --- a/sys/net/bridge/if_bridgevar.h +++ b/sys/net/bridge/if_bridgevar.h @@ -78,6 +78,7 @@ #include #include +#include /* * Commands used in the SIOCSDRVSPEC ioctl. Note the lookup of the diff --git a/sys/net/dummynet/ip_dummynet.c b/sys/net/dummynet/ip_dummynet.c index 5a0b8a6336..6d6868e4d1 100644 --- a/sys/net/dummynet/ip_dummynet.c +++ b/sys/net/dummynet/ip_dummynet.c @@ -59,6 +59,7 @@ #include #include +#include #include #include diff --git a/sys/net/dummynet/ip_dummynet_glue.c b/sys/net/dummynet/ip_dummynet_glue.c index fa801317a7..13745cb2fe 100644 --- a/sys/net/dummynet/ip_dummynet_glue.c +++ b/sys/net/dummynet/ip_dummynet_glue.c @@ -43,7 +43,7 @@ #include #include #include -#include +#include #include #include diff --git a/sys/net/if.c b/sys/net/if.c index 504184f3b4..53c1324c59 100644 --- a/sys/net/if.c +++ b/sys/net/if.c @@ -74,7 +74,7 @@ #include #include #include -#include +#include #include #include diff --git a/sys/net/if_ethersubr.c b/sys/net/if_ethersubr.c index 072a395149..e295be0cd7 100644 --- a/sys/net/if_ethersubr.c +++ b/sys/net/if_ethersubr.c @@ -71,6 +71,7 @@ #include #include #include +#include #if defined(INET) || defined(INET6) #include diff --git a/sys/net/if_poll.c b/sys/net/if_poll.c index f4e392a8d6..947d12183c 100644 --- a/sys/net/if_poll.c +++ b/sys/net/if_poll.c @@ -47,6 +47,7 @@ #include #include #include +#include /* * Polling support for network device drivers. diff --git a/sys/net/ipfw/ip_fw2.h b/sys/net/ipfw/ip_fw2.h index 1ccd986597..2a6701a58c 100644 --- a/sys/net/ipfw/ip_fw2.h +++ b/sys/net/ipfw/ip_fw2.h @@ -29,6 +29,8 @@ #ifndef _IPFW2_H #define _IPFW2_H +#include + /* * The kernel representation of ipfw rules is made of a list of * 'instructions' (for all practical purposes equivalent to BPF diff --git a/sys/net/netisr.c b/sys/net/netisr.c index 06ebdcc65d..a7faf91baa 100644 --- a/sys/net/netisr.c +++ b/sys/net/netisr.c @@ -48,7 +48,7 @@ #include #include #include -#include +#include #include #include @@ -91,7 +91,7 @@ static TAILQ_HEAD(,netmsg_port_registration) netreglist; static TAILQ_HEAD(,netmsg_rollup) netrulist; /* Per-CPU thread to handle any protocol. */ -static struct thread netisr_cpu[MAXCPU]; +struct thread netisr_cpu[MAXCPU]; lwkt_port netisr_afree_rport; lwkt_port netisr_afree_free_so_rport; lwkt_port netisr_adone_rport; @@ -524,26 +524,6 @@ netisr_register_rollup(netisr_ru_t ru_func, int prio) TAILQ_INSERT_TAIL(&netrulist, new_ru, ru_entry); } -/* - * Return the message port for the general protocol message servicing - * thread for a particular cpu. - */ -lwkt_port_t -netisr_cpuport(int cpu) -{ - KKASSERT(cpu >= 0 && cpu < ncpus); - return (&netisr_cpu[cpu].td_msgport); -} - -/* - * Return the current cpu's network protocol thread. - */ -lwkt_port_t -netisr_curport(void) -{ - return(netisr_cpuport(mycpuid)); -} - /* * Return a default protocol control message processing thread port */ diff --git a/sys/net/netisr.h b/sys/net/netisr.h index 05af9053f9..c55f05f7db 100644 --- a/sys/net/netisr.h +++ b/sys/net/netisr.h @@ -165,9 +165,6 @@ extern lwkt_port netisr_afree_free_so_rport; extern lwkt_port netisr_apanic_rport; extern lwkt_port netisr_sync_port; -lwkt_port_t netisr_cpuport(int cpu); -lwkt_port_t netisr_curport(void); - void netisr_register(int, netisr_fn_t, netisr_cpufn_t); void netisr_register_hashcheck(int, netisr_hashck_t); void netisr_register_rollup(netisr_ru_t ru_func, int ru_prio); diff --git a/sys/net/netisr.h b/sys/net/netisr2.h similarity index 53% copy from sys/net/netisr.h copy to sys/net/netisr2.h index 05af9053f9..2ce4438281 100644 --- a/sys/net/netisr.h +++ b/sys/net/netisr2.h @@ -67,126 +67,40 @@ * $FreeBSD: src/sys/net/netisr.h,v 1.21.2.5 2002/02/09 23:02:39 luigi Exp $ */ -#ifndef _NET_NETISR_H_ -#define _NET_NETISR_H_ - -/* - * The networking code runs off software interrupts. - * - * You can switch into the network by doing splnet() and return by splx(). - * The software interrupt level for the network is higher than the software - * level for the clock (so you can enter the network in routines called - * at timeout time). - */ - -/* - * Each ``pup-level-1'' input queue has a bit in a ``netisr'' status - * word which is used to de-multiplex a single software - * interrupt used for scheduling the network code to calls - * on the lowest level routine of each protocol. - */ -#define NETISR_RESERVED0 0 /* cannot be used */ -#define NETISR_IP 2 /* same as AF_INET */ -#define NETISR_NS 6 /* same as AF_NS */ -#define NETISR_ARP 18 /* same as AF_LINK */ -#define NETISR_MPLS 21 /* MPLS */ -#define NETISR_IPX 23 /* same as AF_IPX */ -#define NETISR_USB 25 /* USB soft interrupt */ -#define NETISR_PPP 27 /* PPP soft interrupt */ -#define NETISR_IPV6 28 /* same as AF_INET6 */ -#define NETISR_NATM 29 /* same as AF_NATM */ -#define NETISR_NETGRAPH 30 /* same as AF_NETGRAPH */ -#define NETISR_BLUETOOTH 31 +#ifndef _NET_NETISR2_H_ +#define _NET_NETISR2_H_ -#define NETISR_MAX 32 - -#if defined(_KERNEL) || defined(_KERNEL_STRUCTURES) - -#ifndef _SYS_TYPES_H_ -#include -#endif -#ifndef _SYS_QUEUE_H_ -#include -#endif -#ifndef _SYS_PROTOSW_H_ -#include -#endif -#ifndef _SYS_MSGPORT_H_ -#include -#endif -#ifndef _NET_NETMSG_H_ -#include +#ifndef _KERNEL +#error "kernel only header file" #endif +#ifndef _SYS_THREAD_H_ +#include #endif - -#ifdef _KERNEL - -void netmsg_so_notify(netmsg_t); -void netmsg_so_notify_abort(netmsg_t); -void netmsg_so_notify_doabort(lwkt_msg_t); - +#ifndef _NET_NETISR_H_ +#include #endif -#if defined(_KERNEL) || defined(_KERNEL_STRUCTURES) +extern struct thread netisr_cpu[MAXCPU]; /* - * Temporary pktinfo structure passed directly from the driver to - * ether_input_pkt(), allows us to bypass numerous checks. + * Return the message port for the general protocol message servicing + * thread for a particular cpu. */ -struct pktinfo { - int pi_netisr; /* netisr index, e.g. NETISR_IP */ - uint32_t pi_flags; /* PKTINFO_FLAG_ */ - int pi_l3proto; /* layer3 protocol number */ -}; - -#define PKTINFO_FLAG_FRAG 0x1 +static __inline lwkt_port_t +netisr_cpuport(int cpu) +{ + KKASSERT(cpu >= 0 && cpu < ncpus); + return &netisr_cpu[cpu].td_msgport; +} /* - * NETISR_xxx registrations + * Return the current cpu's network protocol thread. */ -struct netisr { - netisr_fn_t ni_handler; /* packet handler function */ - netisr_hashck_t ni_hashck; /* hash check function */ - netisr_cpufn_t ni_cpufn; /* characterize pkt return cpu */ - struct netmsg_base ni_netmsg; /* for sched_netisr() (no-data) */ -}; - -#endif - -#ifdef _KERNEL - -#define NETISR_ROLLUP_PRIO_TCP 200 -#define NETISR_ROLLUP_PRIO_IFSTART 50 - -extern lwkt_port netisr_adone_rport; -extern lwkt_port netisr_afree_rport; -extern lwkt_port netisr_afree_free_so_rport; -extern lwkt_port netisr_apanic_rport; -extern lwkt_port netisr_sync_port; - -lwkt_port_t netisr_cpuport(int cpu); -lwkt_port_t netisr_curport(void); - -void netisr_register(int, netisr_fn_t, netisr_cpufn_t); -void netisr_register_hashcheck(int, netisr_hashck_t); -void netisr_register_rollup(netisr_ru_t ru_func, int ru_prio); - -void netisr_characterize(int num, struct mbuf **mp, int hoff); -void netisr_hashcheck(int num, struct mbuf *m, - const struct pktinfo *pi); -int netisr_queue(int, struct mbuf *); -int netisr_handle(int, struct mbuf *); - -struct netisr_barrier *netisr_barrier_create(void); -void netisr_barrier_set(struct netisr_barrier *); -void netisr_barrier_rem(struct netisr_barrier *); - -void netmsg_service_port_init(lwkt_port_t); -void netmsg_service_sync(void); -void netmsg_sync_handler(netmsg_t); -void schednetisr(int); - -#endif /* _KERNEL */ +static __inline lwkt_port_t +netisr_curport(void) +{ + return netisr_cpuport(mycpuid); +} -#endif /* _NET_NETISR_H_ */ +#endif /* _NET_NETISR2_H_ */ diff --git a/sys/net/pf/pf.c b/sys/net/pf/pf.c index c57e3d9bf1..10f264a4ff 100644 --- a/sys/net/pf/pf.c +++ b/sys/net/pf/pf.c @@ -61,7 +61,7 @@ #include #include #include -#include +#include #include #include diff --git a/sys/net/pfil.c b/sys/net/pfil.c index 2241cf5160..5160a5df37 100644 --- a/sys/net/pfil.c +++ b/sys/net/pfil.c @@ -41,6 +41,7 @@ #include #include #include +#include #include #define PFIL_CFGPORT netisr_cpuport(0) diff --git a/sys/net/rtsock.c b/sys/net/rtsock.c index 791b0d043d..354ef42f70 100644 --- a/sys/net/rtsock.c +++ b/sys/net/rtsock.c @@ -88,6 +88,7 @@ #include #include #include +#include #ifdef SCTP extern void sctp_add_ip_address(struct ifaddr *ifa); diff --git a/sys/net/vlan/if_vlan.c b/sys/net/vlan/if_vlan.c index b8f14eceda..cd5a7e9215 100644 --- a/sys/net/vlan/if_vlan.c +++ b/sys/net/vlan/if_vlan.c @@ -119,6 +119,7 @@ #include #include #include +#include #ifdef INET #include diff --git a/sys/netinet/if_ether.c b/sys/netinet/if_ether.c index 9b13314bed..65bd0b20b1 100644 --- a/sys/netinet/if_ether.c +++ b/sys/netinet/if_ether.c @@ -100,6 +100,7 @@ #include #include #include +#include #include #ifdef CARP diff --git a/sys/netinet/in.c b/sys/netinet/in.c index 6ee859c6a5..fe91745c49 100644 --- a/sys/netinet/in.c +++ b/sys/netinet/in.c @@ -54,6 +54,7 @@ #include #include #include +#include #include #include diff --git a/sys/netinet/ip_carp.c b/sys/netinet/ip_carp.c index 7c0e511141..00ec432850 100644 --- a/sys/netinet/ip_carp.c +++ b/sys/netinet/ip_carp.c @@ -61,6 +61,7 @@ #include #include #include +#include #ifdef INET #include diff --git a/sys/netinet/ip_demux.c b/sys/netinet/ip_demux.c index 7a462d96d3..c6b0113fe5 100644 --- a/sys/netinet/ip_demux.c +++ b/sys/netinet/ip_demux.c @@ -44,7 +44,7 @@ #include #include -#include +#include #include #include diff --git a/sys/netinet/ip_divert.c b/sys/netinet/ip_divert.c index ea7aaf07bb..44fcb9f6a9 100644 --- a/sys/netinet/ip_divert.c +++ b/sys/netinet/ip_divert.c @@ -63,6 +63,7 @@ #include #include +#include #include #include diff --git a/sys/netinet/ip_flow.c b/sys/netinet/ip_flow.c index 33722b8277..1a9b573375 100644 --- a/sys/netinet/ip_flow.c +++ b/sys/netinet/ip_flow.c @@ -51,7 +51,7 @@ #include #include #include -#include +#include #include #include diff --git a/sys/netinet/ip_input.c b/sys/netinet/ip_input.c index c549f448db..3fe9a73389 100644 --- a/sys/netinet/ip_input.c +++ b/sys/netinet/ip_input.c @@ -103,7 +103,7 @@ #include #include #include -#include +#include #include #include diff --git a/sys/netinet/tcp_output.c b/sys/netinet/tcp_output.c index a542ce4482..0671dc8b94 100644 --- a/sys/netinet/tcp_output.c +++ b/sys/netinet/tcp_output.c @@ -88,6 +88,7 @@ #include #include #include +#include #include #include diff --git a/sys/netinet/tcp_subr.c b/sys/netinet/tcp_subr.c index 093e4fd76b..188bfd0483 100644 --- a/sys/netinet/tcp_subr.c +++ b/sys/netinet/tcp_subr.c @@ -96,7 +96,7 @@ #include #include -#include +#include #define _IP_VHL #include diff --git a/sys/netinet/tcp_syncache.c b/sys/netinet/tcp_syncache.c index 3df6eb0a84..9f1ed6201e 100644 --- a/sys/netinet/tcp_syncache.c +++ b/sys/netinet/tcp_syncache.c @@ -90,6 +90,7 @@ #include #include +#include #include #include diff --git a/sys/netinet/tcp_usrreq.c b/sys/netinet/tcp_usrreq.c index 959c256f65..13f4939fb0 100644 --- a/sys/netinet/tcp_usrreq.c +++ b/sys/netinet/tcp_usrreq.c @@ -98,6 +98,7 @@ #include #include +#include #include #include diff --git a/sys/netinet/udp_usrreq.c b/sys/netinet/udp_usrreq.c index 9a25834728..7323cf1859 100644 --- a/sys/netinet/udp_usrreq.c +++ b/sys/netinet/udp_usrreq.c @@ -94,6 +94,7 @@ #include #include #include +#include #include #include diff --git a/sys/netinet6/ip6_input.c b/sys/netinet6/ip6_input.c index cf373e9f15..6d2582f170 100644 --- a/sys/netinet6/ip6_input.c +++ b/sys/netinet6/ip6_input.c @@ -95,6 +95,7 @@ #include #include #include +#include #include #include diff --git a/sys/netinet6/udp6_usrreq.c b/sys/netinet6/udp6_usrreq.c index 042d339629..c84b481e10 100644 --- a/sys/netinet6/udp6_usrreq.c +++ b/sys/netinet6/udp6_usrreq.c @@ -90,6 +90,7 @@ #include #include #include +#include #include #include diff --git a/tools/tools/netrate/pktgen/pktgen.c b/tools/tools/netrate/pktgen/pktgen.c index 441c34c167..87bedda715 100644 --- a/tools/tools/netrate/pktgen/pktgen.c +++ b/tools/tools/netrate/pktgen/pktgen.c @@ -56,6 +56,7 @@ #include #include #include +#include #include #include -- 2.41.0