DevFS device file system

Dynamic device file system.

This file system implementation allows devices to register file names for easier access to device drivers from shell commands etc.

The idea is similar to the /dev directory on Unix.

struct devfs devfs_t

DevFS node typedef.

const vfs_file_system_t devfs_file_system

DevFS file system driver.

For use with vfs_mount

int devfs_register(devfs.h::devfs_t * node)

Register a node in DevFS.

The node will immediately become available to vfs_open, if DevFS is already mounted somewhere.

If DevFS is not mounted, the node will be registered and will become available to vfs_open when DevFS is mounted.

Parameters

node:DevFS node to register

Return values

  • 0 on success
  • <0 on error
int devfs_unregister(devfs.h::devfs_t * node)

Remove a registration from DevFS.

The node will no longer be available to vfs_open, but any already opened FDs will remain open.

Parameters

node:DevFS node to unregister

Return values

  • 0 on success
  • <0 on error
struct devfs

A device “file” consists of a file name and an opaque pointer to device driver private data.

The file system is implemented as a linked list.

clist.h::clist_node_t list_entry

List item entry.

const char * path

File system relative path to this node.

const vfs.h::vfs_file_ops_t * f_op

Pointer to file operations table for this device.

void * private_data

Pointer to device driver specific data.