21kflags.h
Upload User: hbbaokai
Upload Date: 2009-07-13
Package Size: 328k
Code Size: 3k
Category:

VOIP program

Development Platform:

Visual C++

  1. /*
  2.  * Defines the status registers of the 210x0 as bitfields.
  3.  * This is most usefull for code which doesn't need to be fast.
  4.  */
  5. register union {
  6.   struct {
  7.     unsigned         :15;
  8.     unsigned rnd32   :1;
  9.     unsigned trunc   :1;
  10.     unsigned         :1;
  11.     unsigned alusat  :1;
  12.     unsigned irpten  :1;
  13.     unsigned nestm   :1;
  14.     unsigned srrfl   :1;
  15.     unsigned         :2;
  16.     unsigned srrfh   :1;
  17.     unsigned srd2l   :1;
  18.     unsigned srd2h   :1;
  19.     unsigned srd1l   :1;
  20.     unsigned srd1h   :1;
  21.     unsigned srcu    :1;
  22.     unsigned br0     :1;
  23.     unsigned         :1;
  24.   } b;
  25.   int r;
  26. } mode1 asm("mode1");
  27. register union {
  28.   struct {
  29.   
  30.     unsigned       :12;
  31.     unsigned cafrz :1;
  32.     unsigned flg3_output  :1;
  33.     unsigned flg2_output  :1;
  34.     unsigned flg1_output  :1;
  35.     unsigned flg0_output  :1;
  36.     
  37.     unsigned       :3;
  38.     
  39.     unsigned timen :1;
  40.     
  41.     unsigned cadis :1;
  42.     
  43.     unsigned irq3_edge :1;
  44.     unsigned irq2_edge :1;
  45.     unsigned irq1_edge :1;
  46.     unsigned irq0_edge :1;
  47.   } b;
  48.   int r;
  49. } mode2 asm("mode2");
  50. register union {
  51.   struct {
  52.     unsigned cacc7 :1;
  53.     unsigned cacc6 :1;
  54.     unsigned cacc5 :1;
  55.     unsigned cacc4 :1;
  56.     unsigned cacc3 :1;
  57.     unsigned cacc2 :1;
  58.     unsigned cacc1 :1;
  59.     unsigned cacc0 :1;
  60.     unsigned       :1;
  61.     unsigned flg3_value  :1;
  62.     unsigned flg2_value  :1;
  63.     unsigned flg1_value  :1;
  64.     unsigned flg0_value  :1;
  65.     unsigned btf   :1;
  66.     
  67.     unsigned       :2;
  68.     
  69.     unsigned ss    :1;
  70.     unsigned sz    :1;
  71.     unsigned sv    :1;
  72.     unsigned af    :1;
  73.     unsigned mi    :1;
  74.     unsigned mu    :1;
  75.     unsigned mv    :1;
  76.     unsigned mn    :1;
  77.     unsigned ai    :1;
  78.     unsigned as    :1;
  79.     unsigned ac    :1;
  80.     unsigned an    :1;
  81.     unsigned av    :1;
  82.     unsigned az    :1;
  83.   } b;
  84.   int r;
  85. } astat asm("astat");
  86. struct interrupt_flags {
  87.     unsigned sft7i : 1;
  88.     unsigned sft6i : 1;
  89.     unsigned sft5i : 1;
  90.     unsigned sft4i : 1;
  91.     unsigned sft3i : 1;
  92.     unsigned sft2i : 1;
  93.     unsigned sft1i : 1;
  94.     unsigned sft0i : 1;
  95.     unsigned       : 5;
  96.     unsigned fltii : 1;
  97.     unsigned fltui : 1;
  98.     unsigned fltoi : 1;
  99.     unsigned fixi  : 1;
  100.     unsigned tmzli : 1;
  101.     unsigned       : 1;
  102.     unsigned cb15i : 1;
  103.     unsigned cb7i  : 1;
  104.     unsigned       : 2;
  105.     unsigned irq0i : 1;
  106.     unsigned irq1i : 1;
  107.     unsigned irq2i : 1;
  108.     unsigned irq3i : 1;
  109.     unsigned tmzhi : 1;
  110.     unsigned sovfi : 1;
  111.     unsigned       : 1;
  112.     unsigned rsti  : 1;
  113.     unsigned       : 1;
  114. };
  115. register union {
  116.   struct interrupt_flags b;
  117.   int r;
  118. } irptl asm("irptl");
  119. register union {
  120.   struct interrupt_flags b;
  121.   int r;
  122. } imask asm("imask");
  123. register union {
  124.   struct interrupt_flags b;
  125.   int r;
  126. } imaskp asm("imaskp");
  127. #define abs(x) ({ typeof (x) t; asm("%0=abs %1;" : "=d" (t) : "d" (x)); t;})