#include <linux/module.h> #include <linux/kernel.h> #include <linux/delay.h> #include <asm/param.h> void __delay(unsigned long time) { /* Stolen from the i386 __loop_delay */ int d0; __asm__ __volatile__( "\tjmp 1f\n" ".align 16\n" "1:\tjmp 2f\n" ".align 16\n" "2:\tdecl %0\n\tjns 2b" :"=&a" (d0) :"0" (time)); } void __udelay(unsigned long usecs) { int i, n; n = (loops_per_jiffy * HZ * usecs) / MILLION; for(i=0;i<n;i++) cpu_relax(); } EXPORT_SYMBOL(__udelay);