/*
  割り込み制御
  Satofumi KAMIMURA
  $Id: imask.c 286 2008-10-20 09:40:22Z satofumi $
*/

#include "sh7045lib.h"


/* 割り込みマスクの設定 */
void set_imask(int mask) {
  int srreg;

  mask <<= 4;
  mask &= 0x00f0;
  asm("stc	sr, %0 ": "=r"(srreg):);
  srreg &= 0xffffff0f;
  srreg |= mask;
  asm("ldc	%0, sr ": :"r"(srreg));
}


/* 割り込みマスクの取得 */
int get_imask(void) {
  unsigned int mask;

  asm("stc	sr, %0 ": "=r"(mask):);
  mask &= ~0xffffff0f;
  mask >>= 4;

  return mask;
}
