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 + -
显示快捷键?