RTEMS  5.0.0
Macros | Functions | Variables
msdos_misc.c File Reference

Miscellaneous Routines Implementation for MSDOS FileSystem. More...

#include <stdlib.h>
#include <ctype.h>
#include <sys/time.h>
#include <unistd.h>
#include <string.h>
#include <assert.h>
#include <errno.h>
#include <inttypes.h>
#include <rtems/libio_.h>
#include "fat.h"
#include "fat_fat_operations.h"
#include "fat_file.h"
#include "msdos.h"
#include <stdio.h>

Macros

#define MSDOS_TRACE   1
 
#define MSDOS_LFN_ENTRY_SIZE   (MSDOS_LFN_LEN_PER_ENTRY * MSDOS_NAME_LFN_BYTES_PER_CHAR)
 
#define MSDOS_LFN_ENTRY_SIZE_UTF8
 
#define MSDOS_NAME_TYPE_PRINT   0
 
#define MSDOS_L2S_PRINT   0
 
#define MSDOS_FIND_PRINT   0
 

Functions

uint8_t msdos_lfn_checksum (const void *entry)
 
msdos_name_type_t msdos_long_to_short (rtems_dosfs_convert_control *converter, const char *lfn, int lfn_len, char *sfn, int sfn_len)
 
int msdos_find_name (rtems_filesystem_location_info_t *parent_loc, const char *name, int name_len)
 
int msdos_get_name_node (const rtems_filesystem_location_info_t *parent_loc, bool create_node, const char *name, int name_len, msdos_name_type_t name_type, fat_dir_pos_t *dir_pos, char *name_dir_entry)
 
int msdos_get_dotdot_dir_info_cluster_num_and_offset (rtems_filesystem_mount_table_entry_t *mt_entry, uint32_t cln, fat_dir_pos_t *dir_pos, char *dir_entry)
 
int fat_file_write_time_and_date (fat_fs_info_t *fs_info, fat_file_fd_t *fat_fd)
 
int fat_file_write_first_cluster_num (fat_fs_info_t *fs_info, fat_file_fd_t *fat_fd)
 
int fat_file_write_file_size (fat_fs_info_t *fs_info, fat_file_fd_t *fat_fd)
 
int msdos_set_first_char4file_name (rtems_filesystem_mount_table_entry_t *mt_entry, fat_dir_pos_t *dir_pos, unsigned char fchar)
 
int msdos_dir_is_empty (rtems_filesystem_mount_table_entry_t *mt_entry, fat_file_fd_t *fat_fd, bool *ret_val)
 
ssize_t msdos_get_utf16_string_from_long_entry (const char *entry, uint16_t *entry_string_buf, const size_t buf_size, bool is_first_entry)
 
ssize_t msdos_format_dirent_with_dot (char *dst, const char *src)
 
int msdos_find_name_in_fat_file (rtems_filesystem_mount_table_entry_t *mt_entry, fat_file_fd_t *fat_fd, bool create_node, const uint8_t *name_utf8, int name_utf8_len, msdos_name_type_t name_type, fat_dir_pos_t *dir_pos, char *name_dir_entry)
 
int msdos_find_node_by_cluster_num_in_fat_file (rtems_filesystem_mount_table_entry_t *mt_entry, fat_file_fd_t *fat_fd, uint32_t cl4find, fat_dir_pos_t *dir_pos, char *dir_entry)
 
int msdos_sync (rtems_libio_t *iop)
 

Variables

const char *const MSDOS_DOT_NAME = ". "
 
const char *const MSDOS_DOTDOT_NAME = ".. "
 

Detailed Description

Miscellaneous Routines Implementation for MSDOS FileSystem.

Macro Definition Documentation

◆ MSDOS_LFN_ENTRY_SIZE_UTF8

#define MSDOS_LFN_ENTRY_SIZE_UTF8
Value:
((MSDOS_LFN_LEN_PER_ENTRY + 1 ) * MSDOS_NAME_LFN_BYTES_PER_CHAR \
* MSDOS_NAME_MAX_UTF8_BYTES_PER_CHAR)