Соломона на основе пользовательских
printf("+OK\n");
// генерация кодов Рида- Соломона на основе пользовательских данных
//-----------------------------------------------------------------------
printf("RS-code generate...................");
a = GenECCAndEDC_Mode1(user_data, stub_head, &raw_sector_for_damage);
if (a == ElBy_SECTOR_ERROR) { printf("-ERROR!\x7\n"); return -1;}
memcpy(&raw_sector_for_compre, &raw_sector_for_damage, RAW_SECTOR_SIZE);
printf("+OK\n");
// умышленное искажение пользовательских данных
//------------------------------------------------------------------------
printf("user-data %04d bytes damage........", N_BYTES_DAMAGE);
for (a=0;a<N_BYTES_DAMAGE;a++) raw_sector_for_damage.USER_DATA[a]^=0xFF;
if(!memcmp(&raw_sector_for_damage,&raw_sector_for_compre,RAW_SECTOR_SIZE))
printf("-ERR: NOT DAMAGE YET\n"); else printf("+OK\n");
// проверка целостности пользовательских данных
//------------------------------------------------------------------------
printf("user-data check....................");
a = CheckSector((struct RAW_SECTOR*)&raw_sector_for_damage,ElBy_TEST_ONLY);
if (a==ElBy_SECTOR_OK){
printf("-ERR:data not damage\x7\n");return -1;}printf(".data damge\n");
// восстановление пользовательских данных
//------------------------------------------------------------------------
printf("user-data recorver.................");
a = CheckSector((struct RAW_SECTOR*)&raw_sector_for_damage, ElBy_REPAIR);
if (a == ElBy_SECTOR_ERROR) {
printf("-ERR: NOT RECORVER YET\x7\n"); return -1; } printf("+OK\n");
// проверка успешности восстановления
//------------------------------------------------------------------------
printf("user-data recorver check...........");
if(memcmp(&raw_sector_for_damage,&raw_sector_for_compre,RAW_SECTOR_SIZE))
printf("-ERR: NOT RECORVER YET\x7\n"); else printf("+OK\n");
printf("+OK\n");
return 1;
}
Forekc.ru
Рефераты, дипломы, курсовые, выпускные и квалификационные работы, диссертации, учебники, учебные пособия, лекции, методические пособия и рекомендации, программы и курсы обучения, публикации из профильных изданий