/* * Before returning any function pointer, make sure its address space is * correct. */ static inline putchar_fp __get_kputchar(void) { putchar_fp ret = __putchar; switch(get_addr_space()) { case 0: if (ret >= (putchar_fp)KERN_BASE) ret = (putchar_fp)premap_addr(ret); return ret; case 1: if (ret < (putchar_fp)KERN_BASE) ret = (putchar_fp)postmap_addr(ret); return ret; default: return NULL; } }
InsLibAnyAddressSpace *InsLibGetAddressSpaceWidth(InsLibModlDesc *modld, int space_number, int datawidth) { return get_addr_space(modld, space_number, datawidth); }
InsLibAnyAddressSpace *InsLibGetAddressSpace(InsLibModlDesc *modld, int space_number) { return get_addr_space(modld, space_number, 0); }