/* include/click/config-linuxmodule.h.  Generated by configure.  */
/* Process this file with configure to produce config-linuxmodule.h. -*- mode: c -*- */
#ifndef CLICK_CONFIG_LINUXMODULE_H
#define CLICK_CONFIG_LINUXMODULE_H

/* Define stuff under a Linux module. */
#ifndef __linux__
# error "I must be compiled on a Linux machine"
#endif
#define __KERNEL__ 1
#define MODULE 1

/* Define if your Linux kernel is running in SMP mode. */
/* #undef __SMP__ */

/* Define if Click should use an adaptive scheduler to share the CPU(s) more
   fairly with the kernel. */
/* #undef HAVE_ADAPTIVE_SCHEDULER */

/* Define if your Linux kernel has Click extensions. */
/* #undef HAVE_CLICK_KERNEL */

/* Define if your Linux kernel has Click transmit notification extensions. */
/* #undef HAVE_CLICK_KERNEL_TX_NOTIFY */

/* Define if fast checksum functions available. */
#define HAVE_FAST_CHECKSUM 1

/* Define if 'int64_t' is typedefed to 'long' in linuxmodule. */
/* #undef HAVE_INT64_IS_LONG_LINUXMODULE */

/* Define to enable assertion checking. Failed assertions will print a message
   and optionally stop the router. */
/* #undef HAVE_KERNEL_ASSERT */

/* Define if your Linux kernel has polling extensions. */
/* #undef HAVE_LINUX_POLLING */

/* Define if your Linux kernel has read_net_skbcount. */
/* #undef HAVE_LINUX_READ_NET_SKBCOUNT */

/* Define if 'struct sk_buff' has a 'security' member. */
/* #undef HAVE_LINUX_SKBUFF_SECURITY */

/* Define if your Linux kernel exposes strlen. */
/* #undef HAVE_LINUX_STRLEN_EXPOSED */

/* Define if your Linux kernel has tulip_interrupt_hook. */
/* #undef HAVE_LINUX_TULIP_INTERRUPT_HOOK */

/* Define if the Click linuxmodule is compiled for a 2.6 kernel. */
/* #undef HAVE_LINUXMODULE_2_6 */

/* Define if fast checksum functions require correct alignment. */
#ifndef __i386__
# define FAST_CHECKSUM_ALIGNED 1
#endif

/* Include integer type definitions. */
#include <linux/types.h>
typedef ptrdiff_t intptr_t;
typedef unsigned long uintptr_t; /* XXX? */

/* Define HAVE_INT64_IS_LONG based on HAVE_INT64_IS_LONG_LINUXMODULE. */
#ifdef HAVE_INT64_IS_LONG_LINUXMODULE
# define HAVE_INT64_IS_LONG HAVE_INT64_IS_LONG_LINUXMODULE
#endif

/* Define KBUILD symbols. */
#if !defined(KBUILD_STR) && HAVE_LINUXMODULE_2_6
# define KBUILD_STR(s)		#s
# define KBUILD_BASENAME	KBUILD_STR(click)
# define KBUILD_MODNAME		KBUILD_STR(click)
#endif

#ifdef __cplusplus

/* Declare operator new. */
void *operator new(size_t) throw ();
void *operator new[](size_t) throw ();

/* Provide placement new. */
inline void *operator new(size_t, void *v) { return v; }
#define HAVE_PLACEMENT_NEW 1

/* Define macros that surround Click declarations. */
#define CLICK_DECLS		/* */
#define CLICK_ENDDECLS		/* */
#define CLICK_USING_DECLS	/* */
#define CLICK_NAME(name)	name

#endif /* __cplusplus */

/* Define assert macro. */
#ifdef HAVE_KERNEL_ASSERT
# ifdef __cplusplus
extern "C" {
# endif
void click_assert_failed(const char *file, int line, const char *problem_text);
# ifdef __cplusplus
}
# endif
# define assert(x)	((x) ? (void)0 : click_assert_failed(__FILE__, __LINE__, #x))
#else
# define assert(x)	/* nada */
#endif

#endif /* CLICK_CONFIG_LINUXMODULE_H */
