From: Christoph Lameter The following exports are necessary to allow loadable modules to define new clocks. Without these the mmtimer driver cannot be build correctly as a module (there is another mmtimer specific fix necessary to get it to build properly but that will be a separate patch): Signed-off-by: Christoph Lameter Signed-off-by: Andrew Morton --- 25-akpm/kernel/posix-timers.c | 7 ++++++- 25-akpm/kernel/time.c | 2 ++ 2 files changed, 8 insertions(+), 1 deletion(-) diff -puN kernel/posix-timers.c~exports-to-enable-clock-driver-modules kernel/posix-timers.c --- 25/kernel/posix-timers.c~exports-to-enable-clock-driver-modules 2005-03-14 20:56:13.000000000 -0800 +++ 25-akpm/kernel/posix-timers.c 2005-03-14 20:56:13.000000000 -0800 @@ -46,6 +46,7 @@ #include #include #include +#include #ifndef div_long_long_rem #include @@ -460,6 +461,7 @@ int posix_timer_event(struct k_itimer *t timr->it_process); } } +EXPORT_SYMBOL_GPL(posix_timer_event); /* * This function gets called when a POSIX.1b interval timer expires. It @@ -555,6 +557,7 @@ void register_posix_clock(clockid_t cloc posix_clocks[clock_id] = *new_clock; } +EXPORT_SYMBOL_GPL(register_posix_clock); static struct k_itimer * alloc_posix_timer(void) { @@ -1246,16 +1249,17 @@ int do_posix_clock_monotonic_gettime(str return do_posix_clock_monotonic_get(CLOCK_MONOTONIC, tp); } - int do_posix_clock_nosettime(clockid_t clockid, struct timespec *tp) { return -EINVAL; } +EXPORT_SYMBOL_GPL(do_posix_clock_nosettime); int do_posix_clock_notimer_create(struct k_itimer *timer) { return -EINVAL; } +EXPORT_SYMBOL_GPL(do_posix_clock_notimer_create); int do_posix_clock_nonanosleep(clockid_t clock, int flags, struct timespec *t) { @@ -1265,6 +1269,7 @@ int do_posix_clock_nonanosleep(clockid_t return -ENOTSUP; #endif } +EXPORT_SYMBOL_GPL(do_posix_clock_nonanosleep); asmlinkage long sys_clock_settime(clockid_t which_clock, const struct timespec __user *tp) diff -puN kernel/time.c~exports-to-enable-clock-driver-modules kernel/time.c --- 25/kernel/time.c~exports-to-enable-clock-driver-modules 2005-03-14 20:56:13.000000000 -0800 +++ 25-akpm/kernel/time.c 2005-03-14 20:56:13.000000000 -0800 @@ -34,6 +34,7 @@ #include #include #include +#include #include #include @@ -503,6 +504,7 @@ void getnstimeofday (struct timespec *tv tv->tv_sec = sec; tv->tv_nsec = nsec; } +EXPORT_SYMBOL_GPL(getnstimeofday); int do_settimeofday (struct timespec *tv) { _