File indexing completed on 2025-05-11 08:24:31
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021
0022
0023
0024
0025
0026
0027
0028 #ifdef HAVE_CONFIG_H
0029 #include "config.h"
0030 #endif
0031 #include <tmacros.h>
0032
0033 #include "fs_config.h"
0034
0035 #include <sys/stat.h>
0036 #include <sys/types.h>
0037
0038 #include <rtems/libio.h>
0039 #include <rtems/dosfs.h>
0040 #include <rtems/libcsupport.h>
0041
0042 #include "ramdisk_support.h"
0043 #include "fstest.h"
0044 #include "fstest_support.h"
0045
0046 #define BLOCK_SIZE 512
0047
0048 static const msdos_format_request_param_t rqdata = {
0049 .OEMName = "RTEMS",
0050 .VolLabel = "RTEMSDisk",
0051 .sectors_per_cluster = 2,
0052 .fat_num = 0,
0053 .files_per_root_dir = 0,
0054 .media = 0,
0055 .quick_format = true,
0056 .skip_alignment = 0,
0057 .info_level = 0
0058 };
0059
0060 static rtems_resource_snapshot before_mount;
0061
0062 void test_initialize_filesystem(void)
0063 {
0064 int rc=0;
0065 rc = mkdir (BASE_FOR_TEST,S_IRWXU|S_IRWXG|S_IRWXO);
0066 rtems_test_assert(rc==0);
0067
0068 init_ramdisk();
0069
0070 rc=msdos_format(RAMDISK_PATH,&rqdata);
0071 rtems_test_assert(rc==0);
0072
0073 rtems_resource_snapshot_take(&before_mount);
0074
0075 rc=mount(RAMDISK_PATH,
0076 BASE_FOR_TEST,
0077 "dosfs",
0078 RTEMS_FILESYSTEM_READ_WRITE,
0079 NULL);
0080 rtems_test_assert(rc==0);
0081 }
0082
0083
0084 void test_shutdown_filesystem(void)
0085 {
0086 int rc=0;
0087 rc=unmount(BASE_FOR_TEST) ;
0088 rtems_test_assert(rc==0);
0089 rtems_test_assert(rtems_resource_snapshot_check(&before_mount));
0090 del_ramdisk();
0091 }
0092
0093
0094
0095
0096 #define CONFIGURE_APPLICATION_NEEDS_CLOCK_DRIVER
0097 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0098
0099
0100
0101
0102
0103 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
0104
0105 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0106
0107 #define CONFIGURE_MAXIMUM_SEMAPHORES RTEMS_DOSFS_SEMAPHORES_PER_INSTANCE
0108 #define CONFIGURE_MAXIMUM_TASKS 10
0109 #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 40
0110 #define CONFIGURE_INIT_TASK_STACK_SIZE (16 * 1024)
0111 #define CONFIGURE_INIT_TASK_ATTRIBUTES RTEMS_FLOATING_POINT
0112
0113 #define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
0114
0115 #define CONFIGURE_FILESYSTEM_DOSFS
0116
0117 #define CONFIGURE_INIT
0118 #include <rtems/confdefs.h>
0119