imask.c

00001 /*
00002   割り込み制御
00003   Satofumi KAMIMURA
00004   $Id$
00005 */
00006 
00007 #include "sh7045lib.h"
00008 
00009 
00010 /* 割り込みマスクの設定 */
00011 void set_imask(int mask) {
00012   int srreg;
00013 
00014   mask <<= 4;
00015   mask &= 0x00f0;
00016   asm("stc      sr, %0 ": "=r"(srreg):);
00017   srreg &= 0xffffff0f;
00018   srreg |= mask;
00019   asm("ldc      %0, sr ": :"r"(srreg));
00020 }
00021 
00022 
00023 /* 割り込みマスクの取得 */
00024 int get_imask(void) {
00025   unsigned int mask;
00026 
00027   asm("stc      sr, %0 ": "=r"(mask):);
00028   mask &= ~0xffffff0f;
00029   mask >>= 4;
00030 
00031   return mask;
00032 }
00033 

Generated on Mon Apr 13 22:52:04 2009 by  doxygen 1.5.7.1