From 855b7c292e2f5a0102339980518b711e9b97922a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=B4me=20Duval?= Date: Tue, 2 Dec 2008 17:51:42 +0000 Subject: [PATCH] added some missing functions for freebsd current git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28760 a95241bf-73f2-0310-859d-f6bbb57e9c96 --- .../compat/freebsd_network/compat/sys/mbuf.h | 1 + .../compat/freebsd_network/compat/sys/sysctl.h | 5 +++++ src/libs/compat/freebsd_network/mbuf.c | 16 ++++++++++++++++ 3 files changed, 22 insertions(+) diff --git a/src/libs/compat/freebsd_network/compat/sys/mbuf.h b/src/libs/compat/freebsd_network/compat/sys/mbuf.h index d128b2f3a6..37c5a4caff 100644 --- a/src/libs/compat/freebsd_network/compat/sys/mbuf.h +++ b/src/libs/compat/freebsd_network/compat/sys/mbuf.h @@ -128,6 +128,7 @@ void m_copyback(struct mbuf *, int, int, caddr_t); struct mbuf *m_get(int how, short type); struct mbuf *m_gethdr(int how, short type); +struct mbuf *m_getjcl(int how, short type, int flags, int size); void m_clget(struct mbuf *m, int how); void *m_cljget(struct mbuf *m, int how, int size); diff --git a/src/libs/compat/freebsd_network/compat/sys/sysctl.h b/src/libs/compat/freebsd_network/compat/sys/sysctl.h index 1d8ee4fbe6..5f62b85b5b 100644 --- a/src/libs/compat/freebsd_network/compat/sys/sysctl.h +++ b/src/libs/compat/freebsd_network/compat/sys/sysctl.h @@ -65,6 +65,7 @@ sysctl_add_oid(struct sysctl_ctx_list *clist, static inline int sysctl_handle_long(SYSCTL_HANDLER_ARGS) { return -1; } static inline int sysctl_handle_opaque(SYSCTL_HANDLER_ARGS) { return -1; } +static inline int sysctl_handle_quad(SYSCTL_HANDLER_ARGS) { return -1; } static inline int sysctl_handle_int(SYSCTL_HANDLER_ARGS) { return -1; } static inline int sysctl_handle_string(SYSCTL_HANDLER_ARGS) { return -1; } @@ -98,6 +99,10 @@ static inline int sysctl_handle_string(SYSCTL_HANDLER_ARGS) { return -1; } sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_ULONG|(access), \ ptr, 0, sysctl_handle_long, "LU", __DESCR(descr)) +#define SYSCTL_ADD_QUAD(ctx, parent, nbr, name, access, ptr, descr) \ + sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_QUAD|(access), \ + ptr, 0, sysctl_handle_quad, "Q", __DESCR(descr)) + #define SYSCTL_ADD_OPAQUE(ctx, parent, nbr, name, access, ptr, len, fmt, descr)\ sysctl_add_oid(ctx, parent, nbr, name, CTLTYPE_OPAQUE|(access), \ ptr, len, sysctl_handle_opaque, fmt, __DESCR(descr)) diff --git a/src/libs/compat/freebsd_network/mbuf.c b/src/libs/compat/freebsd_network/mbuf.c index 16fe0c4183..8af2348184 100644 --- a/src/libs/compat/freebsd_network/mbuf.c +++ b/src/libs/compat/freebsd_network/mbuf.c @@ -169,6 +169,22 @@ m_gethdr(int how, short type) } +struct mbuf * +m_getjcl(int how, short type, int flags, int size) +{ + struct mbuf *mb = + (struct mbuf *)object_cache_alloc(sMBufCache, m_to_oc_flags(how)); + if (mb == NULL) + return NULL; + if (construct_ext_sized_mbuf(mb, how, size) < 0) { + object_cache_free(sMBufCache, mb); + return NULL; + } + mb->m_flags |= flags; + return mb; +} + + void m_clget(struct mbuf *m, int how) {