-struct inpcb tcb; /* head of queue of active tcpcb's */
-struct tcpstat tcpstat; /* tcp statistics */
-struct tcpiphdr *tcp_template();
-struct tcpcb *tcp_close(), *tcp_drop();
-struct tcpcb *tcp_timers(), *tcp_disconnect(), *tcp_usrclosed();
+extern struct inpcb tcb; /* head of queue of active tcpcb's */
+extern struct tcpstat tcpstat; /* tcp statistics */
+
+/* From tcp_input.c: */
+extern int tcp_reass(struct tcpcb *, struct tcpiphdr *, struct mbuf *);
+extern void tcp_input(struct mbuf *, int);
+extern int tcp_mss(struct tcpcb *, int /*u_short*/);
+
+/* From tcp_output.c: */
+extern int tcp_output(struct tcpcb *);
+extern void tcp_setpersist(struct tcpcb *);
+
+/* From tcp_subr.c: */
+extern void tcp_init(void);
+extern struct tcpiphdr *tcp_template(struct tcpcb *);
+extern void tcp_respond(struct tcpcb *, struct tcpiphdr *, struct mbuf *,
+ tcp_seq, tcp_seq, int);
+extern struct tcpcb *tcp_newtcpcb(struct inpcb *);
+extern struct tcpcb *tcp_drop(struct tcpcb *, int);
+extern struct tcpcb *tcp_close(struct tcpcb *);
+extern void tcp_drain(void);
+extern void tcp_notify(struct inpcb *, int);
+#ifdef MTUDISC
+extern void tcp_checkmtu(struct inpcb *, int);
+extern void tcp_mtuchanged(struct inpcb *, int);