time.h
来自「Linux Kernel 2.6.9 for OMAP1710」· C头文件 代码 · 共 107 行
H
107 行
/* * Common time prototypes and such for all ppc machines. * * Written by Cort Dougan (cort@cs.nmt.edu) to merge * Paul Mackerras' version and mine for PReP and Pmac. * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation; either version * 2 of the License, or (at your option) any later version. */#ifndef __PPC64_TIME_H#define __PPC64_TIME_H#ifdef __KERNEL__#include <linux/config.h>#include <linux/types.h>#include <linux/mc146818rtc.h>#include <asm/processor.h>#include <asm/paca.h>#include <asm/iSeries/HvCall.h>/* time.c */extern unsigned long tb_ticks_per_jiffy;extern unsigned long tb_ticks_per_usec;extern unsigned long tb_ticks_per_sec;extern unsigned long tb_to_xs;extern unsigned tb_to_us;extern unsigned long tb_last_stamp;struct rtc_time;extern void to_tm(int tim, struct rtc_time * tm);extern time_t last_rtc_update;/* * By putting all of this stuff into a single struct we * reduce the number of cache lines touched by do_gettimeofday. * Both by collecting all of the data in one cache line and * by touching only one TOC entry */struct gettimeofday_vars { unsigned long tb_to_xs; unsigned long stamp_xsec;};struct gettimeofday_struct { unsigned long tb_orig_stamp; unsigned long tb_ticks_per_sec; struct gettimeofday_vars vars[2]; struct gettimeofday_vars * volatile varp; unsigned var_idx; unsigned tb_to_us;};struct div_result { unsigned long result_high; unsigned long result_low;};int via_calibrate_decr(void);static __inline__ unsigned long get_tb(void){ return mftb();}/* Accessor functions for the decrementer register. */static __inline__ unsigned int get_dec(void){ return (mfspr(SPRN_DEC));}static __inline__ void set_dec(int val){#ifdef CONFIG_PPC_ISERIES struct paca_struct *lpaca = get_paca(); int cur_dec; if (lpaca->lppaca.xSharedProc) { lpaca->lppaca.xVirtualDecr = val; cur_dec = get_dec(); if (cur_dec > val) HvCall_setVirtualDecr(); } else#endif mtspr(SPRN_DEC, val);}static inline unsigned long tb_ticks_since(unsigned long tstamp){ return get_tb() - tstamp;}#define mulhwu(x,y) \({unsigned z; asm ("mulhwu %0,%1,%2" : "=r" (z) : "r" (x), "r" (y)); z;})#define mulhdu(x,y) \({unsigned long z; asm ("mulhdu %0,%1,%2" : "=r" (z) : "r" (x), "r" (y)); z;})unsigned mulhwu_scale_factor(unsigned, unsigned);void div128_by_32( unsigned long dividend_high, unsigned long dividend_low, unsigned divisor, struct div_result *dr );#endif /* __KERNEL__ */#endif /* __PPC64_TIME_H */
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?