taglinefilesource code
mseg756drivers/char/ftape/ecc.cint ecc_set_segment_parity(struct memory_segment *mseg)
mseg761drivers/char/ftape/ecc.cparity_bytes = &mseg->data[(mseg->blocks - 3) * SECTOR_SIZE];
mseg763drivers/char/ftape/ecc.cset_parity((unsigned long *) &mseg->data[i], mseg->blocks - 3,
mseg767drivers/char/ftape/ecc.cif (!sanity_check((unsigned long *) &mseg->data[i], mseg->blocks)) {
mseg780drivers/char/ftape/ecc.cint ecc_correct_data(struct memory_segment *mseg)
mseg791drivers/char/ftape/ecc.cmseg->corrected = 0;
mseg795drivers/char/ftape/ecc.cif (!compute_syndromes((unsigned long *) &mseg->data[col],
mseg796drivers/char/ftape/ecc.cmseg->blocks, ss)) {
mseg807drivers/char/ftape/ecc.cif (mseg->read_bad) {
mseg808drivers/char/ftape/ecc.cfor (i = 0; i < mseg->blocks; i++) {
mseg809drivers/char/ftape/ecc.cif (BAD_CHECK(mseg->read_bad, i)) {
mseg849drivers/char/ftape/ecc.cresult = correct_block(&mseg->data[col + sizeof(long) - 1 - i],
mseg850drivers/char/ftape/ecc.cmseg->blocks,
mseg852drivers/char/ftape/ecc.c&mseg->corrected);
mseg854drivers/char/ftape/ecc.cresult = correct_block(&mseg->data[col + i], mseg->blocks,
mseg856drivers/char/ftape/ecc.c&mseg->corrected);
mseg870drivers/char/ftape/ecc.cif (!sanity_check((unsigned long *) &mseg->data[col], mseg->blocks)) {
mseg878drivers/char/ftape/ecc.cif (!compute_syndromes((unsigned long *) &mseg->data[col],
mseg879drivers/char/ftape/ecc.cmseg->blocks, ss)) {
mseg112drivers/char/ftape/ftape-read.cstruct memory_segment mseg;
mseg116drivers/char/ftape/ftape-read.cmseg.read_bad = convert_sector_map(&buffer[tail]);
mseg117drivers/char/ftape/ftape-read.cmseg.marked_bad = 0;  /* not used... */
mseg118drivers/char/ftape/ftape-read.cmseg.blocks = buffer[tail].bytes / SECTOR_SIZE;
mseg119drivers/char/ftape/ftape-read.cmseg.data = buffer[tail].address;
mseg122drivers/char/ftape/ftape-read.cif (mseg.blocks <= 3) {
mseg127drivers/char/ftape/ftape-read.cread_bad = mseg.read_bad;
mseg129drivers/char/ftape/ftape-read.cresult = ecc_correct_data(&mseg);
mseg130drivers/char/ftape/ftape-read.cif (read_bad != 0 || mseg.corrected != 0) {
mseg132drivers/char/ftape/ftape-read.cTRACElx(4, "corrected map:", mseg.corrected);
mseg133drivers/char/ftape/ftape-read.chistory.corrected += count_ones(mseg.corrected);
mseg139drivers/char/ftape/ftape-read.cmemcpy(destination, mseg.data, (mseg.blocks - 3) * SECTOR_SIZE);
mseg140drivers/char/ftape/ftape-read.cif ((read_bad ^ mseg.corrected) & mseg.corrected) {
mseg145drivers/char/ftape/ftape-read.creturn (mseg.blocks - 3) * SECTOR_SIZE;
mseg77drivers/char/ftape/ftape-write.cstruct memory_segment mseg;
mseg85drivers/char/ftape/ftape-write.cmseg.blocks = 0;  /* skip entire segment */
mseg88drivers/char/ftape/ftape-write.cmseg.blocks = SECTORS_PER_SEGMENT - bads;
mseg89drivers/char/ftape/ftape-write.cmseg.data = destination;
mseg90drivers/char/ftape/ftape-write.cmemcpy(mseg.data, source, (mseg.blocks - 3) * SECTOR_SIZE);
mseg91drivers/char/ftape/ftape-write.cresult = ecc_set_segment_parity(&mseg);
mseg95drivers/char/ftape/ftape-write.cresult = (mseg.blocks - 3) * SECTOR_SIZE;