static int libExpunge(LIBBASETYPEPTR nh) { struct NepClassSerial *ncp; KPRINTF(10, ("libExpunge nh: 0x%08lx\n", nh)); if(nh->nh_DevBase->np_Library.lib_OpenCnt == 1) { KPRINTF(1, ("libExpunge: closelibrary utilitybase 0x%08lx\n", UtilityBase)); CloseLibrary((struct Library *) UtilityBase); ncp = (struct NepClassSerial *) nh->nh_Units.lh_Head; while(ncp->ncp_Unit.unit_MsgPort.mp_Node.ln_Succ) { Remove((struct Node *) ncp); FreeVec(ncp); ncp = (struct NepClassSerial *) nh->nh_Units.lh_Head; } nh->nh_DevBase->np_Library.lib_OpenCnt--; RemDevice((struct Device *) nh->nh_DevBase); KPRINTF(5, ("libExpunge: Unloading done! palmpda.class expunged!\n\n")); } else { KPRINTF(5, ("libExpunge: Could not expunge, LIBF_DELEXP set!\n")); return(FALSE); } return(TRUE); }
void *cd_expunge (void) { KPRINTF ("cd_expunge()"); RemDevice (&cd_device); return elf_header; }