XHDI handler doesn't get called?

This commit is contained in:
Markus Fröschle
2013-05-01 20:07:22 +00:00
parent 839277710a
commit c17e47177f

View File

@@ -17,6 +17,8 @@ static xhdi_call_fun old_vector = NULL;
__attribute__((__interrupt__)) xhdi_call_fun xhdi_sd_install(xhdi_call_fun ov) __attribute__((__interrupt__)) xhdi_call_fun xhdi_sd_install(xhdi_call_fun ov)
{ {
old_vector = ov; old_vector = ov;
long *_drvbits = 0x4c2;
/* THIS does not work: return (xhdi_call_fun) &xhdi_call; */ /* THIS does not work: return (xhdi_call_fun) &xhdi_call; */
__asm__ __volatile__ ( __asm__ __volatile__ (
"move.l %[xhdi_call],d1\n\t" "move.l %[xhdi_call],d1\n\t"
@@ -24,6 +26,9 @@ __attribute__((__interrupt__)) xhdi_call_fun xhdi_sd_install(xhdi_call_fun ov)
: /* output */ : /* output */
: [xhdi_call]"g"(xhdi_call) : [xhdi_call]"g"(xhdi_call)
: "d1","memory"); : "d1","memory");
*_drvbits |= (1 << ('O' - 'A'));
return (xhdi_call_fun) xhdi_call; return (xhdi_call_fun) xhdi_call;
} }
@@ -66,7 +71,7 @@ uint32_t xhdi_eject(UINT16_T major, UINT16_T minor, UINT16_T do_eject, UINT16_T
uint32_t xhdi_drivemap(void) uint32_t xhdi_drivemap(void)
{ {
uint32_t map = 1; long map = (1 << ('O' - 'A'));
return map; return map;
} }