将支持的中断个数从32个扩展到160个,至此可以支持所有中断

This commit is contained in:
勤为本
2017-07-20 17:05:59 +08:00
parent f39164203e
commit d1bb7c61f4
4 changed files with 119 additions and 39 deletions
+38
View File
@@ -77,3 +77,41 @@ unsigned int reg_read_32(volatile unsigned int *addr)
/**
* ffs - find first bit set
* @x: the word to search
*
* This is defined the same way as
* the libc and compiler builtin ffs routines, therefore
* differs in spirit from the above ffz (man ffs).
*/
int ls1c_ffs(int x)
{
int r = 1;
if (!x)
return 0;
if (!(x & 0xffff)) {
x >>= 16;
r += 16;
}
if (!(x & 0xff)) {
x >>= 8;
r += 8;
}
if (!(x & 0xf)) {
x >>= 4;
r += 4;
}
if (!(x & 3)) {
x >>= 2;
r += 2;
}
if (!(x & 1)) {
x >>= 1;
r += 1;
}
return r;
}
+6
View File
@@ -73,6 +73,12 @@ void reg_write_32(unsigned int data, volatile unsigned int *addr);
unsigned int reg_read_32(volatile unsigned int *addr);
/**
* ffs - find first bit set
* @x: the word to search
*/
int ls1c_ffs(int x);
#endif