ext.h revision 62a515eec8de1b7804ec6997c0f2013fef5c5a6b
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync/** $Id$ */
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync/** @file
20bc99aa3ad84a338b7a9c1edc14682bce25d761vboxsync * NAT - some externals helpers
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync */
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync/*
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * Copyright (C) 2007 Sun Microsystems, Inc.
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync *
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * available from http://www.virtualbox.org. This file is free software;
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * you can redistribute it and/or modify it under the terms of the GNU
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * General Public License (GPL) as published by the Free Software
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync *
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * Clara, CA 95054 USA or visit http://www.sun.com if you need
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync * additional information or have any questions.
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync */
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#ifdef VBOX_WITH_SLIRP_BSD_MBUF
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# ifndef IN_BSD
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_mbuf slirp_zone_mbuf(pData)
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_clust slirp_zone_clust(pData)
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_pack slirp_zone_pack(pData)
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_jumbop slirp_zone_jumbop(pData)
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_jumbo9 slirp_zone_jumbo9(pData)
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_jumbo16 slirp_zone_jumbo16(pData)
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_ext_refcnt slirp_zone_ext_refcnt(pData)
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsyncstatic inline uma_zone_t slirp_zone_mbuf(PNATState);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsyncstatic inline uma_zone_t slirp_zone_clust(PNATState);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsyncstatic inline uma_zone_t slirp_zone_pack(PNATState);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsyncstatic inline uma_zone_t slirp_zone_jumbop(PNATState);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsyncstatic inline uma_zone_t slirp_zone_jumbo9(PNATState);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsyncstatic inline uma_zone_t slirp_zone_jumbo16(PNATState);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsyncstatic inline uma_zone_t slirp_zone_ext_refcnt(PNATState);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# else
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# undef zone_mbuf
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# undef zone_clust
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# undef zone_pack
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# undef zone_jumbop
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# undef zone_jumbo9
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# undef zone_jumbo16
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# undef zone_ext_refcnt
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_mbuf pData->zone_mbuf
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_clust pData->zone_clust
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_pack pData->zone_pack
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_jumbop pData->zone_jumbop
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_jumbo9 pData->zone_jumbo9
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_jumbo16 pData->zone_jumbo16
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# define zone_ext_refcnt pData->zone_ext_refcnt
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync# endif
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#endif
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#ifndef _EXT_H_
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#define _EXT_H_
6de922ee8158732706074aacb20c2a5dc6d4d7a3vboxsync# define fprintf vbox_slirp_fprintf
6de922ee8158732706074aacb20c2a5dc6d4d7a3vboxsync# define printf vbox_slirp_printf
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#ifndef vbox_slirp_printfV
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsyncstatic void vbox_slirp_printV(char *format, va_list args)
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync{
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync char buffer[1024];
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync memset(buffer, 0, 1024);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync RTStrPrintfV(buffer, 1024, format, args);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync
62a515eec8de1b7804ec6997c0f2013fef5c5a6bvboxsync LogRel(("NAT:EXT: %s\n", buffer));
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync}
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#endif
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#ifndef vbox_slirp_printf
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsyncstatic void vbox_slirp_printf(char *format, ...)
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync{
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync va_list args;
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync va_start(args, format);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync vbox_slirp_printV(format, args);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync va_end(args);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync}
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#endif
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#ifndef vbox_slirp_fprintf
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsyncstatic void vbox_slirp_fprintf(void *ignored, char *format, ...)
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync{
a8d4049da2285bc369273acbf613b8b7990cb4bfvboxsync# ifdef LOG_ENABLED
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync va_list args;
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync va_start(args, format);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync vbox_slirp_printV(format, args);
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync va_end(args);
a8d4049da2285bc369273acbf613b8b7990cb4bfvboxsync# endif
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync}
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#endif
c0829c6fca24bd3a9a687c93f9b64da2c54b767cvboxsync#endif