Diff for /embedtools/src/pceng_run.c between versions 1.1.2.2 and 1.1.2.3

version 1.1.2.2, 2011/07/22 15:03:30 version 1.1.2.3, 2011/07/23 23:41:00
Line 47  SUCH DAMAGE. Line 47  SUCH DAMAGE.
 #include "pceng.h"  #include "pceng.h"
   
   
   const u_int led_base[2][4] = {{0xf410, 0xf400, 0xf400, 0xf400}, 
           {0x61b0, 0x6100, 0x6180, 0x6180}};
   const int led_bit[2][4] = {{8, 2, 3, 18}, {8, 6, 9, 11}};
   const int gpio_off[2] = { 0x4, 0x10 };
   
   
   static inline board_t
   getBoard()
   {
           board_t type;
           char szStr[STRSIZ];
   
           FTRACE(3);
   
           cfg_LoadAttribute(&cfg, CFG("pceng"), CFG("board"), CFG(szStr), sizeof szStr, DEFAULT_BOARD);
           if (!strcasecmp(szStr, "alix"))
                   type = alix;
           else if (!strcasecmp(szStr, "wrap"))
                   type = wrap;
           else {
                   type = unknown;
                   syslog(LOG_ERR, "Error:: unknown board type %s", szStr);
           }
   
           return type;
   }
   
   static u_int
   gpioRead(u_char ledno, u_char state)
   {
           u_int n;
           board_t type = getBoard();
   
           FTRACE(3);
   
           switch (type) {
                   case wrap:
                           n = inl(led_base[type - 1][ledno] + gpio_off[type - 1]);
                           if (n & (1 << led_bit[type - 1][ledno]))
                                   n = 1;
                           else
                                   n = 0;
                           break;
                   case alix:
                           n = inl(led_base[type - 1][ledno]);
                           if (n & (1 << led_bit[type - 1][ledno]))
                                   n = 0;
                           else
                                   n = 1;
                           break;
                   default:
                           return -1;
           }
   
           return n;
   }
   
   
 int  int
LED(int io, u_char ledno, u_char state)LED(u_char ledno, u_char state)
 {  {
           u_int n;
           board_t type = getBoard();
   
         FTRACE(3);          FTRACE(3);
   
           switch (type) {
                   case wrap:
                           n = inl(led_base[type - 1][ledno]);
                           if (state)
                                   n |= (1 << led_bit[type - 1][ledno]);
                           else
                                   n &= ~(1 << led_bit[type - 1][ledno]);
                           break;
                   case alix:
                           if (state)
                                   n = (1 << (led_bit[type - 1][ledno] + gpio_off[type - 1]));
                           else
                                   n = (1 << led_bit[type - 1][ledno]);
                           break;
                   default:
                           return -1;
           }
   
           outl(led_base[type - 1][ledno], n);
         return 0;          return 0;
 }  }
   
 int  int
Run(int io)Run()
 {  {
         FTRACE(3);          FTRACE(3);
   

Removed from v.1.1.2.2  
changed lines
  Added in v.1.1.2.3


FreeBSD-CVSweb <freebsd-cvsweb@FreeBSD.org>