summaryrefslogtreecommitdiff
path: root/emu/port/devdynld.c
diff options
context:
space:
mode:
Diffstat (limited to 'emu/port/devdynld.c')
-rw-r--r--emu/port/devdynld.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/emu/port/devdynld.c b/emu/port/devdynld.c
index 68084707..b447d797 100644
--- a/emu/port/devdynld.c
+++ b/emu/port/devdynld.c
@@ -119,7 +119,7 @@ devload(char *path)
{
int i;
Dyndev *l;
- Dev *dev;
+ Dev *dev, *curdev;
char devname[32];
l = dlload(path, _exporttab, dyntabsize(_exporttab));
@@ -131,8 +131,11 @@ devload(char *path)
dev = dynimport(l->o, devname, signof(*dev));
if(dev == nil)
error("no devtab");
- if(devno(dev->dc, 1) >= 0)
+ curdev = devtabget(dev->dc, 1);
+ if(curdev != nil){
+ devtabput(curdev);
error("device loaded");
+ }
for(i = 0; devtab[i] != nil; i++)
;
if(i >= ndevs || devtab[i+1] != nil)
@@ -321,7 +324,9 @@ Dev dynlddevtab = {
DEVCHAR,
"dynld",
+ devreset,
devinit,
+ devshutdown,
dlattach,
dlwalk,
dlstat,