From owner-p4-projects@FreeBSD.ORG Sun Mar 17 13:49:42 2013 Return-Path: Delivered-To: p4-projects@freebsd.org Received: by hub.freebsd.org (Postfix, from userid 32767) id B4843D09; Sun, 17 Mar 2013 13:49:42 +0000 (UTC) Delivered-To: perforce@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2001:1900:2254:206a::19:1]) by hub.freebsd.org (Postfix) with ESMTP id 76900D07 for ; Sun, 17 Mar 2013 13:49:42 +0000 (UTC) (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: from skunkworks.freebsd.org (skunkworks.freebsd.org [IPv6:2001:1900:2254:2068::682:0]) by mx1.freebsd.org (Postfix) with ESMTP id 661F220E for ; Sun, 17 Mar 2013 13:49:42 +0000 (UTC) Received: from skunkworks.freebsd.org ([127.0.1.74]) by skunkworks.freebsd.org (8.14.6/8.14.6) with ESMTP id r2HDngBo056804 for ; Sun, 17 Mar 2013 13:49:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Received: (from perforce@localhost) by skunkworks.freebsd.org (8.14.6/8.14.6/Submit) id r2HDngA0056801 for perforce@freebsd.org; Sun, 17 Mar 2013 13:49:42 GMT (envelope-from bb+lists.freebsd.perforce@cyrus.watson.org) Date: Sun, 17 Mar 2013 13:49:42 GMT Message-Id: <201303171349.r2HDngA0056801@skunkworks.freebsd.org> X-Authentication-Warning: skunkworks.freebsd.org: perforce set sender to bb+lists.freebsd.perforce@cyrus.watson.org using -f From: Robert Watson Subject: PERFORCE change 222968 for review To: Perforce Change Reviews Precedence: bulk X-BeenThere: p4-projects@freebsd.org X-Mailman-Version: 2.1.14 List-Id: p4 projects tree changes List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Sun, 17 Mar 2013 13:49:42 -0000 http://p4web.freebsd.org/@@222968?ac=10 Change 222968 by rwatson@rwatson_cinnamon on 2013/03/17 13:48:44 Various header and definition fixes to allow increasing amounts of libtesla to compile in the FreeBSD kernel. Primarily, this consited of adding missing includes, and preventing inclusion of specific headers (e.g., stdio) when _KERNEL. There was also a syntax issue with assertions, which is not tested with the userspace version of libtesla and may require further refinement. Now comes the harder bit. Affected files ... .. //depot/projects/ctsrd/tesla/src/sys/libtesla/debug.c#2 edit .. //depot/projects/ctsrd/tesla/src/sys/libtesla/key.c#2 edit .. //depot/projects/ctsrd/tesla/src/sys/libtesla/libtesla.h#2 edit .. //depot/projects/ctsrd/tesla/src/sys/libtesla/state.c#2 edit .. //depot/projects/ctsrd/tesla/src/sys/libtesla/tesla_internal.h#2 edit .. //depot/projects/ctsrd/tesla/src/sys/libtesla/update.c#2 edit Differences ... ==== //depot/projects/ctsrd/tesla/src/sys/libtesla/debug.c#2 (text+ko) ==== @@ -32,7 +32,10 @@ */ #include "tesla_internal.h" + +#ifndef _KERNEL #include +#endif char* transition_matrix(const struct tesla_transitions *trans) ==== //depot/projects/ctsrd/tesla/src/sys/libtesla/key.c#2 (text+ko) ==== @@ -32,8 +32,10 @@ #include "tesla_internal.h" +#ifndef _KERNEL #include #include +#endif #define IS_SET(mask, index) (mask & (1 << index)) ==== //depot/projects/ctsrd/tesla/src/sys/libtesla/libtesla.h#2 (text+ko) ==== @@ -34,7 +34,11 @@ #ifndef _TESLA_STATE #define _TESLA_STATE +#ifdef _KERNEL +#include +#else #include /* int32_t, uint32_t */ +#endif /* * libtesla functions mostly return error values, and therefore return ==== //depot/projects/ctsrd/tesla/src/sys/libtesla/state.c#2 (text+ko) ==== @@ -33,11 +33,11 @@ #include "tesla_internal.h" +#ifdef _KERNEL +MALLOC_DEFINE(M_TESLA, "tesla", "TESLA internal state"); +#else #include #include - -#ifdef _KERNEL -MALLOC_DEFINE(M_TESLA, "tesla", "TESLA internal state"); #endif @@ -135,7 +135,7 @@ struct tesla_table *ttp = tclass->ts_table; assert(ttp != NULL); - tesla_assert(ttp->tt_length != 0, "Uninitialized tesla_table"); + tesla_assert(ttp->tt_length != 0, ("Uninitialized tesla_table")); if (ttp->tt_free == 0) return (TESLA_ERROR_ENOMEM); @@ -154,7 +154,7 @@ break; } - tesla_assert(*out != NULL, "no free instances but tt_free was > 0"); + tesla_assert(*out != NULL, ("no free instances but tt_free was > 0")); return (TESLA_SUCCESS); } ==== //depot/projects/ctsrd/tesla/src/sys/libtesla/tesla_internal.h#2 (text+ko) ==== @@ -36,21 +36,26 @@ #ifdef _KERNEL #include "opt_kdb.h" #include +#include #include #include #include #include #include +#include +#include #include + +#include #else #include #include #include #include #include -#endif #include +#endif //! Is @ref x a subset of @ref y? #define SUBSET(x,y) ((x & y) == x) @@ -98,8 +103,13 @@ #define __debug +#ifdef _KERNEL +#include +#define DEBUG_PRINT(...) printf(__VA_ARGS__) +#else #include #define DEBUG_PRINT(...) fprintf(stderr, __VA_ARGS__) +#endif #define VERBOSE_PRINT(...) if (verbose_debug()) DEBUG_PRINT(__VA_ARGS__) /** Are we in (verbose) debug mode? */ @@ -127,7 +137,7 @@ #define tesla_assert(...) KASSERT(__VA_ARGS__) /** Emulate simple POSIX assertions. */ -#define assert(cond) KASSERT(cond, "Assertion failed: '" # cond "'") +#define assert(cond) KASSERT((cond), ("Assertion failed: '%s'", #cond)) #define tesla_malloc(len) malloc(len, M_TESLA, M_WAITOK | M_ZERO) #define tesla_free(x) free(x, M_TESLA) ==== //depot/projects/ctsrd/tesla/src/sys/libtesla/update.c#2 (text+ko) ==== @@ -32,8 +32,10 @@ #include "tesla_internal.h" +#ifndef _KERNEL #include #include +#endif #define CHECK(fn, ...) do { \ int err = fn(__VA_ARGS__); \