![]() |
RTEMS 6.3
|
Generic nodes are an alternative to standard drivers in RTEMS. More...
Data Structures | |
| struct | IMFS_node_control |
| IMFS node control. More... | |
| struct | IMFS_mknod_control |
Macros | |
| #define | IMFS_GENERIC_INITIALIZER(handlers, init, destroy) |
| #define | IMFS_GENERIC_CONTROL_INITIALIZER(handlers, init, destroy) |
| Initializer for a generic node control. | |
| #define | IMFS_GENERIC_NODE_INITIALIZER(node_control, name, namelen, mode) |
| Initializer for a generic node. | |
Typedefs | |
| typedef IMFS_jnode_t *(*) | IMFS_node_control_initialize(IMFS_jnode_t *node, void *arg) |
| Initializes an IMFS node. | |
| typedef IMFS_jnode_t *(*) | IMFS_node_control_remove(IMFS_jnode_t *node) |
| Prepares the removal of an IMFS node from its parent directory. | |
| typedef void(*) | IMFS_node_control_destroy(IMFS_jnode_t *node) |
| Destroys an IMFS node. | |
Functions | |
| IMFS_jnode_t * | IMFS_node_initialize_default (IMFS_jnode_t *node, void *arg) |
| Returns the node and does nothing else. | |
| IMFS_jnode_t * | IMFS_node_initialize_directory (IMFS_jnode_t *node, void *arg) |
| IMFS_jnode_t * | IMFS_node_initialize_generic (IMFS_jnode_t *node, void *arg) |
| Returns the node and sets the generic node context. | |
| IMFS_jnode_t * | IMFS_node_remove_default (IMFS_jnode_t *node) |
| Returns the node and does nothing else. | |
| IMFS_jnode_t * | IMFS_node_remove_directory (IMFS_jnode_t *node) |
| void | IMFS_node_destroy_default (IMFS_jnode_t *node) |
| Frees the node. | |
| void | IMFS_do_nothing_destroy (IMFS_jnode_t *node) |
| Does nothing. | |
| int | IMFS_make_generic_node (const char *path, mode_t mode, const IMFS_node_control *node_control, void *context) |
| Makes a generic IMFS node. | |
Generic nodes are an alternative to standard drivers in RTEMS.
The handlers of a generic node are called with less overhead compared to the standard driver operations. The usage of file system node handlers enable more features like support for fsync() and fdatasync(). The generic nodes use the reference counting of the IMFS. This provides automatic node destruction when the last reference vanishes.
| #define IMFS_GENERIC_CONTROL_INITIALIZER | ( | handlers, | |
| init, | |||
| destroy ) |
Initializer for a generic node control.
| handlers | The file system node handlers. |
| init | The node initialization method. |
| destroy | The node destruction method. |
| #define IMFS_GENERIC_INITIALIZER | ( | handlers, | |
| init, | |||
| destroy ) |
| #define IMFS_GENERIC_NODE_INITIALIZER | ( | node_control, | |
| name, | |||
| namelen, | |||
| mode ) |
Initializer for a generic node.
Initialize the node control with IMFS_GENERIC_CONTROL_INITIALIZER().
| node_control | The node control of the IMFS generic node. |
| name | The name of the IMFS generic node. |
| namelen | The length of the name of the IMFS generic node. |
| mode | The mode of the IMFS generic node. |
| typedef void(*) IMFS_node_control_destroy(IMFS_jnode_t *node) |
Destroys an IMFS node.
| [in] | node | The IMFS node. |
| typedef IMFS_jnode_t *(*) IMFS_node_control_initialize(IMFS_jnode_t *node, void *arg) |
Initializes an IMFS node.
| [in] | node | The IMFS node. |
| [in] | arg | The user provided argument pointer. It may contain node specific initialization information. |
| node | Successful operation. |
| NULL | An error occurred. The errno indicates the error. This will abort the make operation. |
| typedef IMFS_jnode_t *(*) IMFS_node_control_remove(IMFS_jnode_t *node) |
Prepares the removal of an IMFS node from its parent directory.
| [in] | node | The IMFS node. |
| node | Successful operation. |
| NULL | An error occurred. The errno indicates the error. This will abort the removal operation. |
| void IMFS_do_nothing_destroy | ( | IMFS_jnode_t * | node | ) |
|
extern |
Makes a generic IMFS node.
| [in] | path | The path to the new generic IMFS node. |
| [in] | mode | The node mode. |
| [in] | node_control | The node control. |
| [in] | context | The node control handler context. |
| 0 | Successful operation. |
| -1 | An error occurred. The errno indicates the error. |
| void IMFS_node_destroy_default | ( | IMFS_jnode_t * | node | ) |
| IMFS_jnode_t * IMFS_node_initialize_default | ( | IMFS_jnode_t * | node, |
| void * | arg ) |
Returns the node and does nothing else.
| [in] | node | The IMFS node. |
| [in] | arg | The user provided argument pointer. It is not used. |
| node | Returns always the node passed as parameter. |
| IMFS_jnode_t * IMFS_node_initialize_generic | ( | IMFS_jnode_t * | node, |
| void * | arg ) |
Returns the node and sets the generic node context.
| [in] | node | The IMFS node. |
| [in] | arg | The user provided argument pointer. It must contain the generic context. |
| node | Returns always the node passed as parameter. |
| IMFS_jnode_t * IMFS_node_remove_default | ( | IMFS_jnode_t * | node | ) |
Returns the node and does nothing else.
| [in] | node | The IMFS node. |
| node | Returns always the node passed as parameter. |