summaryrefslogtreecommitdiff
path: root/emu/port/devdynld.c
diff options
context:
space:
mode:
authorCharles.Forsyth <devnull@localhost>2009-03-25 16:37:32 +0000
committerCharles.Forsyth <devnull@localhost>2009-03-25 16:37:32 +0000
commite0a2b8d82a5521d9391ca8c6f055777954c76c2f (patch)
treebed98eebad567e161db651e8a173f1a819169292 /emu/port/devdynld.c
parentd8150d92150b08ade63d7cd8b666cb26551110ff (diff)
x20090315-1636
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,