File indexing completed on 2025-05-11 08:24:30
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
0032 #include <sys/stat.h>
0033 #include <fcntl.h>
0034 #include <stdlib.h>
0035 #include <unistd.h>
0036
0037 #include <rtems/dosfs.h>
0038 #include <rtems/ramdisk.h>
0039
0040 #include "tmacros.h"
0041
0042 const char rtems_test_name[] = "FSDOSFSNAME 2";
0043
0044 #define RAMDISK_PATH "/dev/rda"
0045
0046 #define MOUNT_PATH "/mnt"
0047
0048 static const char * const dir_paths[] = {
0049 MOUNT_PATH "/cpukit",
0050 MOUNT_PATH "/cpukit/or1k-exception-frame-print.c",
0051 MOUNT_PATH "/cpukit/preinstall.am",
0052 MOUNT_PATH "/cpukit/Makefile.in",
0053 MOUNT_PATH "/cpukit/Makefile.am",
0054 MOUNT_PATH "/cpukit/rtems",
0055 MOUNT_PATH "/cpukit/or1k-context-switch.S",
0056 MOUNT_PATH "/cpukit/or1k-exception-default.c",
0057 MOUNT_PATH "/cpukit/or1k-context-initialize.c",
0058 MOUNT_PATH "/cpukit/or1k-context-volatile-clobber.S",
0059 MOUNT_PATH "/cpukit/or1k-context-validate.S",
0060 MOUNT_PATH "/cpukit/or1k-exception-handler-low.S",
0061 MOUNT_PATH "/cpukit/cpu.c"
0062 };
0063
0064 static void test(void)
0065 {
0066 int rv;
0067 size_t i;
0068
0069 rv = msdos_format(RAMDISK_PATH, NULL);
0070 rtems_test_assert(rv == 0);
0071
0072 rv = mount_and_make_target_path(
0073 RAMDISK_PATH,
0074 MOUNT_PATH,
0075 RTEMS_FILESYSTEM_TYPE_DOSFS,
0076 RTEMS_FILESYSTEM_READ_WRITE,
0077 NULL
0078 );
0079 rtems_test_assert(rv == 0);
0080
0081 for (i = 0; i < RTEMS_ARRAY_SIZE(dir_paths); ++i) {
0082 rv = mkdir(dir_paths[i], S_IRWXU | S_IRWXG | S_IRWXO);
0083 rtems_test_assert(rv == 0);
0084 }
0085
0086 for (i = RTEMS_ARRAY_SIZE(dir_paths); i > 0; --i) {
0087 rv = unlink(dir_paths[i - 1]);
0088 rtems_test_assert(rv == 0);
0089 }
0090 }
0091
0092 static void Init(rtems_task_argument arg)
0093 {
0094 TEST_BEGIN();
0095
0096 test();
0097
0098 TEST_END();
0099 rtems_test_exit(0);
0100 }
0101
0102 rtems_ramdisk_config rtems_ramdisk_configuration[] = {
0103 { .block_size = 512, .block_num = 64 }
0104 };
0105
0106 size_t rtems_ramdisk_configuration_size = RTEMS_ARRAY_SIZE(rtems_ramdisk_configuration);
0107
0108 #define CONFIGURE_APPLICATION_DOES_NOT_NEED_CLOCK_DRIVER
0109 #define CONFIGURE_APPLICATION_NEEDS_SIMPLE_CONSOLE_DRIVER
0110 #define CONFIGURE_APPLICATION_NEEDS_LIBBLOCK
0111
0112 #define CONFIGURE_APPLICATION_EXTRA_DRIVERS RAMDISK_DRIVER_TABLE_ENTRY
0113
0114 #define CONFIGURE_FILESYSTEM_DOSFS
0115
0116 #define CONFIGURE_MAXIMUM_FILE_DESCRIPTORS 32
0117
0118 #define CONFIGURE_BDBUF_CACHE_MEMORY_SIZE 512
0119 #define CONFIGURE_BDBUF_BUFFER_MIN_SIZE 512
0120 #define CONFIGURE_BDBUF_BUFFER_MAX_SIZE 512
0121
0122 #define CONFIGURE_MAXIMUM_TASKS 1
0123 #define CONFIGURE_MAXIMUM_SEMAPHORES 1
0124
0125 #define CONFIGURE_INITIAL_EXTENSIONS RTEMS_TEST_INITIAL_EXTENSION
0126
0127 #define CONFIGURE_RTEMS_INIT_TASKS_TABLE
0128
0129 #define CONFIGURE_INIT
0130
0131 #include <rtems/confdefs.h>