%PDF- <> %âãÏÓ endobj 2 0 obj <> endobj 3 0 obj <>/ExtGState<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI] >>/Annots[ 28 0 R 29 0 R] /MediaBox[ 0 0 595.5 842.25] /Contents 4 0 R/Group<>/Tabs/S>> endobj ºaâÚÎΞ-ÌE1ÍØÄ÷{òò2ÿ ÛÖ^ÔÀá TÎ{¦?§®¥kuµùÕ5sLOšuY>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<>endobj 2 0 obj<> endobj 2 0 obj<>endobj 2 0 obj<>es 3 0 R>> endobj 2 0 obj<> ox[ 0.000000 0.000000 609.600000 935.600000]/Fi endobj 3 0 obj<> endobj 7 1 obj<>/ProcSet[/PDF/Text/ImageB/ImageC/ImageI]>>/Subtype/Form>> stream
/* SPDX-License-Identifier: GPL-2.0 */ #ifndef _ASM_POWERPC_TIMEX_H #define _ASM_POWERPC_TIMEX_H #ifdef __KERNEL__ /* * PowerPC architecture timex specifications */ #include <asm/cputable.h> #include <asm/reg.h> #define CLOCK_TICK_RATE 1024000 /* Underlying HZ */ typedef unsigned long cycles_t; static inline cycles_t get_cycles(void) { #ifdef __powerpc64__ return mftb(); #else cycles_t ret; /* * For the "cycle" counter we use the timebase lower half. * Currently only used on SMP. */ ret = 0; __asm__ __volatile__( #ifdef CONFIG_PPC_8xx "97: mftb %0\n" #else "97: mfspr %0, %2\n" #endif "99:\n" ".section __ftr_fixup,\"a\"\n" ".align 2\n" "98:\n" " .long %1\n" " .long 0\n" " .long 97b-98b\n" " .long 99b-98b\n" " .long 0\n" " .long 0\n" ".previous" : "=r" (ret) : "i" (CPU_FTR_601), "i" (SPRN_TBRL)); return ret; #endif } #endif /* __KERNEL__ */ #endif /* _ASM_POWERPC_TIMEX_H */