diff --git a/src/drv/drvEpvxi.c b/src/drv/drvEpvxi.c index d9180ee4e..7cff7d804 100644 --- a/src/drv/drvEpvxi.c +++ b/src/drv/drvEpvxi.c @@ -155,8 +155,11 @@ static char *sccsId = "$Id$\t$Date$"; #include #include #include +#if 0 #include +#endif +#include #define SRCepvxiLib /* allocate externals here */ #include #include @@ -830,7 +833,9 @@ enum laPass pass * This makes the MXI/VXI configure correctly after * a control x (soft) reboot. */ - vxi_unmap_mxi_devices(); + if(pass == laPassSC){ + vxi_unmap_mxi_devices(); + } /* * for each MXI found that we have not seen before @@ -1021,6 +1026,17 @@ enum laPass pass pmxi_new->dir.w.dd.mxi.la_window = 1 | (1<dir.w.dd.mxi.la_window; + tmp = pmxi_new->dir.w.dd.mxi.control; +} +#endif mxi_map(pnewvxie, pass); /* @@ -1129,7 +1145,7 @@ unsigned la sizeof(id), (char *)&id); if(status<0){ - return S_epvxi_internal; + return S_dev_noDevice; } status = verify_valid_window(pvxie, la); @@ -1190,6 +1206,10 @@ unsigned la } } +# ifdef DEBUG + printf("Found LA=0X%X extender LA=0X%X\n", la, pvxie->la); +# endif + return VXI_SUCCESS; } @@ -1325,6 +1345,12 @@ LOCAL void vxi_record_topology(void) } } else{ + errPrintf( + status, + __FILE__, + __LINE__, + "LA=0X%X", + la); (*pplac)->slot = UKN_SLOT; (*pplac)->slot_zero_la = UKN_LA; (*pplac)->extender_la = UKN_LA; @@ -1956,8 +1982,14 @@ VXISZ **ppvxisz EPVXISTAT status; unsigned char slot; - status = S_epvxi_internal; + /* + * RULE C.2.7 + */ + if(VXIMODIDSTATUS(pcsr->dir.r.status)){ + return S_epvxi_noMODID; + } + status = S_epvxi_slotNotFound; pvxisz = (VXISZ *) crateList.node.next; while(pvxisz){ diff --git a/src/libCom/bucketLib.c b/src/libCom/bucketLib.c index 080af4262..2aaccc9bc 100644 --- a/src/libCom/bucketLib.c +++ b/src/libCom/bucketLib.c @@ -51,11 +51,6 @@ #define BUCKET_IX_N (1<