-struct mbuf *m_copym __P((struct mbuf *, int, int, int));
-struct mbuf *m_split __P((struct mbuf *, int, int));
-struct mbuf *m_free __P((struct mbuf *));
-struct mbuf *m_get __P((int, int));
-struct mbuf *m_getpacket __P((void));
-struct mbuf *m_getclr __P((int, int));
-struct mbuf *m_gethdr __P((int, int));
-struct mbuf *m_prepend __P((struct mbuf *, int, int));
-struct mbuf *m_prepend_2 __P((struct mbuf *, int, int));
-struct mbuf *m_pullup __P((struct mbuf *, int));
-struct mbuf *m_retry __P((int, int));
-struct mbuf *m_retryhdr __P((int, int));
-void m_adj __P((struct mbuf *, int));
-int m_clalloc __P((int, int));
-void m_freem __P((struct mbuf *));
-int m_freem_list __P((struct mbuf *));
-struct mbuf *m_devget __P((char *, int, int, struct ifnet *, void (*)()));
-char *mcl_to_paddr __P((char *));
-struct mbuf *m_pulldown __P((struct mbuf*, int, int, int*));
-struct mbuf *m_aux_add __P((struct mbuf *, int, int));
-struct mbuf *m_aux_find __P((struct mbuf *, int, int));
-void m_aux_delete __P((struct mbuf *, struct mbuf *));
-
-struct mbuf *m_mclget __P((struct mbuf *, int));
-caddr_t m_mclalloc __P((int));
-void m_mclfree __P((caddr_t p));
-int m_mclhasreference __P((struct mbuf *));
-void m_copy_pkthdr __P((struct mbuf *, struct mbuf*));
-
-int m_mclref __P((struct mbuf *));
-int m_mclunref __P((struct mbuf *));
-
-void * m_mtod __P((struct mbuf *));
-struct mbuf * m_dtom __P((void *));
-int m_mtocl __P((void *));
-union mcluster *m_cltom __P((int ));
-
-int m_trailingspace __P((struct mbuf *));
-int m_leadingspace __P((struct mbuf *));
-
-void m_mchtype __P((struct mbuf *m, int t));
-
-void m_mcheck __P((struct mbuf*));
+__BEGIN_DECLS
+struct mbuf *m_copym(struct mbuf *, int, int, int);
+struct mbuf *m_split(struct mbuf *, int, int);
+struct mbuf *m_free(struct mbuf *);
+struct mbuf *m_get(int, int);
+struct mbuf *m_getpacket(void);
+struct mbuf *m_getclr(int, int);
+struct mbuf *m_gethdr(int, int);
+struct mbuf *m_prepend(struct mbuf *, int, int);
+struct mbuf *m_prepend_2(struct mbuf *, int, int);
+struct mbuf *m_pullup(struct mbuf *, int);
+struct mbuf *m_retry(int, int);
+struct mbuf *m_retryhdr(int, int);
+void m_adj(struct mbuf *, int);
+void m_freem(struct mbuf *);
+int m_freem_list(struct mbuf *);
+struct mbuf *m_devget(char *, int, int, struct ifnet *, void (*)(const void *, void *, size_t));
+char *mcl_to_paddr(char *);
+struct mbuf *m_pulldown(struct mbuf*, int, int, int*);
+struct mbuf *m_aux_add(struct mbuf *, int, int);
+struct mbuf *m_aux_find(struct mbuf *, int, int);
+void m_aux_delete(struct mbuf *, struct mbuf *);
+
+struct mbuf *m_mclget(struct mbuf *, int);
+caddr_t m_mclalloc(int);
+void m_mclfree(caddr_t p);
+int m_mclhasreference(struct mbuf *);
+void m_copy_pkthdr(struct mbuf *, struct mbuf*);
+
+int m_mclref(struct mbuf *);
+int m_mclunref(struct mbuf *);
+
+void * m_mtod(struct mbuf *);
+struct mbuf * m_dtom(void *);
+int m_mtocl(void *);
+union mcluster *m_cltom(int );
+
+int m_trailingspace(struct mbuf *);
+int m_leadingspace(struct mbuf *);
+
+void m_mchtype(struct mbuf *m, int t);
+void m_mcheck(struct mbuf*);
+
+void m_copyback(struct mbuf *, int , int , caddr_t);
+void m_copydata(struct mbuf *, int , int , caddr_t);
+struct mbuf* m_dup(struct mbuf *m, int how);
+void m_cat(struct mbuf *, struct mbuf *);
+struct mbuf *m_copym_with_hdrs(struct mbuf*, int, int, int, struct mbuf**, int*);
+struct mbuf *m_getpackets(int, int, int);
+struct mbuf * m_getpackethdrs(int , int );
+struct mbuf* m_getpacket_how(int );
+struct mbuf * m_getpackets_internal(unsigned int *, int , int , int , size_t);
+struct mbuf * m_allocpacket_internal(unsigned int * , size_t , unsigned int *, int , int , size_t );
+
+__END_DECLS