45#ifndef _RTEMS_RTEMS_LIBIO_H
46#define _RTEMS_RTEMS_LIBIO_H
50#include <sys/ioccom.h>
88 const rtems_filesystem_mount_table_entry_t *mt_entry
99 const rtems_filesystem_mount_table_entry_t *mt_entry
283 rtems_filesystem_mount_table_entry_t *mt_entry
299 rtems_filesystem_mount_table_entry_t *mt_entry,
318 rtems_filesystem_mount_table_entry_t *mt_entry
333 rtems_filesystem_mount_table_entry_t *mt_entry
408 struct timespec
times[2]
516extern const rtems_filesystem_operations_table
525 const rtems_filesystem_mount_table_entry_t *mt_entry
534 const rtems_filesystem_mount_table_entry_t *mt_entry
642 rtems_filesystem_mount_table_entry_t *mt_entry
651 rtems_filesystem_mount_table_entry_t *mt_entry
660 rtems_filesystem_mount_table_entry_t *mt_entry
670 struct timespec
times[2]
802 const struct iovec *iov,
845 const struct iovec *iov,
864 ioctl_command_t request,
1045extern const rtems_filesystem_file_handlers_r
1087 const struct iovec *iov,
1110 const struct iovec *iov,
1122 ioctl_command_t request,
1317 int posix_chown_restrictions;
1360 uint32_t bytes_moved;
1377 ioctl_command_t command;
1387#define LIBIO_FLAGS_FREE 0x0001U
1388#define LIBIO_FLAGS_NO_DELAY 0x0002U
1389#define LIBIO_FLAGS_READ 0x0004U
1390#define LIBIO_FLAGS_WRITE 0x0008U
1391#define LIBIO_FLAGS_OPEN 0x0100U
1392#define LIBIO_FLAGS_APPEND 0x0200U
1393#define LIBIO_FLAGS_CLOSE_BUSY 0x0400U
1394#define LIBIO_FLAGS_CLOSE_ON_EXEC 0x0800U
1395#define LIBIO_FLAGS_REFERENCE_INC 0x1000U
1397#define LIBIO_FLAGS_READ_WRITE (LIBIO_FLAGS_READ | LIBIO_FLAGS_WRITE)
1398#define LIBIO_FLAGS_FLAGS_MASK (LIBIO_FLAGS_REFERENCE_INC - 1U)
1399#define LIBIO_FLAGS_REFERENCE_MASK (~LIBIO_FLAGS_FLAGS_MASK)
1403static inline unsigned int rtems_libio_iop_flags(
const rtems_libio_t *iop )
1405 return _Atomic_Load_uint( &iop->flags, ATOMIC_ORDER_RELAXED );
1414static inline unsigned int rtems_libio_iop_flags_bad_fd(
1415 const unsigned int flags
1418 return ( ( flags & LIBIO_FLAGS_FREE ) != 0 )
1419 || ( ( flags & LIBIO_FLAGS_OPEN ) == 0 );
1427static inline bool rtems_libio_iop_is_no_delay(
const rtems_libio_t *iop )
1429 return ( rtems_libio_iop_flags( iop ) & LIBIO_FLAGS_NO_DELAY ) != 0;
1437static inline bool rtems_libio_iop_is_readable(
const rtems_libio_t *iop )
1439 return ( rtems_libio_iop_flags( iop ) & LIBIO_FLAGS_READ ) != 0;
1447static inline bool rtems_libio_iop_is_writeable(
const rtems_libio_t *iop )
1449 return ( rtems_libio_iop_flags( iop ) & LIBIO_FLAGS_WRITE ) != 0;
1457static inline bool rtems_libio_iop_is_open(
const rtems_libio_t *iop )
1459 return ( rtems_libio_iop_flags( iop ) & LIBIO_FLAGS_OPEN ) != 0;
1467static inline bool rtems_libio_iop_is_append(
const rtems_libio_t *iop )
1469 return ( rtems_libio_iop_flags( iop ) & LIBIO_FLAGS_APPEND ) != 0;
1477static inline bool rtems_libio_iop_is_held(
const rtems_libio_t *iop )
1479 const unsigned int ref_count =
1480 rtems_libio_iop_flags( iop ) & LIBIO_FLAGS_REFERENCE_MASK;
1481 return ref_count != 0;
1489static inline bool rtems_libio_iop_is_free(
const rtems_libio_t *iop )
1491 return ( rtems_libio_iop_flags( iop ) & LIBIO_FLAGS_FREE ) != 0;
1499typedef int (*rtems_libio_open_t)(
1500 const char *pathname,
1505typedef int (*rtems_libio_close_t)(
1509typedef ssize_t (*rtems_libio_read_t)(
1515typedef ssize_t (*rtems_libio_write_t)(
1521typedef int (*rtems_libio_ioctl_t)(
1527typedef off_t (*rtems_libio_lseek_t)(
1545#define RTEMS_FS_PERMS_READ 0x4
1546#define RTEMS_FS_PERMS_WRITE 0x2
1547#define RTEMS_FS_PERMS_EXEC 0x1
1548#define RTEMS_FS_PERMS_RWX \
1549 (RTEMS_FS_PERMS_READ | RTEMS_FS_PERMS_WRITE | RTEMS_FS_PERMS_EXEC)
1550#define RTEMS_FS_FOLLOW_HARD_LINK 0x8
1551#define RTEMS_FS_FOLLOW_SYM_LINK 0x10
1552#define RTEMS_FS_FOLLOW_LINK \
1553 (RTEMS_FS_FOLLOW_HARD_LINK | RTEMS_FS_FOLLOW_SYM_LINK)
1554#define RTEMS_FS_MAKE 0x20
1555#define RTEMS_FS_EXCLUSIVE 0x40
1556#define RTEMS_FS_ACCEPT_RESIDUAL_DELIMITERS 0x80
1557#define RTEMS_FS_REJECT_TERMINAL_DOT 0x100
1569static inline dev_t rtems_filesystem_make_dev_t(
1576 temp.__overlay.major = _major;
1577 temp.__overlay.minor = _minor;
1581static inline dev_t rtems_filesystem_make_dev_t_from_pointer(
1585 uint64_t temp = (((uint64_t) 1) << 63) | (((uintptr_t) pointer) >> 1);
1587 return rtems_filesystem_make_dev_t((uint32_t) (temp >> 32), (uint32_t) temp);
1596 temp.device = device;
1597 return temp.__overlay.major;
1607 temp.device = device;
1608 return temp.__overlay.minor;
1611#define rtems_filesystem_split_dev_t( _dev, _major, _minor ) \
1613 (_major) = rtems_filesystem_dev_major_t ( _dev ); \
1614 (_minor) = rtems_filesystem_dev_minor_t( _dev ); \
1631void rtems_libio_post_driver(
void);
1633void rtems_libio_exit(
void);
1644extern int rtems_mkdir(
const char *path, mode_t mode);
1662#define RTEMS_FILESYSTEM_TYPE_IMFS "imfs"
1663#define RTEMS_FILESYSTEM_TYPE_FTPFS "ftpfs"
1664#define RTEMS_FILESYSTEM_TYPE_TFTPFS "tftpfs"
1665#define RTEMS_FILESYSTEM_TYPE_NFS "nfs"
1666#define RTEMS_FILESYSTEM_TYPE_DOSFS "dosfs"
1667#define RTEMS_FILESYSTEM_TYPE_RFS "rfs"
1668#define RTEMS_FILESYSTEM_TYPE_JFFS2 "jffs2"
1676 rtems_chain_node mt_node;
1678 const rtems_filesystem_operations_table *ops;
1679 const void *immutable_fs_info;
1680 rtems_chain_control location_chain;
1685 bool no_regular_file_mknod;
1720 RTEMS_FILESYSTEM_READ_ONLY,
1721 RTEMS_FILESYSTEM_READ_WRITE,
1722 RTEMS_FILESYSTEM_BAD_OPTIONS
1740extern rtems_chain_control rtems_filesystem_mount_table;
1788 const char *mount_path
1841 const char *filesystemtype,
1860 const char *filesystemtype,
1905 const rtems_filesystem_mount_table_entry_t *mt_entry,
1930 const char *filesystemtype;
1936 rtems_filesystem_root_configuration;
1987 int (*firstOpen)(
int major,
int minor,
void *arg);
1988 int (*lastClose)(
int major,
int minor,
void *arg);
1989 int (*pollRead)(
int minor);
1990 ssize_t (*write)(
int minor,
const char *buf,
size_t len);
1991 int (*setAttributes)(
int minor,
const struct termios *t);
1992 int (*stopRemoteTx)(
int minor);
1993 int (*startRemoteTx)(
int minor);
1994 rtems_termios_device_mode outputUsesInterrupts;
1997static inline void rtems_termios_initialize(
void )
2124int rtems_termios_enqueue_raw_characters(
2153int rtems_termios_dequeue_characters(
2163#define rtems_filesystem_pathconf(_mte) ((_mte)->pathconf_limits_and_options)
2168#define rtems_filesystem_type(_mte) ((_mte)->type)
2173#define rtems_filesystem_mount_point(_mte) ((_mte)->target)
2178#define rtems_filesystem_mount_device(_mte) ((_mte)->dev)
clock_t times(struct tms *ptms)
Definition __times.c:97
This header file provides the Chains API.
bool rtems_filesystem_mount_iterate(rtems_filesystem_mt_entry_visitor visitor, void *visitor_arg)
Iterates over all file system mount entries.
Definition sup_fs_mount_iterate.c:42
int mount_and_make_target_path(const char *source, const char *target, const char *filesystemtype, rtems_filesystem_options_t options, const void *data)
Mounts a file system and makes the target path.
Definition mount-mktgt.c:44
bool rtems_filesystem_iterate(rtems_per_filesystem_routine routine, void *routine_arg)
Iterates over all file system types.
Definition mount-mgr.c:58
int unmount(const char *mount_path)
Unmounts the file system instance at the specified mount path.
Definition unmount.c:62
int rtems_filesystem_unregister(const char *type)
Unregisters a file system type.
Definition mount-mgr.c:160
bool(*) rtems_per_filesystem_routine(const rtems_filesystem_table_t *fs_entry, void *arg)
Per file system type routine.
Definition libio.h:1873
const rtems_filesystem_table_t rtems_filesystem_table[]
Static table of file systems.
int rtems_filesystem_register(const char *type, rtems_filesystem_fsmount_me_t mount_h)
Registers a file system type.
Definition mount-mgr.c:126
rtems_filesystem_options_t
File system options.
Definition libio.h:1719
bool(*) rtems_filesystem_mt_entry_visitor(const rtems_filesystem_mount_table_entry_t *mt_entry, void *arg)
Mount table entry visitor.
Definition libio.h:1904
int mount(const char *source, const char *target, const char *filesystemtype, rtems_filesystem_options_t options, const void *data)
Mounts a file system instance at the specified target path.
Definition mount.c:197
int(*) rtems_filesystem_kqfilter_t(rtems_libio_t *iop, struct knote *kn)
Kernel event filter support.
Definition libio.h:993
ssize_t(*) rtems_filesystem_read_t(rtems_libio_t *iop, void *buffer, size_t count)
Reads from a node.
Definition libio.h:778
int rtems_filesystem_default_fcntl(rtems_libio_t *iop, int cmd)
Definition default_fcntl.c:41
int rtems_filesystem_default_ftruncate(rtems_libio_t *iop, off_t length)
Definition default_ftruncate.c:44
int rtems_filesystem_default_ftruncate_directory(rtems_libio_t *iop, off_t length)
Definition default_ftruncate_directory.c:43
ssize_t(*) rtems_filesystem_write_t(rtems_libio_t *iop, const void *buffer, size_t count)
Writes to a node.
Definition libio.h:821
off_t(*) rtems_filesystem_lseek_t(rtems_libio_t *iop, off_t offset, int whence)
Moves the read/write file offset.
Definition libio.h:882
off_t rtems_filesystem_default_lseek_directory(rtems_libio_t *iop, off_t offset, int whence)
An offset 0 with a whence of SEEK_SET will perform a directory rewind operation.
Definition default_lseek_directory.c:42
int(*) rtems_filesystem_fsync_t(rtems_libio_t *iop)
Synchronizes changes to a file.
Definition libio.h:932
int(*) rtems_filesystem_mmap_t(rtems_libio_t *iop, void **addr, size_t len, int prot, off_t off)
MMAP support.
Definition libio.h:1012
int(*) rtems_filesystem_close_t(rtems_libio_t *iop)
Closes a node.
Definition libio.h:760
int(*) rtems_filesystem_poll_t(rtems_libio_t *iop, int events)
Poll and select support.
Definition libio.h:977
int rtems_filesystem_default_ioctl(rtems_libio_t *iop, ioctl_command_t request, void *buffer)
Definition default_ioctl.c:43
int(*) rtems_filesystem_fstat_t(const rtems_filesystem_location_info_t *loc, struct stat *buf)
Gets a node status.
Definition libio.h:899
int(*) rtems_filesystem_open_t(rtems_libio_t *iop, const char *path, int oflag, mode_t mode)
Opens a node.
Definition libio.h:743
int(*) rtems_filesystem_fdatasync_t(rtems_libio_t *iop)
Synchronizes the data of a file.
Definition libio.h:947
int rtems_filesystem_default_poll(rtems_libio_t *iop, int events)
Default poll handler.
Definition default_poll.c:44
int rtems_filesystem_default_fsync_or_fdatasync(rtems_libio_t *iop)
Definition default_fsync.c:43
const rtems_filesystem_file_handlers_r rtems_filesystem_handlers_default
File system node handler table with default node handlers.
Definition default_handlers.c:38
off_t rtems_filesystem_default_lseek_file(rtems_libio_t *iop, off_t offset, int whence)
Default lseek() handler for files.
Definition default_lseek_file.c:42
int rtems_filesystem_default_fstat(const rtems_filesystem_location_info_t *loc, struct stat *buf)
Sets the mode to S_IRWXU | S_IRWXG | S_IRWXO.
Definition default_fstat.c:43
int rtems_filesystem_default_fsync_or_fdatasync_success(rtems_libio_t *iop)
Definition default_fsync_success.c:42
int rtems_filesystem_default_kqfilter(rtems_libio_t *iop, struct knote *kn)
Default kernel event filter handler.
Definition default_kqfilter.c:42
ssize_t rtems_filesystem_default_writev(rtems_libio_t *iop, const struct iovec *iov, int iovcnt, ssize_t total)
Calls the write handler for each IO vector entry.
Definition default_writev.c:45
ssize_t rtems_filesystem_default_readv(rtems_libio_t *iop, const struct iovec *iov, int iovcnt, ssize_t total)
Calls the read handler for each IO vector entry.
Definition default_readv.c:45
ssize_t(*) rtems_filesystem_writev_t(rtems_libio_t *iop, const struct iovec *iov, int iovcnt, ssize_t total)
Writes an IO vector to a node.
Definition libio.h:843
off_t rtems_filesystem_default_lseek(rtems_libio_t *iop, off_t offset, int whence)
Definition default_lseek.c:43
int rtems_filesystem_default_mmap(rtems_libio_t *iop, void **addr, size_t len, int prot, off_t off)
Default MMAP handler.
Definition default_mmap.c:42
int rtems_filesystem_default_close(rtems_libio_t *iop)
Definition default_close.c:37
int(*) rtems_filesystem_ftruncate_t(rtems_libio_t *iop, off_t length)
Truncates a file to a specified length.
Definition libio.h:916
ssize_t rtems_filesystem_default_read(rtems_libio_t *iop, void *buffer, size_t count)
Definition default_read.c:39
int rtems_filesystem_default_open(rtems_libio_t *iop, const char *path, int oflag, mode_t mode)
Definition default_open.c:43
ssize_t(*) rtems_filesystem_readv_t(rtems_libio_t *iop, const struct iovec *iov, int iovcnt, ssize_t total)
Reads an IO vector from a node.
Definition libio.h:800
int(*) rtems_filesystem_ioctl_t(rtems_libio_t *iop, ioctl_command_t request, void *buffer)
IO control of a node.
Definition libio.h:862
int(*) rtems_filesystem_fcntl_t(rtems_libio_t *iop, int cmd)
File control.
Definition libio.h:962
ssize_t rtems_filesystem_default_write(rtems_libio_t *iop, const void *buffer, size_t count)
Definition default_write.c:41
int rtems_filesystem_default_unmount(rtems_filesystem_mount_table_entry_t *mt_entry)
Definition default_unmount.c:41
int(*) rtems_filesystem_chown_t(const rtems_filesystem_location_info_t *loc, uid_t owner, gid_t group)
Changes owner and group of a node.
Definition libio.h:230
int(*) rtems_filesystem_rename_t(const rtems_filesystem_location_info_t *oldparentloc, const rtems_filesystem_location_info_t *oldloc, const rtems_filesystem_location_info_t *newparentloc, const char *name, size_t namelen)
Renames a node.
Definition libio.h:464
int(*) rtems_filesystem_clonenode_t(rtems_filesystem_location_info_t *loc)
Clones a location.
Definition libio.h:251
int(*) rtems_filesystem_statvfs_t(const rtems_filesystem_location_info_t *loc, struct statvfs *buf)
Gets file system information.
Definition libio.h:483
void rtems_filesystem_default_lock(const rtems_filesystem_mount_table_entry_t *mt_entry)
Obtains the IO library mutex.
Definition default_lock_and_unlock.c:42
int rtems_filesystem_default_rename(const rtems_filesystem_location_info_t *oldparentloc, const rtems_filesystem_location_info_t *oldloc, const rtems_filesystem_location_info_t *newparentloc, const char *name, size_t namelen)
Definition default_rename.c:44
int(*) rtems_filesystem_fsmount_me_t(rtems_filesystem_mount_table_entry_t *mt_entry, const void *data)
Initializes a file system instance.
Definition libio.h:298
int rtems_filesystem_default_mknod(const rtems_filesystem_location_info_t *parentloc, const char *name, size_t namelen, mode_t mode, dev_t dev)
Definition default_mknod.c:44
int rtems_filesystem_default_fchmod(const rtems_filesystem_location_info_t *loc, mode_t mode)
Definition default_fchmod.c:42
void(*) rtems_filesystem_fsunmount_me_t(rtems_filesystem_mount_table_entry_t *mt_entry)
Destroys a file system instance.
Definition libio.h:332
ssize_t(*) rtems_filesystem_readlink_t(const rtems_filesystem_location_info_t *loc, char *buf, size_t bufsize)
Reads the contents of a symbolic link.
Definition libio.h:444
int rtems_filesystem_default_clonenode(rtems_filesystem_location_info_t *loc)
Definition default_clone.c:42
void rtems_filesystem_default_unlock(const rtems_filesystem_mount_table_entry_t *mt_entry)
Releases the IO library mutex.
Definition default_lock_and_unlock.c:49
bool rtems_filesystem_default_are_nodes_equal(const rtems_filesystem_location_info_t *a, const rtems_filesystem_location_info_t *b)
Tests if the node access pointer of one location is equal to the node access pointer of the other loc...
Definition default_are_nodes_equal.c:42
int(*) rtems_filesystem_mount_t(rtems_filesystem_mount_table_entry_t *mt_entry)
Mounts a file system instance in a mount point (directory).
Definition libio.h:282
int rtems_filesystem_default_rmnod(const rtems_filesystem_location_info_t *parentloc, const rtems_filesystem_location_info_t *loc)
Definition default_rmnod.c:44
int(*) rtems_filesystem_unmount_t(rtems_filesystem_mount_table_entry_t *mt_entry)
Unmounts a file system instance in a mount point (directory).
Definition libio.h:317
int rtems_filesystem_default_mount(rtems_filesystem_mount_table_entry_t *mt_entry)
Definition default_mount.c:41
int(*) rtems_filesystem_utimens_t(const rtems_filesystem_location_info_t *loc, struct timespec times[2])
Set node access and modification times.
Definition libio.h:406
void rtems_filesystem_default_freenode(const rtems_filesystem_location_info_t *loc)
Definition default_freenode.c:43
void rtems_filesystem_default_fsunmount(rtems_filesystem_mount_table_entry_t *mt_entry)
Definition default_fsunmount.c:39
int(*) rtems_filesystem_mknod_t(const rtems_filesystem_location_info_t *parentloc, const char *name, size_t namelen, mode_t mode, dev_t dev)
Creates a new node.
Definition libio.h:371
void rtems_filesystem_default_eval_path(rtems_filesystem_eval_path_context_t *ctx)
Terminates the path evaluation and replaces the current location with the null location.
Definition default_eval_path.c:42
int(*) rtems_filesystem_rmnod_t(const rtems_filesystem_location_info_t *parentloc, const rtems_filesystem_location_info_t *loc)
Removes a node.
Definition libio.h:390
int rtems_filesystem_default_symlink(const rtems_filesystem_location_info_t *parentloc, const char *name, size_t namelen, const char *target)
Definition default_symlink.c:44
int rtems_filesystem_default_statvfs(const rtems_filesystem_location_info_t *loc, struct statvfs *buf)
Definition default_statvfs.c:42
void(*) rtems_filesystem_mt_entry_lock_t(const rtems_filesystem_mount_table_entry_t *mt_entry)
Locks a file system instance.
Definition libio.h:87
int(*) rtems_filesystem_link_t(const rtems_filesystem_location_info_t *parentloc, const rtems_filesystem_location_info_t *targetloc, const char *name, size_t namelen)
Creates a new link for the existing file.
Definition libio.h:195
void(*) rtems_filesystem_mt_entry_unlock_t(const rtems_filesystem_mount_table_entry_t *mt_entry)
Unlocks a file system instance.
Definition libio.h:98
int(*) rtems_filesystem_symlink_t(const rtems_filesystem_location_info_t *parentloc, const char *name, size_t namelen, const char *target)
Makes a symbolic link to a node.
Definition libio.h:425
void(*) rtems_filesystem_freenode_t(const rtems_filesystem_location_info_t *loc)
Frees the location of a node.
Definition libio.h:262
void(*) rtems_filesystem_eval_path_t(rtems_filesystem_eval_path_context_t *ctx)
Path evaluation.
Definition libio.h:178
const rtems_filesystem_operations_table rtems_filesystem_operations_default
File system operations table with default operations.
Definition default_ops.c:38
bool(*) rtems_filesystem_are_nodes_equal_t(const rtems_filesystem_location_info_t *a, const rtems_filesystem_location_info_t *b)
Tests if the node of one location is equal to the node of the other location.
Definition libio.h:350
int rtems_filesystem_default_chown(const rtems_filesystem_location_info_t *loc, uid_t owner, gid_t group)
Definition default_chown.c:42
ssize_t rtems_filesystem_default_readlink(const rtems_filesystem_location_info_t *loc, char *buf, size_t bufsize)
Definition default_readlink.c:44
int(*) rtems_filesystem_fchmod_t(const rtems_filesystem_location_info_t *loc, mode_t mode)
Changes the mode of a node.
Definition libio.h:213
int rtems_filesystem_default_link(const rtems_filesystem_location_info_t *parentloc, const rtems_filesystem_location_info_t *targetloc, const char *name, size_t namelen)
Definition default_link.c:42
int rtems_filesystem_default_utimens(const rtems_filesystem_location_info_t *loc, struct timespec times[2])
Definition default_utimens.c:43
struct rtems_libio_open_close_args rtems_libio_open_close_args_t
Parameter block for open/close.
rtems_filesystem_fsmount_me_t rtems_filesystem_get_mount_handler(const char *type)
Gets the mount handler for the file system type.
Definition mount-mgr.c:109
struct rtems_filesystem_location_info_tt rtems_filesystem_location_info_t
File system location.
int rtems_mkdir(const char *path, mode_t mode)
Creates a directory and all its parent directories according to path.
Definition rtems_mkdir.c:130
void rtems_filesystem_initialize(void)
Base File System Initialization.
Definition base_fs.c:51
const rtems_filesystem_limits_and_options_t rtems_filesystem_default_pathconf
Default pathconf settings.
Definition mount.c:49
void rtems_filesystem_register_pipe(rtems_pipe_handler_t pipe_handler)
Register a file system pipe call handler.
Definition pipe.c:99
int(*) rtems_pipe_handler_t(int filsdes[2])
Pipe handler.
Definition libio.h:1952
void rtems_filesystem_register_pipe2(rtems_pipe2_handler_t pipe2_handler)
Register a file system pipe2 call handler.
Definition pipe.c:106
int(*) rtems_pipe2_handler_t(int filsdes[2], int flags)
Pipe2 handler.
Definition libio.h:1957
uint32_t rtems_device_major_number
This integer type represents the major number of devices.
Definition io.h:103
uint32_t rtems_device_minor_number
This integer type represents the minor number of devices.
Definition io.h:115
rtems_status_code
This enumeration provides status codes for directives of the Classic API.
Definition status.h:85
Objects_Id rtems_id
This type represents RTEMS object identifiers.
Definition types.h:94
rtems_termios_iproc_status_code rtems_termios_default_isig_handler(unsigned char c, struct rtems_termios_tty *tty)
Default handler for ISIG (VINTR/VKILL).
Definition termios.c:1312
rtems_termios_iproc_status_code(*) rtems_termios_isig_handler(unsigned char c, struct rtems_termios_tty *tty)
Type for ISIG (VINTR/VKILL) handler.
Definition libio.h:2062
rtems_termios_iproc_status_code
The status code returned by all Termios input processing (iproc) functions and input signal (isig) ha...
Definition libio.h:2017
rtems_status_code rtems_termios_register_isig_handler(rtems_termios_isig_handler handler)
Register handler for ISIG (VINTR/VKILL).
Definition termios.c:1324
rtems_termios_iproc_status_code rtems_termios_posix_isig_handler(unsigned char c, struct rtems_termios_tty *tty)
POSIX handler for ISIG (VINTR/VKILL).
Definition termios_posix_isig_handler.c:23
@ RTEMS_TERMIOS_IPROC_DONE
This status indicates that the input processing is done.
Definition libio.h:2043
@ RTEMS_TERMIOS_IPROC_CONTINUE
This status indicates that the input processing can continue.
Definition libio.h:2024
@ RTEMS_TERMIOS_IPROC_INTERRUPT
This status indicates that the input processing should stop due to a signal.
Definition libio.h:2036
rtems_termios_device_handler handler
The device handler.
Definition termiostypes.h:166
This header file provides the interfaces of the Atomic Operations.
This header file defines the RTEMS Classic API.
This header file provides the statvfs() and fstatvfs() interfaces.
Definition xnandpsu_onfi.h:185
File system node operations table.
Definition libio.h:1023
File system operations table.
Definition libio.h:491
Definition iterateoverthreads.c:44
Path evaluation context.
Definition libio.h:105
int recursionlevel
Definition libio.h:147
rtems_filesystem_location_info_t currentloc
Definition libio.h:156
const char * path
Definition libio.h:109
size_t pathlen
Definition libio.h:114
rtems_filesystem_global_location_t * rootloc
Definition libio.h:162
size_t tokenlen
Definition libio.h:126
const char * token
Definition libio.h:120
int flags
Definition libio.h:140
rtems_filesystem_global_location_t * startloc
Definition libio.h:168
Global file system location.
Definition fs.h:100
Contain file system specific information which is required to support fpathconf().
Definition libio.h:1309
Mount table entry.
Definition libio.h:1675
rtems_id unmount_task
Definition libio.h:1713
File system table entry.
Definition libio.h:1728
Parameter block for ioctl.
Definition libio.h:1375
Parameter block for open/close.
Definition libio.h:1366
Paramameter block for read/write.
Definition libio.h:1354
An open file data structure.
Definition libio.h:1340
Definition termiostypes.h:94
This header file provides the interfaces of the RTEMS Termios Device Support.