--- SheepShaver/src/thunks.cpp 2004/11/13 14:09:15 1.11 +++ SheepShaver/src/thunks.cpp 2005/07/03 22:43:11 1.15 @@ -62,6 +62,10 @@ uint32 NativeOpcode(int selector) case NATIVE_VIDEO_INSTALL_ACCEL: case NATIVE_VIDEO_VBL: case NATIVE_VIDEO_DO_DRIVER_IO: + case NATIVE_ETHER_AO_GET_HWADDR: + case NATIVE_ETHER_AO_ADD_MULTI: + case NATIVE_ETHER_AO_DEL_MULTI: + case NATIVE_ETHER_AO_SEND_PACKET: case NATIVE_ETHER_IRQ: case NATIVE_ETHER_INIT: case NATIVE_ETHER_TERM: @@ -215,11 +219,11 @@ bool ThunksInit(void) native_op[NATIVE_R_GET_RESOURCE].func = r_get_resource_func; #endif #else -#if defined(__linux__) || (defined(__APPLE__) && defined(__MACH__)) +#if defined(__linux__) || defined(__NetBSD__) || (defined(__APPLE__) && defined(__MACH__)) #define DEFINE_NATIVE_OP(ID, FUNC) do { \ uintptr base = SheepMem::Reserve(8); \ WriteMacInt32(base + 0, (uint32)FUNC); \ - WriteMacInt32(base + 4, 0); /*Fake TVECT*/ \ + WriteMacInt32(base + 4, (uint32)TOC); \ native_op[ID].tvect = base; \ native_op[ID].func = (uint32)FUNC; \ } while (0) @@ -236,6 +240,10 @@ bool ThunksInit(void) DEFINE_NATIVE_OP(NATIVE_VIDEO_INSTALL_ACCEL, VideoInstallAccel); DEFINE_NATIVE_OP(NATIVE_VIDEO_VBL, VideoVBL); DEFINE_NATIVE_OP(NATIVE_VIDEO_DO_DRIVER_IO, VideoDoDriverIO); + DEFINE_NATIVE_OP(NATIVE_ETHER_AO_GET_HWADDR, AO_get_ethernet_address); + DEFINE_NATIVE_OP(NATIVE_ETHER_AO_ADD_MULTI, AO_enable_multicast); + DEFINE_NATIVE_OP(NATIVE_ETHER_AO_DEL_MULTI, AO_disable_multicast); + DEFINE_NATIVE_OP(NATIVE_ETHER_AO_SEND_PACKET, AO_transmit_packet); DEFINE_NATIVE_OP(NATIVE_ETHER_IRQ, EtherIRQ); DEFINE_NATIVE_OP(NATIVE_ETHER_INIT, InitStreamModule); DEFINE_NATIVE_OP(NATIVE_ETHER_TERM, TerminateStreamModule);