home *** CD-ROM | disk | FTP | other *** search
/ PC Welt 2006 November (DVD) / PCWELT_11_2006.ISO / casper / filesystem.squashfs / usr / src / linux-headers-2.6.17-6 / include / asm-sparc64 / pil.h < prev    next >
Encoding:
C/C++ Source or Header  |  2006-08-11  |  949 b   |  29 lines

  1. /* $Id: pil.h,v 1.1 2002/01/23 11:27:36 davem Exp $ */
  2. #ifndef _SPARC64_PIL_H
  3. #define _SPARC64_PIL_H
  4.  
  5. /* To avoid some locking problems, we hard allocate certain PILs
  6.  * for SMP cross call messages that must do a etrap/rtrap.
  7.  *
  8.  * A cli() does not block the cross call delivery, so when SMP
  9.  * locking is an issue we reschedule the event into a PIL interrupt
  10.  * which is blocked by cli().
  11.  *
  12.  * In fact any XCALL which has to etrap/rtrap has a problem because
  13.  * it is difficult to prevent rtrap from running BH's, and that would
  14.  * need to be done if the XCALL arrived while %pil==15.
  15.  */
  16. #define PIL_SMP_CALL_FUNC    1
  17. #define PIL_SMP_RECEIVE_SIGNAL    2
  18. #define PIL_SMP_CAPTURE        3
  19. #define PIL_SMP_CTX_NEW_VERSION    4
  20.  
  21. #ifndef __ASSEMBLY__
  22. #define PIL_RESERVED(PIL)    ((PIL) == PIL_SMP_CALL_FUNC || \
  23.                  (PIL) == PIL_SMP_RECEIVE_SIGNAL || \
  24.                  (PIL) == PIL_SMP_CAPTURE || \
  25.                  (PIL) == PIL_SMP_CTX_NEW_VERSION)
  26. #endif
  27.  
  28. #endif /* !(_SPARC64_PIL_H) */
  29.