diff --git a/sys/alpha/include/mutex.h b/sys/alpha/include/mutex.h index 75c64cf3f85a..72d3b7b73401 100644 --- a/sys/alpha/include/mutex.h +++ b/sys/alpha/include/mutex.h @@ -60,6 +60,9 @@ extern char STR_SIEN[]; #define ASS_SIEN(mpp) MPASS2((mpp)->mtx_saveintr \ != ALPHA_PSL_IPL_HIGH, STR_SIEN) +#define mtx_legal2block() \ + ((alpha_pal_rdps() & ALPHA_PSL_IPL_MASK) == ALPHA_PSL_IPL_HIGH) + /* * Assembly macros (for internal use only) *-------------------------------------------------------------------------- diff --git a/sys/amd64/include/mutex.h b/sys/amd64/include/mutex.h index 1a8a7b65e7f6..0c4a9eb26ad6 100644 --- a/sys/amd64/include/mutex.h +++ b/sys/amd64/include/mutex.h @@ -60,6 +60,8 @@ extern char STR_SIEN[]; #define ASS_IDIS MPASS2((read_eflags() & PSL_I) == 0, STR_IDIS) #define ASS_SIEN(mpp) MPASS2((mpp)->mtx_saveintr & PSL_I, STR_SIEN) +#define mtx_legal2block() (read_eflags() & PSL_I) + /* * Assembly macros (for internal use only) *------------------------------------------------------------------------------ diff --git a/sys/i386/include/mutex.h b/sys/i386/include/mutex.h index 1a8a7b65e7f6..0c4a9eb26ad6 100644 --- a/sys/i386/include/mutex.h +++ b/sys/i386/include/mutex.h @@ -60,6 +60,8 @@ extern char STR_SIEN[]; #define ASS_IDIS MPASS2((read_eflags() & PSL_I) == 0, STR_IDIS) #define ASS_SIEN(mpp) MPASS2((mpp)->mtx_saveintr & PSL_I, STR_SIEN) +#define mtx_legal2block() (read_eflags() & PSL_I) + /* * Assembly macros (for internal use only) *------------------------------------------------------------------------------ diff --git a/sys/ia64/include/mutex.h b/sys/ia64/include/mutex.h index fe9c646ba112..e3a4a64a24a9 100644 --- a/sys/ia64/include/mutex.h +++ b/sys/ia64/include/mutex.h @@ -59,6 +59,8 @@ extern char STR_SIEN[]; #define ASS_IDIS MPASS2(!(save_intr() & IA64_PSR_I), STR_IDIS) #define ASS_SIEN(mpp) MPASS2((mpp)->mtx_saveintr & IA64_PSR_I), STR_SIEN) +#define mtx_legal2block() ((save_intr() & IA64_PSL_I) + #endif /* _KERNEL */ #else /* !LOCORE */ diff --git a/sys/powerpc/include/mutex.h b/sys/powerpc/include/mutex.h index 75c64cf3f85a..72d3b7b73401 100644 --- a/sys/powerpc/include/mutex.h +++ b/sys/powerpc/include/mutex.h @@ -60,6 +60,9 @@ extern char STR_SIEN[]; #define ASS_SIEN(mpp) MPASS2((mpp)->mtx_saveintr \ != ALPHA_PSL_IPL_HIGH, STR_SIEN) +#define mtx_legal2block() \ + ((alpha_pal_rdps() & ALPHA_PSL_IPL_MASK) == ALPHA_PSL_IPL_HIGH) + /* * Assembly macros (for internal use only) *--------------------------------------------------------------------------