delay.h
上传用户:lgb322
上传日期:2013-02-24
资源大小:30529k
文件大小:1k
- #ifndef _CRIS_DELAY_H
- #define _CRIS_DELAY_H
- /*
- * Copyright (C) 1998, 1999, 2000, 2001 Axis Communications AB
- *
- * Delay routines, using a pre-computed "loops_per_second" value.
- */
- #include <linux/config.h>
- #include <linux/linkage.h>
- #ifdef CONFIG_SMP
- #include <asm/smp.h>
- #endif
- extern void __do_delay(void); /* Special register call calling convention */
- extern __inline__ void __delay(int loops)
- {
- __asm__ __volatile__ (
- "move.d %0,$r9nt"
- "beq 2fnt"
- "subq 1,$r9nt"
- "1:nt"
- "bne 1bnt"
- "subq 1,$r9n"
- "2:"
- : : "g" (loops) : "r9");
- }
- /* Use only for very small delays ( < 1 msec). */
- extern unsigned long loops_per_usec; /* arch/cris/mm/init.c */
- extern __inline__ void udelay(unsigned long usecs)
- {
- __delay(usecs * loops_per_usec);
- }
- #endif /* defined(_CRIS_DELAY_H) */