taglinefilesource code
stuffp266drivers/block/mcdx.cstruct s_drive_stuff *stuffp = mcdx_stuffp[MINOR(ip->i_rdev)];
stuffp268drivers/block/mcdx.cif (!stuffp->present) return -ENXIO;
stuffp278drivers/block/mcdx.cif (-1 == mcdx_stop(stuffp, 1))
stuffp306drivers/block/mcdx.cif ((stuffp->toc == NULL) && (0 != (ans = mcdx_readtoc(stuffp)))) return ans;
stuffp312drivers/block/mcdx.ctp = &stuffp->toc[stuffp->di.n_last - stuffp->di.n_first + 1];
stuffp313drivers/block/mcdx.celse if (entry.cdte_track > stuffp->di.n_last 
stuffp314drivers/block/mcdx.c|| entry.cdte_track < stuffp->di.n_first) return -EINVAL;
stuffp315drivers/block/mcdx.celse tp = &stuffp->toc[entry.cdte_track - stuffp->di.n_first];
stuffp345drivers/block/mcdx.cif (-1 == mcdx_requestsubqcode(stuffp, &q, 1)) return -EIO;
stuffp347drivers/block/mcdx.cTRACE((IOCTL, "audiostatus: %x\n", stuffp->audiostatus));
stuffp348drivers/block/mcdx.csub.cdsc_audiostatus = stuffp->audiostatus;
stuffp379drivers/block/mcdx.ctoc.cdth_trk0 = stuffp->di.n_first;
stuffp380drivers/block/mcdx.ctoc.cdth_trk1 = stuffp->di.n_last;
stuffp383drivers/block/mcdx.cstuffp->di.n_first, stuffp->di.n_last));
stuffp389drivers/block/mcdx.cif (stuffp->audiostatus != CDROM_AUDIO_PLAY) return -EINVAL;
stuffp390drivers/block/mcdx.cif (-1 == mcdx_stop(stuffp, 1)) return -EIO;
stuffp391drivers/block/mcdx.cif (-1 == mcdx_requestsubqcode(stuffp, &stuffp->start, 1))
stuffp405drivers/block/mcdx.cms.addr.msf.minute = bcd2uint(stuffp->multi.msf_last.minute);
stuffp406drivers/block/mcdx.cms.addr.msf.second = bcd2uint(stuffp->multi.msf_last.second);
stuffp407drivers/block/mcdx.cms.addr.msf.frame = bcd2uint(stuffp->multi.msf_last.frame);
stuffp409drivers/block/mcdx.cms.addr.lba = msf2log(&stuffp->multi.msf_last);
stuffp412drivers/block/mcdx.cms.xa_flag = stuffp->xa;
stuffp426drivers/block/mcdx.cstuffp->multi.msf_last.minute,
stuffp427drivers/block/mcdx.cstuffp->multi.msf_last.second,
stuffp428drivers/block/mcdx.cstuffp->multi.msf_last.frame));
stuffp436drivers/block/mcdx.cstuffp->multi.msf_last.minute,
stuffp437drivers/block/mcdx.cstuffp->multi.msf_last.second,
stuffp438drivers/block/mcdx.cstuffp->multi.msf_last.frame));
stuffp445drivers/block/mcdx.cif (stuffp->users > 1) return -EBUSY;
stuffp446drivers/block/mcdx.cif (-1 == mcdx_eject(stuffp, 1)) return -EIO;
stuffp459drivers/block/mcdx.cstruct s_drive_stuff *stuffp;
stuffp470drivers/block/mcdx.cstuffp = mcdx_stuffp[MINOR(CURRENT->dev)];
stuffp471drivers/block/mcdx.cTRACE((REQUEST, "do_request() stuffp = %p\n", stuffp));
stuffp476drivers/block/mcdx.cif ((dev < 0) || (dev >= MCDX_NDRIVES) || (!stuffp->present)) {
stuffp482drivers/block/mcdx.cif (stuffp->audio) {
stuffp495drivers/block/mcdx.cstuffp->errno = 0;
stuffp500drivers/block/mcdx.cstuffp,
stuffp505drivers/block/mcdx.cif (stuffp->errno == MCDX_EOM) {
stuffp532drivers/block/mcdx.cstruct s_drive_stuff *stuffp;
stuffp536drivers/block/mcdx.cstuffp = mcdx_stuffp[MINOR(ip->i_rdev)];
stuffp537drivers/block/mcdx.cif (!stuffp->present) return -ENXIO;
stuffp541drivers/block/mcdx.cif (inb((unsigned int) stuffp->rreg_status) & MCDX_RBIT_DOOR)  
stuffp542drivers/block/mcdx.cmcdx_closedoor(stuffp, 1);
stuffp545drivers/block/mcdx.cif (changed < stuffp->changed) {
stuffp556drivers/block/mcdx.cif (-1 == mcdx_requestmultidiskinfo(stuffp, &stuffp->multi, 6))
stuffp559drivers/block/mcdx.cif (stuffp->multi.multi > 2)
stuffp560drivers/block/mcdx.cWARN(("open() unknown multisession value (%d)\n", stuffp->multi.multi));
stuffp563drivers/block/mcdx.cif (!stuffp->multi.multi)
stuffp564drivers/block/mcdx.cstuffp->multi.msf_last.second = 2;
stuffp567drivers/block/mcdx.cstuffp->multi.multi,
stuffp568drivers/block/mcdx.cstuffp->multi.msf_last.minute,
stuffp569drivers/block/mcdx.cstuffp->multi.msf_last.second,
stuffp570drivers/block/mcdx.cstuffp->multi.msf_last.frame));
stuffp575drivers/block/mcdx.cif (-1 == mcdx_requesttocdata(stuffp, &stuffp->di, 1)) return -EIO;
stuffp577drivers/block/mcdx.cstuffp->lastsector = (CD_FRAMESIZE / 512) * msf2log(&stuffp->di.msf_leadout) - 1;
stuffp580drivers/block/mcdx.cstuffp->di.n_first,
stuffp581drivers/block/mcdx.cstuffp->di.msf_first.minute,
stuffp582drivers/block/mcdx.cstuffp->di.msf_first.second,
stuffp583drivers/block/mcdx.cstuffp->di.msf_first.frame,
stuffp584drivers/block/mcdx.cmsf2log(&stuffp->di.msf_first)));
stuffp586drivers/block/mcdx.cstuffp->di.n_last,
stuffp587drivers/block/mcdx.cstuffp->di.msf_leadout.minute,
stuffp588drivers/block/mcdx.cstuffp->di.msf_leadout.second,
stuffp589drivers/block/mcdx.cstuffp->di.msf_leadout.frame,
stuffp590drivers/block/mcdx.cmsf2log(&stuffp->di.msf_leadout)));
stuffp592drivers/block/mcdx.cif (stuffp->toc) {
stuffp593drivers/block/mcdx.cTRACE((MALLOC, "open() free toc @ %p\n", stuffp->toc));
stuffp594drivers/block/mcdx.ckfree(stuffp->toc);
stuffp596drivers/block/mcdx.cstuffp->toc = NULL;
stuffp599drivers/block/mcdx.cif (-1 == mcdx_config(stuffp, 1)) return -EIO;
stuffp607drivers/block/mcdx.cstuffp->xa = 0;
stuffp608drivers/block/mcdx.cstuffp->audio = 0;
stuffp612drivers/block/mcdx.cstuffp->xa ? "XA" : "normal"));
stuffp615drivers/block/mcdx.cif (-1 == (ans = mcdx_setdatamode(stuffp, 
stuffp616drivers/block/mcdx.cstuffp->xa ? MODE2 : MODE1, 1)))
stuffp619drivers/block/mcdx.cif ((stuffp->audio = e_audio(ans))) break; 
stuffp621drivers/block/mcdx.cwhile (0 == (ans = mcdx_transfer(stuffp, buf, 0, 1))) 
stuffp625drivers/block/mcdx.cstuffp->xa = !stuffp->xa; 
stuffp631drivers/block/mcdx.cif (-1 == mcdx_setdrivemode(stuffp, 
stuffp632drivers/block/mcdx.cstuffp->xa ? RAW : COOKED, 1))
stuffp635drivers/block/mcdx.cif (stuffp->audio) {
stuffp639drivers/block/mcdx.cstuffp->xa ? "XA / " : "",
stuffp640drivers/block/mcdx.cstuffp->multi.multi ? "Multi Session" : "Single Session"));
stuffp643drivers/block/mcdx.cchanged = stuffp->changed;
stuffp646drivers/block/mcdx.cif (-1 == mcdx_lockdoor(stuffp, 1, 1)) return -EIO;
stuffp648drivers/block/mcdx.cstuffp->users++;
stuffp656drivers/block/mcdx.cstruct s_drive_stuff *stuffp;
stuffp660drivers/block/mcdx.cstuffp = mcdx_stuffp[MINOR(ip->i_rdev)];
stuffp662drivers/block/mcdx.cif (0 == --stuffp->users) {
stuffp668drivers/block/mcdx.cif (-1 == mcdx_lockdoor(stuffp, 0, 1))
stuffp729drivers/block/mcdx.cstruct s_drive_stuff *stuffp;
stuffp732drivers/block/mcdx.cstuffp = mcdx_irq_map[irq];
stuffp734drivers/block/mcdx.cif (!stuffp->busy) {
stuffp740drivers/block/mcdx.cif (0 == (stuffp->introk = 
stuffp741drivers/block/mcdx.c(~(x = inb((unsigned int) stuffp->rreg_status)) & MCDX_RBIT_DTEN))) 
stuffp743drivers/block/mcdx.cirq, x, inb((unsigned int) stuffp->rreg_data)));
stuffp749drivers/block/mcdx.cstuffp->busy = 0;
stuffp750drivers/block/mcdx.cwake_up_interruptible(&stuffp->busyq);
stuffp756drivers/block/mcdx.cstruct s_drive_stuff *stuffp, 
stuffp770drivers/block/mcdx.cwhile (stuffp->lock)
stuffp771drivers/block/mcdx.cinterruptible_sleep_on(&stuffp->lockq);
stuffp773drivers/block/mcdx.cstuffp->lock = 1;
stuffp774drivers/block/mcdx.cstuffp->valid = 0;  
stuffp791drivers/block/mcdx.coutsb((unsigned int) stuffp->wreg_data, cmd, cmdlen);
stuffp799drivers/block/mcdx.cwhile ((inb((unsigned int) stuffp->rreg_status)) & MCDX_RBIT_STEN) {
stuffp801drivers/block/mcdx.cmcdx_delay(stuffp, DELAY);
stuffp811drivers/block/mcdx.c*bp++ = st = (unsigned char) inb((unsigned int) stuffp->rreg_data);
stuffp816drivers/block/mcdx.cstuffp->audiostatus = e_audiobusy(st) ? 
stuffp822drivers/block/mcdx.cstuffp->changed = jiffies;
stuffp833drivers/block/mcdx.c*bp++ = (unsigned char) inb((unsigned int) stuffp->rreg_data); 
stuffp847drivers/block/mcdx.cstuffp->lock = 0;
stuffp848drivers/block/mcdx.cwake_up_interruptible(&stuffp->lockq);
stuffp886drivers/block/mcdx.cstruct s_drive_stuff *stuffp;
stuffp887drivers/block/mcdx.cstuffp = mcdx_stuffp[i];
stuffp888drivers/block/mcdx.cif (!stuffp) continue;
stuffp889drivers/block/mcdx.crelease_region((unsigned long) stuffp->wreg_data, MCDX_IO_SIZE);
stuffp890drivers/block/mcdx.cfree_irq(stuffp->irq);
stuffp891drivers/block/mcdx.cif (stuffp->toc) {
stuffp892drivers/block/mcdx.cTRACE((MALLOC, "cleanup_module() free toc @ %p\n", stuffp->toc));
stuffp893drivers/block/mcdx.ckfree(stuffp->toc);
stuffp895drivers/block/mcdx.cTRACE((MALLOC, "cleanup_module() free stuffp @ %p\n", stuffp));
stuffp897drivers/block/mcdx.ckfree(stuffp);
stuffp953drivers/block/mcdx.cstruct s_drive_stuff* stuffp;
stuffp956drivers/block/mcdx.cTRACE((MALLOC, "init() malloc %d bytes\n", sizeof(*stuffp)));
stuffp958drivers/block/mcdx.cif (!(stuffp = kmalloc(sizeof(*stuffp), GFP_KERNEL))) {
stuffp963drivers/block/mcdx.cTRACE((INIT, "init() got %d bytes for drive stuff @ %p\n", sizeof(*stuffp), stuffp));
stuffp966drivers/block/mcdx.cmemset(stuffp, 0, sizeof(*stuffp));
stuffp968drivers/block/mcdx.cstuffp->present = 0;    /* this should be 0 already */
stuffp969drivers/block/mcdx.cstuffp->toc = NULL;      /* this should be NULL already */
stuffp970drivers/block/mcdx.cstuffp->changed = jiffies;
stuffp973drivers/block/mcdx.cstuffp->irq = irq(mcdx_drive_map[drive]);
stuffp974drivers/block/mcdx.cstuffp->wreg_data = stuffp->rreg_data = port(mcdx_drive_map[drive]);
stuffp975drivers/block/mcdx.cstuffp->wreg_reset = stuffp->rreg_status = stuffp->wreg_data + 1;
stuffp976drivers/block/mcdx.cstuffp->wreg_hcon = stuffp->wreg_reset + 1;
stuffp977drivers/block/mcdx.cstuffp->wreg_chn = stuffp->wreg_hcon + 1;
stuffp980drivers/block/mcdx.cif (0 != check_region((unsigned int) stuffp->wreg_data, MCDX_IO_SIZE)) {
stuffp982drivers/block/mcdx.cstuffp->wreg_data, stuffp->wreg_data + MCDX_IO_SIZE - 1));
stuffp983drivers/block/mcdx.cstuffp->wreg_data = 0;
stuffp984drivers/block/mcdx.cTRACE((MALLOC, "init() free stuffp @ %p\n", stuffp));
stuffp985drivers/block/mcdx.ckfree(stuffp);
stuffp990drivers/block/mcdx.cTRACE((INIT, "init() i/o port is available at 0x%3p\n", stuffp->wreg_data));
stuffp993drivers/block/mcdx.cmcdx_reset(stuffp, HARD, 1);
stuffp996drivers/block/mcdx.cif (-1 == mcdx_requestversion(stuffp, &version, 2)) {
stuffp998drivers/block/mcdx.cTRACE((MALLOC, "init() free stuffp @ %p\n", stuffp));
stuffp999drivers/block/mcdx.ckfree(stuffp);
stuffp1005drivers/block/mcdx.cstuffp->readcmd = READDSPEED; 
stuffp1006drivers/block/mcdx.cstuffp->present = DOUBLE | DOOR | MULTI; 
stuffp1009drivers/block/mcdx.cstuffp->readcmd = READSSPEED; 
stuffp1010drivers/block/mcdx.cstuffp->present = SINGLE | DOOR | MULTI;
stuffp1013drivers/block/mcdx.cstuffp->readcmd = READSSPEED;
stuffp1014drivers/block/mcdx.cstuffp->present = SINGLE;
stuffp1017drivers/block/mcdx.cstuffp->present = 0; break;
stuffp1021drivers/block/mcdx.cif (!stuffp->present) {
stuffp1023drivers/block/mcdx.ckfree(stuffp);
stuffp1031drivers/block/mcdx.ckfree(stuffp);
stuffp1043drivers/block/mcdx.cmcdx_irq_map[stuffp->irq] = stuffp;
stuffp1044drivers/block/mcdx.cif (request_irq(stuffp->irq, mcdx_intr, SA_INTERRUPT, MCD)) {
stuffp1046drivers/block/mcdx.cDEVICE_NAME "\n", stuffp->irq);
stuffp1047drivers/block/mcdx.cstuffp->irq = 0;
stuffp1048drivers/block/mcdx.ckfree(stuffp);
stuffp1051drivers/block/mcdx.crequest_region((unsigned long) (unsigned int) stuffp->wreg_data, MCDX_IO_SIZE, MCD); 
stuffp1056drivers/block/mcdx.cmcdx_delay(stuffp, 50);
stuffp1057drivers/block/mcdx.cfor (i = 100; i; i--) (void) inb((unsigned int) stuffp->rreg_status);
stuffp1062drivers/block/mcdx.coutb(0x50, (unsigned int) stuffp->wreg_chn);  /* irq 11 -> channel register */
stuffp1066drivers/block/mcdx.cmcdx_config(stuffp, 1);
stuffp1068drivers/block/mcdx.cstuffp->minor = drive;
stuffp1072drivers/block/mcdx.cstuffp->wreg_data, stuffp->irq, version.code, version.ver);
stuffp1073drivers/block/mcdx.cmcdx_stuffp[drive] = stuffp;
stuffp1074drivers/block/mcdx.cTRACE((INIT, "init() mcdx_stuffp[%d] = %p\n", drive, stuffp));
stuffp1081drivers/block/mcdx.cstatic int mcdx_transfer(struct s_drive_stuff *stuffp,
stuffp1093drivers/block/mcdx.cif (stuffp->audio) {
stuffp1098drivers/block/mcdx.cwhile (stuffp->lock)
stuffp1099drivers/block/mcdx.cinterruptible_sleep_on(&stuffp->lockq);
stuffp1101drivers/block/mcdx.cif (stuffp->valid
stuffp1102drivers/block/mcdx.c&& (sector >= stuffp->pending)
stuffp1103drivers/block/mcdx.c&& (sector < stuffp->off_direct)) {
stuffp1106drivers/block/mcdx.coff = stuffp->off_requested < (off = sector + nr_sectors)
stuffp1107drivers/block/mcdx.c? stuffp->off_requested : off;
stuffp1109drivers/block/mcdx.cstuffp->lock = current->pid;
stuffp1117drivers/block/mcdx.cwhile (stuffp->busy) {
stuffp1118drivers/block/mcdx.cinterruptible_sleep_on(&stuffp->busyq);
stuffp1128drivers/block/mcdx.cif (((stuffp->busy == 0) && !stuffp->introk)
stuffp1131drivers/block/mcdx.cif ((stuffp->busy == 0) && !stuffp->introk)
stuffp1138drivers/block/mcdx.cstuffp->lock = 0;
stuffp1139drivers/block/mcdx.cstuffp->busy = 0;
stuffp1140drivers/block/mcdx.cwake_up_interruptible(&stuffp->lockq);
stuffp1141drivers/block/mcdx.cwake_up_interruptible(&stuffp->busyq);
stuffp1142drivers/block/mcdx.cstuffp->errno = MCDX_E;
stuffp1149drivers/block/mcdx.cif (stuffp->xa && (0 == (stuffp->pending & 3))) {
stuffp1152drivers/block/mcdx.cstuffp->pending, HEAD));
stuffp1153drivers/block/mcdx.cinsb((unsigned int) stuffp->rreg_data, p, HEAD);
stuffp1158drivers/block/mcdx.cTRACE((TRANSFER, "transfer() read sector %d\n", stuffp->pending));
stuffp1159drivers/block/mcdx.cinsb((unsigned int) stuffp->rreg_data, p, 512); 
stuffp1164drivers/block/mcdx.cif ((stuffp->busy = (3 == (stuffp->pending & 3))) && stuffp->xa) {
stuffp1167drivers/block/mcdx.cstuffp->pending, CD_XA_TAIL));
stuffp1168drivers/block/mcdx.cinsb((unsigned int) stuffp->rreg_data, &dummy[0], CD_XA_TAIL);
stuffp1171drivers/block/mcdx.cif (stuffp->pending == sector) {
stuffp1177drivers/block/mcdx.cwhile (++(stuffp->pending) < off);
stuffp1179drivers/block/mcdx.cstuffp->lock = 0;
stuffp1180drivers/block/mcdx.cwake_up_interruptible(&stuffp->lockq);
stuffp1190drivers/block/mcdx.ccmd[0] = stuffp->readcmd;
stuffp1192drivers/block/mcdx.cstuffp->valid = 1;
stuffp1193drivers/block/mcdx.cstuffp->pending = sector & ~3;
stuffp1196drivers/block/mcdx.cTRACE((TRANSFER, "transfer() request sector %d\n", stuffp->pending));
stuffp1197drivers/block/mcdx.cif (stuffp->pending > stuffp->lastsector) {
stuffp1199drivers/block/mcdx.cstuffp->pending);
stuffp1200drivers/block/mcdx.cstuffp->errno = MCDX_EOM;
stuffp1205drivers/block/mcdx.cif ((stuffp->off_direct = stuffp->pending + DIRECT_SIZE)
stuffp1206drivers/block/mcdx.c> stuffp->lastsector + 1)
stuffp1207drivers/block/mcdx.cstuffp->off_direct = stuffp->lastsector + 1;
stuffp1208drivers/block/mcdx.cif ((stuffp->off_requested = stuffp->pending + REQUEST_SIZE)
stuffp1209drivers/block/mcdx.c> stuffp->lastsector + 1)
stuffp1210drivers/block/mcdx.cstuffp->off_requested = stuffp->lastsector + 1;
stuffp1212drivers/block/mcdx.cTRACE((TRANSFER, "transfer() pending %d\n", stuffp->pending));
stuffp1213drivers/block/mcdx.cTRACE((TRANSFER, "transfer() off_dir %d\n", stuffp->off_direct));
stuffp1214drivers/block/mcdx.cTRACE((TRANSFER, "transfer() off_req %d\n", stuffp->off_requested));
stuffp1218drivers/block/mcdx.clog2msf(stuffp->pending / 4, &pending);
stuffp1224drivers/block/mcdx.cstuffp->busy = 1;
stuffp1225drivers/block/mcdx.ccmd[6] = (unsigned char) (stuffp->off_requested - stuffp->pending) / 4;
stuffp1227drivers/block/mcdx.coutsb((unsigned int) stuffp->wreg_data, cmd, sizeof cmd);
stuffp1231drivers/block/mcdx.cstuffp->off_direct = (stuffp->off_direct += done) < stuffp->off_requested
stuffp1232drivers/block/mcdx.c? stuffp->off_direct : stuffp->off_requested;
stuffp1268drivers/block/mcdx.cint mcdx_readtoc(struct s_drive_stuff* stuffp)
stuffp1272drivers/block/mcdx.cstuffp->di.n_last - stuffp->di.n_first + 1));
stuffp1275drivers/block/mcdx.cif (stuffp->toc) {
stuffp1282drivers/block/mcdx.cif (-1 == mcdx_setdrivemode(stuffp, TOC, 1)) return -EIO;
stuffp1287drivers/block/mcdx.csize = sizeof(struct s_subqcode) * (stuffp->di.n_last - stuffp->di.n_first + 2);
stuffp1290drivers/block/mcdx.cstuffp->toc = kmalloc(size, GFP_KERNEL);
stuffp1291drivers/block/mcdx.cif (!stuffp->toc) {
stuffp1293drivers/block/mcdx.cmcdx_setdrivemode(stuffp, DATA, 1);
stuffp1304drivers/block/mcdx.ctrk < (stuffp->di.n_last - stuffp->di.n_first + 1); 
stuffp1306drivers/block/mcdx.cstuffp->toc[trk].index = 0;
stuffp1312drivers/block/mcdx.cif (-1 == mcdx_requestsubqcode(stuffp, &q, 1)) {
stuffp1313drivers/block/mcdx.cmcdx_setdrivemode(stuffp, DATA, 1);
stuffp1320drivers/block/mcdx.c&& (idx <= stuffp->di.n_last) 
stuffp1322drivers/block/mcdx.c&& (stuffp->toc[idx - stuffp->di.n_first].index == 0)) {
stuffp1323drivers/block/mcdx.cstuffp->toc[idx - stuffp->di.n_first] = q;
stuffp1328drivers/block/mcdx.cmemset(&stuffp->toc[stuffp->di.n_last - stuffp->di.n_first + 1], 
stuffp1329drivers/block/mcdx.c0, sizeof(stuffp->toc[0]));
stuffp1330drivers/block/mcdx.cstuffp->toc[stuffp->di.n_last - stuffp->di.n_first + 1].dt
stuffp1331drivers/block/mcdx.c= stuffp->di.msf_leadout;
stuffp1336drivers/block/mcdx.cif (-1 == mcdx_setdrivemode(stuffp, DATA, 2))
stuffp1342drivers/block/mcdx.ctrk < (stuffp->di.n_last - stuffp->di.n_first + 2); 
stuffp1346drivers/block/mcdx.ctrk + stuffp->di.n_first,
stuffp1347drivers/block/mcdx.cstuffp->toc[trk].control, stuffp->toc[trk].tno, stuffp->toc[trk].index,
stuffp1348drivers/block/mcdx.cstuffp->toc[trk].tt.minute, stuffp->toc[trk].tt.second, stuffp->toc[trk].tt.frame,
stuffp1349drivers/block/mcdx.cstuffp->toc[trk].dt.minute, stuffp->toc[trk].dt.second, stuffp->toc[trk].dt.frame));
stuffp1360drivers/block/mcdx.cmcdx_closedoor(struct s_drive_stuff *stuffp, int tries)
stuffp1362drivers/block/mcdx.cif (stuffp->present & DOOR)
stuffp1363drivers/block/mcdx.creturn mcdx_talk(stuffp, "\xf8", 1, NULL, 0, 500, tries);
stuffp1369drivers/block/mcdx.cmcdx_stop(struct s_drive_stuff *stuffp, int tries)
stuffp1370drivers/block/mcdx.c{ return mcdx_talk(stuffp, "\xf0", 1, NULL, 0, 200, tries); }
stuffp1373drivers/block/mcdx.cmcdx_eject(struct s_drive_stuff *stuffp, int tries)
stuffp1375drivers/block/mcdx.cif (stuffp->present & DOOR)
stuffp1376drivers/block/mcdx.creturn mcdx_talk(stuffp, "\xf6", 1, NULL, 0, 500, tries);
stuffp1382drivers/block/mcdx.cmcdx_requestsubqcode(struct s_drive_stuff *stuffp, struct s_subqcode *sub, int tries)
stuffp1386drivers/block/mcdx.cans = mcdx_talk(stuffp, "\x20", 1, buf, sizeof(buf), 200, tries);
stuffp1400drivers/block/mcdx.cmcdx_requestmultidiskinfo(struct s_drive_stuff *stuffp, struct s_multi *multi, int tries)
stuffp1405drivers/block/mcdx.cif (stuffp->present & MULTI) {
stuffp1406drivers/block/mcdx.cans = mcdx_talk(stuffp, "\x11", 1, buf, sizeof(buf), 200, tries);
stuffp1419drivers/block/mcdx.cmcdx_requesttocdata(struct s_drive_stuff *stuffp, struct s_diskinfo *info, int tries)
stuffp1423drivers/block/mcdx.cans = mcdx_talk(stuffp, "\x10", 1, buf, sizeof(buf), 200, tries);
stuffp1436drivers/block/mcdx.cmcdx_setdrivemode(struct s_drive_stuff *stuffp, enum drivemodes mode, int tries)
stuffp1443drivers/block/mcdx.cif (-1 == (ans = mcdx_talk(stuffp, "\xc2", 1, cmd, sizeof(cmd), 500, tries)))
stuffp1454drivers/block/mcdx.creturn mcdx_talk(stuffp, cmd, 2, NULL, 0, 500, tries);
stuffp1459drivers/block/mcdx.cmcdx_setdatamode(struct s_drive_stuff *stuffp, enum datamodes mode, int tries)
stuffp1469drivers/block/mcdx.creturn mcdx_talk(stuffp, cmd, 2, NULL, 0, 500, tries);
stuffp1473drivers/block/mcdx.cmcdx_config(struct s_drive_stuff *stuffp, int tries)
stuffp1484drivers/block/mcdx.cif (-1 == mcdx_talk(stuffp, cmd, 3, NULL, 0, 100, tries))
stuffp1490drivers/block/mcdx.creturn mcdx_talk(stuffp, cmd, 3, NULL, 0, 100, tries);
stuffp1494drivers/block/mcdx.cmcdx_requestversion(struct s_drive_stuff *stuffp, struct s_version *ver, int tries)
stuffp1499drivers/block/mcdx.cif (-1 == (ans = mcdx_talk(stuffp, "\xdc", 1, buf, sizeof(buf), 200, tries)))
stuffp1509drivers/block/mcdx.cmcdx_reset(struct s_drive_stuff *stuffp, enum resetmodes mode, int tries)
stuffp1512drivers/block/mcdx.coutb(0, (unsigned int) stuffp->wreg_chn);    /* no dma, no irq -> hardware */
stuffp1513drivers/block/mcdx.coutb(0, (unsigned int) stuffp->wreg_reset);    /* hw reset */
stuffp1515drivers/block/mcdx.c} else return mcdx_talk(stuffp, "\x60", 1, NULL, 0, 500, tries);
stuffp1519drivers/block/mcdx.cmcdx_lockdoor(struct s_drive_stuff *stuffp, int lock, int tries)
stuffp1522drivers/block/mcdx.cif (stuffp->present & DOOR) {
stuffp1524drivers/block/mcdx.creturn mcdx_talk(stuffp, cmd, sizeof(cmd), NULL, 0, 500, tries);
stuffp1531drivers/block/mcdx.cmcdx_getstatus(struct s_drive_stuff *stuffp, int tries)
stuffp1532drivers/block/mcdx.c{ return mcdx_talk(stuffp, "\x40", 1, NULL, 0, 500, tries); }