📄 file.c
字号:
if (ST_NO_ERROR != STAVFS_DeleteFile (Handle, STAVFS_NULL_FILE_HANDLE, "fred")) { STTBX_Print(("Error deleting file\n")); Result = TEST_FAILED; } } if (ST_NO_ERROR != STAVFS_Close (Handle)) { STTBX_Print (("Error Closing partition 3\n")); Result = TEST_FAILED; } else if (ST_NO_ERROR != STAVFS_Term("Dev1", &TermParams)) { STTBX_Print(("Termination failed\n")); Result = TEST_FAILED; } } return(Result);}/******************************************************************************Function Name : Create Description : Formats the partition. Simple test to create a new file (testing new structures) Parameters :******************************************************************************/static TestResult_t Create(int TestNo, TestVariant_t Variant){ TestResult_t Result = TEST_PASSED; STAVFS_InitParams_t InitParams; STAVFS_OpenParams_t OpenParams; STAVFS_Handle_t Handle; STAVFS_TermParams_t TermParams; U32 DataWritten; TermParams.Flags = 0; strcpy(InitParams.EVTName, EVT_DEVICE_NAME); strcpy(InitParams.ATAPIName, ATAPI_DEVICE_NAME); InitParams.Flags = 0; InitParams.MemoryPartition = system_partition; InitParams.Protocol = 1; InitParams.UnitNumber = 0; InitParams.PartitionNumber = 0; OpenParams.Flags = 0; if (ST_NO_ERROR != STAVFS_Init("Dev1", &InitParams)) { STTBX_Print(("First initialisation failed\n")); Result = TEST_FAILED; } else { if (ST_NO_ERROR != STAVFS_Open ("Dev1", &OpenParams, &Handle)) { STTBX_Print(("Opening a volume on the device failed\n")); Result = TEST_FAILED; } else { STAVFS_FileHandle_t Handle1; STAVFS_FileHandle_t Handle2; U64 FileSize; /* if(ST_NO_ERROR != STAVFS_ResetPartition(Handle)) { STTBX_Print(("Failed to format partition\n")); } */ /* STAVFS_DisplayFiles(Handle);*/ /* Create a file of a given size */ I64_SetValue(sizeof(StdData), 1, FileSize); if (ST_NO_ERROR != STAVFS_OpenFile(Handle, STAVFS_NULL_FILE_HANDLE, "fred", STAVFS_WRITE_MODE, FileSize, &Handle1)) { STTBX_Print(("Error opening file\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_OpenFile(Handle, STAVFS_NULL_FILE_HANDLE, "fred", STAVFS_READ_MODE, FileSize, &Handle2)) { STTBX_Print(("Error opening file\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_WriteFile(Handle1, StdData, sizeof(StdData), &DataWritten)) { STTBX_Print(("Error writing\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_CloseFile(Handle1)) { STTBX_Print(("Error closing\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_CloseFile(Handle2)) { STTBX_Print(("Error closing\n")); Result = TEST_FAILED; } /*STAVFS_DisplayFiles(Handle);*/ /* Now try to delete the file */ if (ST_NO_ERROR != STAVFS_DeleteFile(Handle, STAVFS_NULL_FILE_HANDLE, "fred")) { STTBX_Print(("Unable to delete the file\n")); Result = TEST_FAILED; } } if (ST_NO_ERROR != STAVFS_Close (Handle)) { STTBX_Print (("Error Closing partition 3\n")); Result = TEST_FAILED; } else if (ST_NO_ERROR != STAVFS_Term("Dev1", &TermParams)) { STTBX_Print(("Termination failed\n")); Result = TEST_FAILED; } } return(Result);}/******************************************************************************Function Name : Delete / Open / defrag Description : Tests the new open / delete and defrag routines. Parameters :******************************************************************************/static TestResult_t Defrag(int TestNo, TestVariant_t Variant){ TestResult_t Result = TEST_PASSED; STAVFS_InitParams_t InitParams; STAVFS_OpenParams_t OpenParams; STAVFS_Handle_t Handle; STAVFS_TermParams_t TermParams; U32 DataWritten; TermParams.Flags = 0; strcpy(InitParams.EVTName, EVT_DEVICE_NAME); strcpy(InitParams.ATAPIName, ATAPI_DEVICE_NAME); InitParams.Flags = 0; InitParams.MemoryPartition = system_partition; InitParams.Protocol = 1; InitParams.UnitNumber = 0; InitParams.PartitionNumber = 3; OpenParams.Flags = 0; if (ST_NO_ERROR != STAVFS_Init("Dev1", &InitParams)) { STTBX_Print(("First initialisation failed\n")); Result = TEST_FAILED; } else { if (ST_NO_ERROR != STAVFS_Open ("Dev1", &OpenParams, &Handle)) { STTBX_Print(("Opening a volume on the device failed\n")); Result = TEST_FAILED; } else { STAVFS_FileHandle_t Handle1; U64 FileSize; U32 DataRead; if(ST_NO_ERROR != STAVFS_ResetPartition (Handle)) { STTBX_Print(("Could not reset the partition\n")); Result = TEST_FAILED; } else { /* STAVFS_DisplayFiles(Handle); */ /* Create a file of a given size */ I64_SetValue(sizeof(StdData), 1, FileSize); if (ST_NO_ERROR != STAVFS_OpenFile(Handle, STAVFS_NULL_FILE_HANDLE, "fred", STAVFS_WRITE_MODE, FileSize, &Handle1)) { STTBX_Print(("Error opening file\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_CloseFile(Handle1)) { STTBX_Print(("Error closing\n")); Result = TEST_FAILED; } /* Create 2nd file of a given size */ I64_SetValue((sizeof(StdData)*5), 1, FileSize); if (ST_NO_ERROR != STAVFS_OpenFile(Handle, STAVFS_NULL_FILE_HANDLE, "bob", STAVFS_WRITE_MODE, FileSize, &Handle1)) { STTBX_Print(("Error opening file\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_CloseFile(Handle1)) { STTBX_Print(("Error closing\n")); Result = TEST_FAILED; } /* Create 3rd file of a given size */ I64_SetValue(sizeof(StdData), 1, FileSize); if (ST_NO_ERROR != STAVFS_OpenFile(Handle, STAVFS_NULL_FILE_HANDLE, "jim", STAVFS_WRITE_MODE, FileSize, &Handle1)) { STTBX_Print(("Error opening file\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_CloseFile(Handle1)) { STTBX_Print(("Error closing\n")); Result = TEST_FAILED; } /* Create 4rd file of a given size */ if (ST_NO_ERROR != STAVFS_OpenFile(Handle, STAVFS_NULL_FILE_HANDLE, "bill", STAVFS_WRITE_MODE, FileSize, &Handle1)) { STTBX_Print(("Error opening file\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_CloseFile(Handle1)) { STTBX_Print(("Error closing\n")); Result = TEST_FAILED; } /* Open an already created file for writing */ if (ST_NO_ERROR != STAVFS_OpenFile(Handle, STAVFS_NULL_FILE_HANDLE, "jim", STAVFS_WRITE_MODE, FileSize, &Handle1)) { STTBX_Print(("Error opening file\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_WriteFile(Handle1, StdData, sizeof(StdData), &DataWritten)) { STTBX_Print(("Error writing\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_CloseFile(Handle1)) { STTBX_Print(("Error closing\n")); Result = TEST_FAILED; } /* Now delete an earlier file */ if (ST_NO_ERROR != STAVFS_DeleteFile(Handle, STAVFS_NULL_FILE_HANDLE, "bob")) { STTBX_Print(("Unable to delete the file\n")); Result = TEST_FAILED; } /* Create 5th file of a given size */ if (ST_NO_ERROR != STAVFS_OpenFile(Handle, STAVFS_NULL_FILE_HANDLE, "tim", STAVFS_WRITE_MODE, FileSize, &Handle1)) { STTBX_Print(("Error opening file\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_CloseFile(Handle1)) { STTBX_Print(("Error closing\n")); Result = TEST_FAILED; } /* Defrag the partition */ if(ST_NO_ERROR != STAVFS_FileSystemDefragmentation (Handle)) { STTBX_Print(("Could not defrag the partition\n")); Result = TEST_FAILED; } /* Test the contents a file after it has been moved in defrag */ if (ST_NO_ERROR != STAVFS_OpenFile(Handle, STAVFS_NULL_FILE_HANDLE, "jim", STAVFS_READ_MODE, FileSize, &Handle1)) { STTBX_Print(("Error opening file\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_ReadFile(Handle1, Buffer, sizeof(StdData), &DataRead)) { STTBX_Print(("Error reading\n")); Result = TEST_FAILED; } if (ST_NO_ERROR != STAVFS_CloseFile(Handle1)) { STTBX_Print(("Error closing\n")); Result = TEST_FAILED; } if (DataRead != sizeof(StdData)) { STTBX_Print(("Data missing %d %d\n", DataRead, sizeof(StdData))); Result = TEST_FAILED; } if (0 != memcmp(StdData, Buffer, sizeof(StdData))) { STTBX_Print(("Data corrupted\n")); Result = TEST_FAILED; } } if (ST_NO_ERROR != STAVFS_Close (Handle)) { STTBX_Print (("Error Closing partition 3\n")); Result = TEST_FAILED; } } if (ST_NO_ERROR != STAVFS_Term("Dev1", &TermParams)) { STTBX_Print(("Termination failed\n")); Result = TEST_FAILED; } } return(Result);}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -