123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201 |
- #include "CFTTFile_Buffered.h"
- #include "FTTThread.h"
- #include "memctrl.h"
- //005CB3F8
- CFTTAsyncEvent<TFTTFileAsyncEventData> *CFTTFile_Buffered::ms_pEvent = nullptr;
- //-------------------------------------------------------------------------------------------------
- //0026405C //^_^
- //CFTTFile *pCFTTFile, uint count, uint aglin
- CFTTFile_Buffered::CFTTFile_Buffered(CFTTFile *pCFTTFile, uint count, uint aglin, EFTTMemHeapID eHeapId) {
- }
- //-------------------------------------------------------------------------------------------------
- //002642D8 002642F4 //^_^
- CFTTFile_Buffered::~CFTTFile_Buffered() {
- Close();
- }
- //-------------------------------------------------------------------------------------------------
- //0026387C //^_^
- void CFTTFile_Buffered::Initialise() {
- }
- //-------------------------------------------------------------------------------------------------
- //0026397C //^_^
- void CFTTFile_Buffered::Shutdown() {
- }
- //-------------------------------------------------------------------------------------------------
- //002640F8 //^_^
- bool CFTTFile_Buffered::FillBuffer(int index, int64 end) {
- LOGE("CFTTFile_Buffered::FillBuffer %p%x%x%x",this,index,((int*)&end)[0],((int*)&end)[1]);
- return rand();
- }
- //-------------------------------------------------------------------------------------------------
- //00264302 //^_^
- int64 CFTTFile_Buffered::Read(void *arg_buf, int64 len) {
- return 0;
- }
- //-------------------------------------------------------------------------------------------------
- //00264518
- int64 CFTTFile_Buffered::Write(void const *buf, int64 buflen_r8sp20) {
- int64 dret_3C_sp18 = 0;
- if (pFile_8 == nullptr)
- return -1;
- // 00264532
- if ((pFile_8->GetModeFlags() & 3) == 1) {
- // 00264542
- errCode_4 = EFTTError_14;
- Close();
- return -1;
- }
- // loc_26454A
- if (errCode_4) {
- // loc_264550
- Close();
- return -1;
- }
- // loc_264564
- if (pFile_8->GetModeFlags() & 4) {
- // 00264574
- int64 d = Seek(0, 2);
- if (d <= -1)
- return d;
- }
- // loc_264590
- uint8 *pbuf_38 = static_cast<uint8 *>(const_cast<void *>(buf));
- // loc_264590
- int r10 = 0;
- // int64 var_2C = 0;
- // int64 var_3C = 0;
- while (buflen_r8sp20 > 0) {
- // loc_2645AA
- int64 r6r7 = i64Arrar_18[r10]; //.text:002645B2 048 LDRD.W R6, R7, [R0,#0x18] @ R6, R7 = i64Arrar_18[r10]
- int r4 = r10;
- r10 = r10 ^ 1;
- int64 r2r3 = r6r7 + mod_C;
- if (curPos_38 < r6r7 || curPos_38 >= (r6r7 + mod_C)) {
- // loc_2645D8
- if (curPos_38 < i64Arrar_18[r10] || curPos_38 >= (i64Arrar_18[r10] + mod_C)) {
- // loc_2645FC
- while (byArray_30[r4]) {
- if (!byArray_30[r10]) {
- r4 = r10;
- break;
- }
- // loc_264608
- FTTThread_Sleep(1);
- }
- // loc_26461A
- if (!FillBuffer(r4, curPos_38)) {
- return -1;
- }
- }
- continue;
- }
- // loc_26462C
- int64 r5r7_spc = (int64)mod_C - (curPos_38 - r6r7);
- if (r5r7_spc >= buflen_r8sp20) {
- r5r7_spc = buflen_r8sp20;
- //dret_3C_sp18 = buflen;
- } else {
- //dret_3C_sp18 = r5r7;
- }
- // 00264662
- if ((r6r7 + mod_C) < size_40 && !byArray_30[r10]) {
- // 00264674
- if (r2r3 < i64Arrar_18[r10] || r2r3 >= (i64Arrar_18[r10] + mod_C)) {
- // loc_264696
- if (!byArray_32[r10]) {
- // 0026469C
- if (!FillBuffer(r10, r2r3)) {
- return -1;
- }
- }
- }
- }
- // loc_2646A8
- while (byArray_30[r4]) {
- // loc_2646B2
- FTTThread_Sleep(1);
- }
- // 002646BE
- memcpy(bufArray_28[r4] + (int)(curPos_38 - r6r7), pbuf_38, (int)r5r7_spc);
- byArray_32[r4] = 1; // 002646D6 STRB.W R0, [R7,#0x32]
- pbuf_38 += (int)r5r7_spc;
- curPos_38 += r5r7_spc; // 00264706 STRD.W R0, R1, [R12]
- //curpos_38=r9
- if (curPos_38 >= size_40) {
- size_40 = curPos_38; // 00264706
- }
- dret_3C_sp18 += r5r7_spc;
- buflen_r8sp20 -= r5r7_spc;
-
- }
- return dret_3C_sp18;
- }
- //-------------------------------------------------------------------------------------------------
- //00264746 //^_^
- int64 CFTTFile_Buffered::GetPos() {
- LOGI("CFTTFile_Buffered::GetPos entry");
- int64 dret = -1;
- return dret;
- }
- //-------------------------------------------------------------------------------------------------
- //0026475A //^_-
- int64 CFTTFile_Buffered::Seek(int64 dpos, int whence) {
- return -1;
- }
- //-------------------------------------------------------------------------------------------------
- //002648C6 //^_^
- TFTTFileAttributes *CFTTFile_Buffered::GetAttributes() {
- TFTTFileAttributes *pAttr = nullptr;
- return pAttr;
- }
- //-------------------------------------------------------------------------------------------------
- //002648D4 //^_^
- bool CFTTFile_Buffered::Close() {
- return 0;
- }
- //-------------------------------------------------------------------------------------------------
- //00264A26 //^_^
- bool CFTTFile_Buffered::IsOpen() {
- return 0;
- }
- //-------------------------------------------------------------------------------------------------
- //00264A56 //^_^
- CFTTFile_AsyncHandler *CFTTFile_Buffered::GetAsyncHandler() {
- CFTTFile_AsyncHandler *pret = nullptr;
- return pret;
- }
- //-------------------------------------------------------------------------------------------------
- //00264A64 //^_^
- int CFTTFile_Buffered::GetModeFlags() {
- int dret = -1;
- return dret;
- }
- //-------------------------------------------------------------------------------------------------
- //00265854 //^_^
- bool CFTTFile_Buffered::UseBufferedAccess() const {
- return 0;
- }
- //-------------------------------------------------------------------------------------------------
- //00264A30 //^_^
- void CFTTFile_Buffered::ReadCallback(CFTTAsyncEvent<TFTTFileAsyncEventData> *pAsycEvent,
- TFTTFileAsyncEventData const *pEventData,
- void *data) {
- LOGI("CFTTFile_Buffered::ReadCallback Entry");
- }
- //-------------------------------------------------------------------------------------------------
|