pil.h
上传用户:jlfgdled
上传日期:2013-04-10
资源大小:33168k
文件大小:1k
源码类别:

Linux/Unix编程

开发平台:

Unix_Linux

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