X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=libcfs%2Flibcfs%2Flinux%2Flinux-prim.c;h=4d10dcb89bd3e8c502ed3d2b8383793450e73922;hb=refs%2Fchanges%2F66%2F22866%2F10;hp=b6719d1bd82f18dbd271514f1165016d4276cb3f;hpb=e089a515efae3391709b997be889ebe0f3306e9d;p=fs%2Flustre-release.git diff --git a/libcfs/libcfs/linux/linux-prim.c b/libcfs/libcfs/linux/linux-prim.c index b6719d1..4d10dcb 100644 --- a/libcfs/libcfs/linux/linux-prim.c +++ b/libcfs/libcfs/linux/linux-prim.c @@ -15,11 +15,7 @@ * * You should have received a copy of the GNU General Public License * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * http://www.gnu.org/licenses/gpl-2.0.html * * GPL HEADER END */ @@ -46,58 +42,97 @@ #include #endif -void cfs_init_timer(cfs_timer_t *t) +void cfs_init_timer(struct timer_list *t) { - init_timer(t); + init_timer(t); } EXPORT_SYMBOL(cfs_init_timer); -void cfs_timer_init(cfs_timer_t *t, cfs_timer_func_t *func, void *arg) +void cfs_timer_init(struct timer_list *t, cfs_timer_func_t *func, void *arg) { - init_timer(t); - t->function = func; - t->data = (unsigned long)arg; + init_timer(t); + t->function = func; + t->data = (unsigned long)arg; } EXPORT_SYMBOL(cfs_timer_init); -void cfs_timer_done(cfs_timer_t *t) -{ - return; -} -EXPORT_SYMBOL(cfs_timer_done); - -void cfs_timer_arm(cfs_timer_t *t, cfs_time_t deadline) +void cfs_timer_arm(struct timer_list *t, cfs_time_t deadline) { - mod_timer(t, deadline); + mod_timer(t, deadline); } EXPORT_SYMBOL(cfs_timer_arm); -void cfs_timer_disarm(cfs_timer_t *t) +void cfs_timer_disarm(struct timer_list *t) { - del_timer(t); + del_timer(t); } EXPORT_SYMBOL(cfs_timer_disarm); -int cfs_timer_is_armed(cfs_timer_t *t) +int cfs_timer_is_armed(struct timer_list *t) { - return timer_pending(t); + return timer_pending(t); } EXPORT_SYMBOL(cfs_timer_is_armed); -cfs_time_t cfs_timer_deadline(cfs_timer_t *t) +cfs_time_t cfs_timer_deadline(struct timer_list *t) { - return t->expires; + return t->expires; } EXPORT_SYMBOL(cfs_timer_deadline); -void cfs_enter_debugger(void) +#ifndef HAVE_KTIME_GET_TS64 +void ktime_get_ts64(struct timespec64 *ts) { -#if defined(CONFIG_KGDB) -// BREAKPOINT(); -#else - /* nothing */ -#endif + struct timespec now; + + ktime_get_ts(&now); + *ts = timespec_to_timespec64(now); +} +EXPORT_SYMBOL(ktime_get_ts64); +#endif /* HAVE_KTIME_GET_TS64 */ + +#ifndef HAVE_KTIME_GET_REAL_TS64 +void ktime_get_real_ts64(struct timespec64 *ts) +{ + struct timespec now; + + getnstimeofday(&now); + *ts = timespec_to_timespec64(now); } +EXPORT_SYMBOL(ktime_get_real_ts64); +#endif /* HAVE_KTIME_GET_REAL_TS64 */ + +#ifndef HAVE_KTIME_GET_REAL_SECONDS +/* + * Get the seconds portion of CLOCK_REALTIME (wall clock). + * This is the clock that can be altered by NTP and is + * independent of a reboot. + */ +time64_t ktime_get_real_seconds(void) +{ + return (time64_t)get_seconds(); +} +EXPORT_SYMBOL(ktime_get_real_seconds); +#endif /* HAVE_KTIME_GET_REAL_SECONDS */ + +#ifndef HAVE_KTIME_GET_SECONDS +/* + * Get the seconds portion of CLOCK_MONOTONIC + * This clock is immutable and is reset across + * reboots. For older platforms this is a + * wrapper around get_seconds which is valid + * until 2038. By that time this will be gone + * one would hope. + */ +time64_t ktime_get_seconds(void) +{ + struct timespec64 now; + + ktime_get_ts64(&now); + return now.tv_sec; +} +EXPORT_SYMBOL(ktime_get_seconds); +#endif /* HAVE_KTIME_GET_SECONDS */ sigset_t cfs_block_allsigs(void) @@ -112,6 +147,7 @@ cfs_block_allsigs(void) spin_unlock_irqrestore(¤t->sighand->siglock, flags); return old; } +EXPORT_SYMBOL(cfs_block_allsigs); sigset_t cfs_block_sigs(unsigned long sigs) { @@ -125,6 +161,7 @@ sigset_t cfs_block_sigs(unsigned long sigs) spin_unlock_irqrestore(¤t->sighand->siglock, flags); return old; } +EXPORT_SYMBOL(cfs_block_sigs); /* Block all signals except for the @sigs */ sigset_t cfs_block_sigsinv(unsigned long sigs) @@ -139,9 +176,10 @@ sigset_t cfs_block_sigsinv(unsigned long sigs) spin_unlock_irqrestore(¤t->sighand->siglock, flags); return old; } +EXPORT_SYMBOL(cfs_block_sigsinv); void -cfs_restore_sigs (cfs_sigset_t old) +cfs_restore_sigs(sigset_t old) { unsigned long flags; @@ -150,12 +188,7 @@ cfs_restore_sigs (cfs_sigset_t old) recalc_sigpending(); spin_unlock_irqrestore(¤t->sighand->siglock, flags); } - -int -cfs_signal_pending(void) -{ - return signal_pending(current); -} +EXPORT_SYMBOL(cfs_restore_sigs); void cfs_clear_sigpending(void) @@ -166,25 +199,4 @@ cfs_clear_sigpending(void) clear_tsk_thread_flag(current, TIF_SIGPENDING); spin_unlock_irqrestore(¤t->sighand->siglock, flags); } - -int -libcfs_arch_init(void) -{ - return 0; -} - -void -libcfs_arch_cleanup(void) -{ - return; -} - -EXPORT_SYMBOL(libcfs_arch_init); -EXPORT_SYMBOL(libcfs_arch_cleanup); -EXPORT_SYMBOL(cfs_enter_debugger); -EXPORT_SYMBOL(cfs_block_allsigs); -EXPORT_SYMBOL(cfs_block_sigs); -EXPORT_SYMBOL(cfs_block_sigsinv); -EXPORT_SYMBOL(cfs_restore_sigs); -EXPORT_SYMBOL(cfs_signal_pending); EXPORT_SYMBOL(cfs_clear_sigpending);