📄 tck_bios_fs.c
字号:
{ jbyte err; LOG3("TCK","UPDATE BINARY FILE (9000) id=%.4X ofs=%.4X length=%d",id,ofs,len); err = update_binary_file(id,buf,ofs,len); if (err != SUCCESS) { fprintf(stderr,"update_binary_file(%.4X,%.4X,%d): nok: error code %d\n",id,ofs,len,err); giNumErr++; }}void UPDATE_BINARY_FILE_ERR(jword id,jbyte* buf,jword ofs,jbyte len,jbyte _err){ jbyte err; LOG4("TCK","UPDATE BINARY FILE (%.4X) id=%.4X ofs=%.4X length=%d",isoerr(_err),id,ofs,len); err = update_binary_file(id,buf,ofs,len); if (err != _err) { fprintf(stderr,"update_binary_file(%.4X,%.4X,%d): nok: error code %d but %d was required\n",id,ofs,len,err,_err); giNumErr++; }}/* ============================================================================ Erase a binary file Returns lasterr error code or SUCCESS ========================================================================= */jbyte erase_binary_file(jword id,jword ofs){ BIOS_SETERR(NOERR); FS_LOOKUP_FID(id,LOOKUP_MODE_DEFAULT); if (lasterr!=SUCCESS) return lasterr; FS_ERASE_BINARY_EF(ofs); return lasterr;}void ERASE_BINARY_FILE_SUCCESS(jword id,jword ofs){ jbyte err; LOG2("TCK","ERASE BINARY FILE (9000) id=%.4X ofs=%.4X",id,ofs); err = erase_binary_file(id,ofs); if (err != SUCCESS) { fprintf(stderr,"erase_binary_file(%.4X,%.4X): nok: error code %d\n",id,ofs,err); giNumErr++; }}void ERASE_BINARY_FILE_ERR(jword id,jword ofs,jbyte _err){ jbyte err; LOG3("TCK","ERASE BINARY FILE (%.4X) id=%.4X ofs=%.4X",isoerr(_err),id,ofs); err = erase_binary_file(id,ofs); if (err != _err) { fprintf(stderr,"erase_binary_file(%.4X,%.4X): nok: error code %d but %d was required\n",id,ofs,err,_err); giNumErr++; }}/* ============================================================================ Read a binary file Returns lasterr error code or SUCCESS ========================================================================= */jbyte read_binary_file(jword id,jbyte* buf,jword ofs,jbyte len){ BIOS_SETERR(NOERR); gBuf = buf; for (gN=0; gN<len; gN++) { gBuf[gN] = 0xCC; } gN = 0; FS_LOOKUP_FID(id,LOOKUP_MODE_DEFAULT); if (lasterr!=SUCCESS) return lasterr; FS_READ_BINARY_EF(ofs,len); return lasterr;}void READ_BINARY_FILE_SUCCESS(jword id,jbyte* buf,jword ofs,jbyte len){ jbyte err; LOG3("TCK","READ BINARY FILE (9000) id=%.4X ofs=%.4X length=%d",id,ofs,len); err = read_binary_file(id,buf,ofs,len); if (err != SUCCESS) { fprintf(stderr,"read_binary_file(%.4X,%.4X,%d): nok: error code %d\n",id,ofs,len,err); giNumErr++; }}void READ_BINARY_FILE_ERR(jword id,jbyte* buf,jword ofs,jbyte len,jbyte _err){ jbyte err; LOG4("TCK","READ BINARY FILE (%.4X) id=%.4X ofs=%.4X length=%d",isoerr(_err),id,ofs,len); err = read_binary_file(id,buf,ofs,len); if (err != _err) { fprintf(stderr,"read_binary_file(%.4X,%.4X,%d): nok: error code %d but %d was required\n",id,ofs,len,err,_err); giNumErr++; }}/* ============================================================================ Create a record linear|cyclic file Returns lasterr error code or SUCCESS ========================================================================= */jbyte create_record_file(jword id,jbyte recnum,jbyte recsize,jbool bCyclic){ BIOS_SETERR(NOERR); HAL_ERASE_XRAM((jbyte xdata*)&header_file,sizeof(header_file)); header_file.fid = id; if (bCyclic) { header_file.fdesc = FDESC_TYPE_CYCLIC; } else { header_file.fdesc = FDESC_TYPE_LINEAR; } header_file.sfi = SFI_NOTUSE; header_file.ac[0] = 0xFF; header_file.ac[1] = 0xFF; header_file.ac[2] = 0xFF; header_file.ac_key[0] = 0x00; header_file.ac_key[1] = 0x00; header_file.ac_key[2] = 0x00; header_file.u4.record.nummax = recnum; header_file.u4.record.size = recsize; /* create the file */ FS_CREATE_FILE(); if (lasterr==SUCCESS) { FS_ERASE_FILE(); } return lasterr;}void CREATE_RECORD_FILE_SUCCESS(jword id,jbyte recnum,jbyte recsize,jbool bCyclic){ jbyte err; LOG3("TCK","CREATE RECORD FILE (9000) id=%.4X recnum=%d recsize=%d",id,recnum,recsize); err = create_record_file(id,recnum,recsize,bCyclic); if (err != SUCCESS) { fprintf(stderr,"create_record_file(%.4X,%d,%d): nok: error code %d\n",id,recnum,recsize,err); giNumErr++; }}void CREATE_RECORD_FILE_ERR(jword id,jbyte recnum,jbyte recsize,jbool bCyclic,jbyte _err){ jbyte err; LOG4("TCK","CREATE RECORD FILE (%.4X) id=%.4X recnum=%d recsize=%d",isoerr(_err),id,recnum,recsize); err = create_record_file(id,recnum,recsize,bCyclic); if (err != _err) { fprintf(stderr,"create_record_file(%.4X,%d,%d): nok: error code %d but %d was required\n",id,recnum,recsize,err,_err); giNumErr++; }}/* ============================================================================ Read a record file Returns lasterr error code or SUCCESS ========================================================================= */jbyte read_record_file(jword id,jbyte* buf,jbyte recnum,jbyte cmd,jbyte len){ BIOS_SETERR(NOERR); gBuf = buf; for (gN=0; gN<len; gN++) { gBuf[gN] = 0xCC; } gN = 0; FS_LOOKUP_FID(id,LOOKUP_MODE_DEFAULT); if (lasterr!=SUCCESS) return lasterr; if (cmd == SET_RECORD) { /* read based on ref */ FS_SET_RECORD_EF(recnum,SET_RECORD); } else { FS_SET_RECORD_EF(0,cmd); } if (lasterr!=NOERR) return lasterr; FS_READ_RECORD_EF(len); return lasterr;}void READ_RECORD_FILE_SUCCESS(jword id,jbyte* buf,jbyte recnum,jbyte cmd,jbyte len){ jbyte err; LOG4("TCK","READ RECORD FILE (9000) id=%.4X recnum=%d cmd=%d length=%d",id,recnum,cmd,len); err = read_record_file(id,buf,recnum,cmd,len); if (err != SUCCESS) { fprintf(stderr,"read_record_file(%.4X,%d,%d,%d): nok: error code %d\n",id,recnum,cmd,len,err); giNumErr++; }}void READ_RECORD_FILE_ERR(jword id,jbyte* buf,jbyte recnum,jbyte cmd,jbyte len,jbyte _err){ jbyte err; LOG5("TCK","READ RECORD FILE (%.4X) id=%.4X recnum=%d cmd=%d length=%d",isoerr(_err),id,recnum,cmd,len); err = read_record_file(id,buf,recnum,cmd,len); if (err != _err) { fprintf(stderr,"read_binary_file(%.4X,%d,%d,%d): nok: error code %d but %d was required\n",id,recnum,cmd,len,err,_err); giNumErr++; }}/* ============================================================================ Append a record file Returns lasterr error code or SUCCESS ========================================================================= */jbyte append_record_file(jword id,jbyte* buf,jbyte len){ BIOS_SETERR(NOERR); gN = 0; gBuf = buf; FS_LOOKUP_FID(id,LOOKUP_MODE_DEFAULT); if (lasterr!=SUCCESS) return lasterr; FS_APPEND_RECORD_EF(); if (lasterr!=NOERR) return lasterr; FS_UPDATE_RECORD_EF(len,jtrue); return lasterr;}void APPEND_RECORD_FILE_SUCCESS(jword id,jbyte* buf,jbyte len){ jbyte err; LOG2("TCK","APPEND RECORD FILE (9000) id=%.4X length=%d",id,len); err = append_record_file(id,buf,len); if (err != SUCCESS) { fprintf(stderr,"append_record_file(%.4X,%d): nok: error code %d\n",id,len,err); giNumErr++; }}void APPEND_RECORD_FILE_ERR(jword id,jbyte* buf,jbyte len,jbyte _err){ jbyte err; LOG3("TCK","APPEND RECORD FILE (%.4X) id=%.4X length=%d",isoerr(_err),id,len); err = append_record_file(id,buf,len); if (err != _err) { fprintf(stderr,"append_record_file(%.4X,%d): nok: error code %d but %d was required\n",id,len,err,_err); giNumErr++; }}/* ============================================================================ Write a record file Returns lasterr error code or SUCCESS ========================================================================= */jbyte write_record_file(jword id,jbyte* buf,jbyte recnum,jbyte cmd,jbyte len){ BIOS_SETERR(NOERR); gN = 0; gBuf = buf; FS_LOOKUP_FID(id,LOOKUP_MODE_DEFAULT); if (lasterr!=SUCCESS) return lasterr; if (cmd == SET_RECORD) { /* write based on ref */ FS_SET_RECORD_EF(recnum,SET_RECORD); } else { FS_SET_RECORD_EF(0,cmd); } if (lasterr!=NOERR) return lasterr; FS_UPDATE_RECORD_EF(len,jfalse); return lasterr;}void WRITE_RECORD_FILE_SUCCESS(jword id,jbyte* buf,jbyte recnum,jbyte cmd,jbyte len){ jbyte err; LOG4("TCK","WRITE RECORD FILE (9000) id=%.4X recnum=%d cmd=%d length=%d",id,recnum,cmd,len); err = write_record_file(id,buf,recnum,cmd,len); if (err != SUCCESS) { fprintf(stderr,"write_record_file(%.4X,%d,%d,%d): nok: error code %d\n",id,recnum,cmd,len,err); giNumErr++; }}void WRITE_RECORD_FILE_ERR(jword id,jbyte* buf,jbyte recnum,jbyte cmd,jbyte len,jbyte _err){ jbyte err; LOG5("TCK","WRITE RECORD FILE (%.4X) id=%.4X recnum=%d cmd=%d length=%d",isoerr(_err),id,recnum,cmd,len); err = write_record_file(id,buf,recnum,cmd,len); if (err != _err) { fprintf(stderr,"write_binary_file(%.4X,%d,%d,%d): nok: error code %d but %d was required\n",id,recnum,cmd,len,err,_err); giNumErr++; }}/* ============================================================================ Increase a counter Returns lasterr error code or SUCCESS ========================================================================= */jbyte increase(jword id,jbyte counter,jdword* val){ BIOS_SETERR(NOERR); FS_LOOKUP_FID(id,LOOKUP_MODE_EF_ONLY); if (lasterr!=SUCCESS) return lasterr; /* increase */ *val = BIOS_INC_COUNTER(counter,*val); if (lasterr!=NOERR) return lasterr; /* commit the new value */ BIOS_TRANS_COMMIT(); if (lasterr!=NOERR) return lasterr; return lasterr;}void INCREASE_SUCCESS(jword id,jbyte counter,jdword* val){ jbyte err; LOG3("TCK","INCREASE (9000) id=%.4X counter=%d val=%ld",id,counter,*val); err = increase(id,counter,val); if (err != SUCCESS) { fprintf(stderr,"increase(%.4X,%d,%ld): nok: error code %d\n",id,counter,*val,err); giNumErr++; }}void INCREASE_ERR(jword id,jbyte counter,jdword* val, jbyte _err){ jbyte err; LOG4("TCK","INCREASE (%.4X) id=%.4X counter=%d val=%ld",isoerr(_err),id,counter,*val); err = increase(id,counter,val); if (err != _err) { fprintf(stderr,"increase(%.4X,%d,%ld): nok: error code %d but %d was required\n",id,counter,*val,err,_err); giNumErr++; }}/* ============================================================================ Decrease a counter Returns lasterr error code or SUCCESS ========================================================================= */jbyte decrease(jword id,jbyte counter,jdword* val)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -