From: Justin Pettit Date: Sun, 1 Aug 2010 00:09:31 +0000 (-0700) Subject: datapath: Clean-up previous undefined symbol commit X-Git-Url: https://pintos-os.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a644bae6eec521119252221d4aa989168eccc22b;p=openvswitch datapath: Clean-up previous undefined symbol commit The previous commit still had some issues with the "set_normalized_timespec" symbol being undefined. Here we just replace it. We can search for a more elegant solution later if necessary. --- diff --git a/datapath/linux-2.6/.gitignore b/datapath/linux-2.6/.gitignore index 4b5658b2..bd99f240 100644 --- a/datapath/linux-2.6/.gitignore +++ b/datapath/linux-2.6/.gitignore @@ -25,6 +25,7 @@ /random32.c /skbuff-openvswitch.c /table.c +/time.c /tmp /veth.c /vport-generic.c diff --git a/datapath/linux-2.6/Modules.mk b/datapath/linux-2.6/Modules.mk index b6cb3e92..7f4cae6e 100644 --- a/datapath/linux-2.6/Modules.mk +++ b/datapath/linux-2.6/Modules.mk @@ -5,7 +5,8 @@ openvswitch_sources += \ linux-2.6/compat-2.6/ip_output-openvswitch.c \ linux-2.6/compat-2.6/kmemdup.c \ linux-2.6/compat-2.6/random32.c \ - linux-2.6/compat-2.6/skbuff-openvswitch.c + linux-2.6/compat-2.6/skbuff-openvswitch.c \ + linux-2.6/compat-2.6/time.c openvswitch_headers += \ linux-2.6/compat-2.6/compat26.h \ linux-2.6/compat-2.6/include/asm-generic/bug.h \ @@ -38,7 +39,6 @@ openvswitch_headers += \ linux-2.6/compat-2.6/include/linux/slab.h \ linux-2.6/compat-2.6/include/linux/stddef.h \ linux-2.6/compat-2.6/include/linux/tcp.h \ - linux-2.6/compat-2.6/include/linux/time.h \ linux-2.6/compat-2.6/include/linux/timer.h \ linux-2.6/compat-2.6/include/linux/types.h \ linux-2.6/compat-2.6/include/linux/udp.h \ diff --git a/datapath/linux-2.6/compat-2.6/include/linux/time.h b/datapath/linux-2.6/compat-2.6/include/linux/time.h deleted file mode 100644 index fa325fae..00000000 --- a/datapath/linux-2.6/compat-2.6/include/linux/time.h +++ /dev/null @@ -1,46 +0,0 @@ -#ifndef __LINUX_TIME_WRAPPER_H -#define __LINUX_TIME_WRAPPER_H 1 - -#include_next - -#include - -#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) - -/* "set_normalized_timespec" is defined but not exported in kernels - * before 2.6.26. */ -#define set_normalized_timespec(ts, sec, nsec) \ - rpl_set_normalized_timespec(ts, sec, nsec) - -/** - * set_normalized_timespec - set timespec sec and nsec parts and normalize - * - * @ts: pointer to timespec variable to be set - * @sec: seconds to set - * @nsec: nanoseconds to set - * - * Set seconds and nanoseconds field of a timespec variable and - * normalize to the timespec storage format - * - * Note: The tv_nsec part is always in the range of - * 0 <= tv_nsec < NSEC_PER_SEC - * For negative values only the tv_sec field is negative ! - */ -static inline void rpl_set_normalized_timespec(struct timespec *ts, - time_t sec, long nsec) -{ - while (nsec >= NSEC_PER_SEC) { - nsec -= NSEC_PER_SEC; - ++sec; - } - while (nsec < 0) { - nsec += NSEC_PER_SEC; - --sec; - } - ts->tv_sec = sec; - ts->tv_nsec = nsec; -} - -#endif /* linux kernel < 2.6.26 */ - -#endif diff --git a/datapath/linux-2.6/compat-2.6/time.c b/datapath/linux-2.6/compat-2.6/time.c new file mode 100644 index 00000000..b07ee267 --- /dev/null +++ b/datapath/linux-2.6/compat-2.6/time.c @@ -0,0 +1,39 @@ +#include + +#include + +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,26) + +/* "set_normalized_timespec" is defined but not exported in kernels + * before 2.6.26. */ + +/** + * set_normalized_timespec - set timespec sec and nsec parts and normalize + * + * @ts: pointer to timespec variable to be set + * @sec: seconds to set + * @nsec: nanoseconds to set + * + * Set seconds and nanoseconds field of a timespec variable and + * normalize to the timespec storage format + * + * Note: The tv_nsec part is always in the range of + * 0 <= tv_nsec < NSEC_PER_SEC + * For negative values only the tv_sec field is negative ! + */ +void set_normalized_timespec(struct timespec *ts, + time_t sec, long nsec) +{ + while (nsec >= NSEC_PER_SEC) { + nsec -= NSEC_PER_SEC; + ++sec; + } + while (nsec < 0) { + nsec += NSEC_PER_SEC; + --sec; + } + ts->tv_sec = sec; + ts->tv_nsec = nsec; +} + +#endif /* linux kernel < 2.6.26 */