Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
hardware
mtx
mtx-1.3.11-large-slots.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File mtx-1.3.11-large-slots.patch of Package mtx
--- mtxl.c.orig 2014-03-03 06:50:09.000000000 +0100 +++ mtxl.c 2014-03-03 06:52:54.000000000 +0100 @@ -39,6 +39,8 @@ /* zap the following define when we finally add real import/export support */ #define IMPORT_EXPORT_HACK 1 /* for the moment, import/export == storage */ +#define ElemsPerRES 5000 /* WEK only so many element per SCSI Read Element Status */ + /* First, do some SCSI routines: */ /* the camlib is used on FreeBSD. */ @@ -1131,6 +1143,7 @@ int empty_idx = 0; boolean is_attached = false; int i,j; + int FirstElem, NumElem, NumThisRES; /* WEK */ ElementModeSense_T *mode_sense = NULL; @@ -1195,14 +1208,31 @@ { #ifdef DEBUG fprintf(stderr,"Using original element status polling method (storage, import/export, drivers etc independantly)\n"); + fprintf(stderr,"Storage start %d, Num %d, max %d\n", mode_sense->StorageStart, mode_sense->NumStorage - mode_sense->NumImportExport, mode_sense->MaxReadElementStatusData); /* WEK */ #endif flags->elementtype = StorageElement; /* sigh! */ + + NumElem = mode_sense->NumStorage - mode_sense->NumImportExport; + FirstElem = mode_sense->StorageStart; + + do + { + if (NumElem > ElemsPerRES) + { + NumThisRES = ElemsPerRES; + } + else + { + NumThisRES = NumElem; + } + DataBuffer = SendElementStatusRequest( MediumChangerFD, RequestSense, inquiry_info, flags, - mode_sense->StorageStart, + FirstElem, /* WEK */ /* adjust for import/export. */ - mode_sense->NumStorage - mode_sense->NumImportExport, - mode_sense->MaxReadElementStatusData); + NumThisRES, /* WEK */ + ElemsPerRES * 52 +120); + /* mode_sense->MaxReadElementStatusData); WEK */ if (!DataBuffer) { @@ -1224,6 +1254,10 @@ DataBuffer,ElementStatus,mode_sense,NULL); free(DataBuffer); /* sigh! */ + FirstElem += ElemsPerRES; + NumElem -= ElemsPerRES; + + } while ( NumElem > 0 ); /* WEK */ /* --------------IMPORT/EXPORT--------------- */ /* Next let's see if we need to do Import/Export: */ @@ -1237,7 +1271,8 @@ inquiry_info, flags, mode_sense->ImportExportStart, mode_sense->NumImportExport, - mode_sense->MaxReadElementStatusData); + ElemsPerRES * 52 +120); + /* mode_sense->MaxReadElementStatusData); WEK */ if (!DataBuffer) { @@ -1273,7 +1308,8 @@ inquiry_info, flags, mode_sense->DataTransferStart, mode_sense->NumDataTransfer, - mode_sense->MaxReadElementStatusData); + ElemsPerRES * 52 +120); + /* mode_sense->MaxReadElementStatusData); WEK */ if (!DataBuffer) { #ifdef DEBUG @@ -1312,7 +1348,8 @@ inquiry_info, flags, mode_sense->MediumTransportStart, 1, /* only get 1, sigh. */ - mode_sense->MaxReadElementStatusData); + ElemsPerRES * 52 +120); + /* mode_sense->MaxReadElementStatusData); WEK */ if (!DataBuffer) { #ifdef DEBUG
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor