File diff 5fc7f2080582 → 95e39e5412bd
BLD/build/HEADERS/92-vmkdrivers-asm-x64/vmkernel64/release/asm/delay.h
Show inline comments
 
new file 100644
 
/*
 
 * Portions Copyright 2008 VMware, Inc.
 
 */
 
#ifndef _X8664_DELAY_H
 
#define _X8664_DELAY_H
 

	
 
/*
 
 * Copyright (C) 1993 Linus Torvalds
 
 *
 
 * Delay routines calling functions in arch/x86_64/lib/delay.c
 
 */
 
#if defined(__VMKLNX__)
 
#include "vmkapi.h"
 

	
 
#define udelay(n) vmk_DelayUsecs((vmk_uint32) (n))
 

	
 
#else /* !defined(__VMKLNX__) */
 
 
 
extern void __bad_udelay(void);
 
extern void __bad_ndelay(void);
 

	
 
extern void __udelay(unsigned long usecs);
 
extern void __ndelay(unsigned long usecs);
 
extern void __const_udelay(unsigned long usecs);
 
extern void __delay(unsigned long loops);
 

	
 
/**
 
 *  udelay - delay for n microseconds
 
 *  @n: number of microseconds to delay
 
 *
 
 *  SYNOPSIS:
 
 *      #define udelay(n)
 
 *
 
 *  RETURN VALUE:
 
 *  none
 
 *
 
 */
 
/* _VMKLNX_CODECHECK_: udelay */
 
#define udelay(n) (__builtin_constant_p(n) ? \
 
	((n) > 20000 ? __bad_udelay() : __const_udelay((n) * 0x10c6ul)) : \
 
	__udelay(n))
 

	
 
#define ndelay(n) (__builtin_constant_p(n) ? \
 
       ((n) > 20000 ? __bad_ndelay() : __const_udelay((n) * 5ul)) : \
 
       __ndelay(n))
 

	
 
#endif /* defined(__VMKLNX__) */
 

	
 
#endif /* defined(_X8664_DELAY_H) */