|
PatchworkOS
|
Socket Families. More...
Data Structures | |
| struct | socket_factory_t |
| Socket Factory structure. More... | |
| struct | socket_family_ops_t |
| Socket Family operations structure. More... | |
| struct | socket_family_t |
| Socket Family structure. More... | |
Functions | |
| uint64_t | socket_family_register (const socket_family_ops_t *ops, const char *name, socket_type_t supportedTypes) |
| Register a socket family. | |
| void | socket_family_unregister (const char *name) |
| Unregister a socket family. | |
| socket_family_t * | socket_family_get (const char *name) |
| Get a socket family by name. | |
| uint64_t | socket_family_get_dir (socket_family_t *family, path_t *outPath) |
| Get the directory of a socket family. | |
Socket Families.
A socket family defines a set of operations for a socket, defining what it means to read, write, etc., for that specific family.
Each socket family is exposed as /net/<family_name>/.
| socket_family_t * socket_family_get | ( | const char * | name | ) |
Get a socket family by name.
| name | Name of the socket family to get. |
NULL. Definition at line 143 of file socket_family.c.
References families, LIST_FOR_EACH, lock, LOCK_SCOPE, socket_family_t::name, NULL, and strcmp().
Referenced by local_listen_dir_init().
| uint64_t socket_family_get_dir | ( | socket_family_t * | family, |
| path_t * | outPath | ||
| ) |
Get the directory of a socket family.
| family | Pointer to the socket family. |
| outPath | Output path for the directory (/net/<family_name>/). |
0. On failure, ERR and errno is set. Definition at line 195 of file socket_family.c.
References DEREF, socket_family_t::dir, EINVAL, ERR, errno, mount, net_get_mount(), NULL, and path_set().
Referenced by socket_new().
| uint64_t socket_family_register | ( | const socket_family_ops_t * | ops, |
| const char * | name, | ||
| socket_type_t | supportedTypes | ||
| ) |
Register a socket family.
| name | Name of the socket family, must be unique. |
| ops | Pointer to the socket family operations. |
| supportedTypes | Supported socket types (bitmask of socket_type_t). |
0. On failure, ERR and errno is set. Definition at line 53 of file socket_family.c.
References atomic_init, socket_family_ops_t::deinit, DEREF, socket_family_t::dir, EINVAL, socket_factory_t::entry, socket_family_t::entry, ERR, errno, socket_family_t::factories, families, socket_factory_t::family, socket_factory_t::file, fileOps, free(), socket_family_ops_t::init, list_entry_init(), LIST_FOR_EACH_SAFE, list_init(), list_push(), lock, lock_acquire(), lock_release(), LOG_INFO, malloc(), MAX_NAME, mount, socket_family_t::name, net_get_mount(), socket_family_t::newId, NULL, socket_family_t::ops, ops, mount_t::root, SOCKET_TYPE_AMOUNT, socket_type_to_string(), strncpy(), socket_family_t::supportedTypes, sysfs_dir_new(), sysfs_file_new(), and socket_factory_t::type.
Referenced by net_local_init().
| void socket_family_unregister | ( | const char * | name | ) |
Unregister a socket family.
| name | Name of the socket family to unregister. |
Definition at line 172 of file socket_family.c.
References DEREF, socket_family_t::dir, socket_family_t::factories, socket_factory_t::file, free(), LIST_FOR_EACH_SAFE, LOG_INFO, LOG_WARN, socket_family_t::name, NULL, and socket_family_get_and_remove().