URL
https://opencores.org/ocsvn/or1k_soc_on_altera_embedded_dev_kit/or1k_soc_on_altera_embedded_dev_kit/trunk
Subversion Repositories or1k_soc_on_altera_embedded_dev_kit
[/] [or1k_soc_on_altera_embedded_dev_kit/] [trunk/] [linux-2.6/] [linux-2.6.24/] [arch/] [x86/] [mm/] [extable_64.c] - Rev 3
Compare with Previous | Blame | View Log
/* * linux/arch/x86_64/mm/extable.c */ #include <linux/module.h> #include <linux/spinlock.h> #include <linux/init.h> #include <asm/uaccess.h> /* Simple binary search */ const struct exception_table_entry * search_extable(const struct exception_table_entry *first, const struct exception_table_entry *last, unsigned long value) { /* Work around a B stepping K8 bug */ if ((value >> 32) == 0) value |= 0xffffffffUL << 32; while (first <= last) { const struct exception_table_entry *mid; long diff; mid = (last - first) / 2 + first; diff = mid->insn - value; if (diff == 0) return mid; else if (diff < 0) first = mid+1; else last = mid-1; } return NULL; }