19 #if !defined(RTEMS_RFS_RTEMS_DEFINED) 20 #define RTEMS_RFS_RTEMS_DEFINED 29 #define RTEMS_RFS_RTEMS_ERROR 0 34 #define RTEMS_RFS_RTEMS_TRACE 0 40 #if !RTEMS_RFS_RTEMS_ERROR 41 #define rtems_rfs_rtems_error(_m, _e) \ 42 (((errno = (_e)) == 0) ? 0 : -1) 63 #define RTEMS_RFS_RTEMS_DEBUG_ALL (0xffffffff) 64 #define RTEMS_RFS_RTEMS_DEBUG_ERROR_MSGS (1 << 0) 65 #define RTEMS_RFS_RTEMS_DEBUG_EVAL_PATH (1 << 1) 66 #define RTEMS_RFS_RTEMS_DEBUG_EVAL_FOR_MAKE (1 << 2) 67 #define RTEMS_RFS_RTEMS_DEBUG_EVAL_PERMS (1 << 3) 68 #define RTEMS_RFS_RTEMS_DEBUG_MKNOD (1 << 4) 69 #define RTEMS_RFS_RTEMS_DEBUG_RMNOD (1 << 5) 70 #define RTEMS_RFS_RTEMS_DEBUG_LINK (1 << 6) 71 #define RTEMS_RFS_RTEMS_DEBUG_UNLINK (1 << 7) 72 #define RTEMS_RFS_RTEMS_DEBUG_CHOWN (1 << 8) 73 #define RTEMS_RFS_RTEMS_DEBUG_READLINK (1 << 9) 74 #define RTEMS_RFS_RTEMS_DEBUG_FCHMOD (1 << 10) 75 #define RTEMS_RFS_RTEMS_DEBUG_STAT (1 << 11) 76 #define RTEMS_RFS_RTEMS_DEBUG_RENAME (1 << 12) 77 #define RTEMS_RFS_RTEMS_DEBUG_DIR_RMNOD (1 << 13) 78 #define RTEMS_RFS_RTEMS_DEBUG_FILE_OPEN (1 << 14) 79 #define RTEMS_RFS_RTEMS_DEBUG_FILE_CLOSE (1 << 15) 80 #define RTEMS_RFS_RTEMS_DEBUG_FILE_READ (1 << 16) 81 #define RTEMS_RFS_RTEMS_DEBUG_FILE_WRITE (1 << 17) 82 #define RTEMS_RFS_RTEMS_DEBUG_FILE_LSEEK (1 << 18) 83 #define RTEMS_RFS_RTEMS_DEBUG_FILE_FTRUNC (1 << 19) 95 #if RTEMS_RFS_RTEMS_TRACE 98 #define rtems_rfs_rtems_trace(_m) (0) 108 #if RTEMS_RFS_RTEMS_TRACE 111 #define rtems_rfs_rtems_trace_set_mask(_m) 121 #if RTEMS_RFS_RTEMS_TRACE 124 #define rtems_rfs_rtems_trace_clear_mask(_m) 130 #if RTEMS_RFS_RTEMS_TRACE 131 int rtems_rfs_rtems_trace_shell_command (
int argc,
char *argv[]);
134 #include <rtems/rfs/rtems-rfs-file-system.h> 135 #include <rtems/rfs/rtems-rfs-inode.h> 136 #include <rtems/rfs/rtems-rfs-mutex.h> 156 #define rtems_rfs_rtems_pathloc_dev(_loc) \ 157 ((rtems_rfs_file_system*)((_loc)->mt_entry->fs_info)) 165 #define rtems_rfs_rtems_set_pathloc_ino(_loc, _ino) \ 166 (_loc)->node_access = (void*)((intptr_t)(_ino)) 174 #define rtems_rfs_rtems_get_pathloc_ino(_loc) \ 175 ((rtems_rfs_ino) (intptr_t)((_loc)->node_access)) 183 #define rtems_rfs_rtems_set_pathloc_doff(_loc, _doff) \ 184 (_loc)->node_access_2 = (void*)((intptr_t)(_doff)) 192 #define rtems_rfs_rtems_get_pathloc_doff(_loc) \ 193 ((uint32_t) (intptr_t)((_loc)->node_access_2)) 201 #define rtems_rfs_rtems_get_iop_ino(_iop) \ 202 ((intptr_t)(_iop)->pathinfo.node_access) 210 #define rtems_rfs_rtems_get_iop_file_handle(_iop) \ 211 ((rtems_rfs_file_handle*)(_iop)->pathinfo.node_access_2) 219 #define rtems_rfs_rtems_set_iop_file_handle(_iop, _fh) \ 220 (_iop)->pathinfo.node_access_2 = (_fh) 228 #define rtems_rfs_rtems_handlers(_h) \ 229 &rtems_rfs_rtems_ ## _h ## _handlers 267 rtems_rfs_mutex_lock (&rtems->
access);
278 rtems_rfs_mutex_unlock (&rtems->
access);
#define rtems_rfs_rtems_error(_m, _e)
If we are not handling errors provide a define that removes the strings from the code.
Definition: rtems-rfs-rtems.h:41
int rtems_rfs_rtems_rmnod(const rtems_filesystem_location_info_t *parent_pathloc, const rtems_filesystem_location_info_t *pathloc)
Routine to remove a node from the RFS file system.
Definition: rtems-rfs-rtems.c:585
const rtems_filesystem_file_handlers_r rtems_rfs_rtems_link_handlers
Handler table for RFS link nodes.
Definition: rtems-rfs-rtems.c:713
#define rtems_rfs_rtems_trace(_m)
Call to check if this part is bring traced.
Definition: rtems-rfs-rtems.h:98
int rtems_rfs_buffers_release(rtems_rfs_file_system *fs)
Release any chained buffers.
Definition: rtems-rfs-buffer.c:466
int rtems_rfs_rtems_fstat(const rtems_filesystem_location_info_t *pathloc, struct stat *buf)
The following routine does a stat on a node.
Definition: rtems-rfs-rtems.c:438
uint32_t rtems_rfs_mutex
RFS Mutex type.
Definition: rtems-rfs-mutex.h:40
RFS File System data.
Definition: rtems-rfs-file-system.h:123
mode_t rtems_rfs_rtems_mode(int imode)
Convert the inode mode flags to system mode flags.
Definition: rtems-rfs-rtems-utils.c:62
File system node operations table.
Definition: libio.h:982
#define rtems_rfs_fs_user(_fs)
Return the user pointer.
Definition: rtems-rfs-file-system.h:372
bool rtems_rfs_rtems_set_handlers(rtems_filesystem_location_info_t *pathloc, rtems_rfs_inode_handle *inode)
Set the handlers in the path location based on the mode of the inode.
Definition: rtems-rfs-rtems-utils.c:31
RFS Inode Handle.
Definition: rtems-rfs-inode.h:181
struct rtems_rfs_rtems_private rtems_rfs_rtems_private
Add shell trace shell command.
int rtems_rfs_rtems_fdatasync(rtems_libio_t *iop)
The following routine does a sync on an inode node.
Definition: rtems-rfs-rtems.c:615
Add shell trace shell command.
Definition: rtems-rfs-rtems.h:143
LibIO Internal Interface.
const rtems_filesystem_file_handlers_r rtems_rfs_rtems_dir_handlers
The handlers.
Definition: rtems-rfs-rtems-dir.c:154
#define rtems_rfs_rtems_trace_clear_mask(_m)
Clear the mask.
Definition: rtems-rfs-rtems.h:124
#define rtems_rfs_rtems_trace_set_mask(_m)
Set the mask.
Definition: rtems-rfs-rtems.h:111
An open file data structure.
Definition: libio.h:1281
uint16_t rtems_rfs_rtems_imode(mode_t mode)
Convert the system mode flags to inode mode flags.
Definition: rtems-rfs-rtems-utils.c:53
rtems_rfs_mutex access
The access lock.
Definition: rtems-rfs-rtems.h:148
File system location.
Definition: fs.h:53