mirror of
https://git.rwth-aachen.de/acs/public/villas/node/
synced 2025-03-16 00:00:02 +01:00
40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
# Development
|
|
|
|
Developement is currently coordinated by Steffen Vogel <stvogel@eonerc.rwth-aachen.de> using [GitHub](http://github.com/RWTH-ACS/S2SS).
|
|
Please feel free to submit pull requests or bug reports.
|
|
|
|
## Shared library: libs2ss
|
|
|
|
S2SS is split into a shared library called libs2ss and a couple of executables (`s2ss-server`, `s2ss-pipe`, `s2ss-test`, `s2ss-signal`) which are linked agains the library.
|
|
|
|
## Extensibilty
|
|
|
|
There are two main places where S2SS can easily extended:
|
|
|
|
#### New node-type
|
|
|
|
REGISTER_NODE_TYPE(struct node_type *vt)
|
|
|
|
#### New hook functions
|
|
|
|
/** The type of a hook defines when a hook will be exectuted. This is used as a bitmask. */
|
|
enum hook_type {
|
|
HOOK_PATH_START = 1 << 0, /**< Called whenever a path is started; before threads are created. */
|
|
|
|
[...]
|
|
|
|
HOOK_ASYNC = 1 << 6, /**< Called asynchronously with fixed rate (see path::rate). */
|
|
|
|
HOOK_PERIODIC = 1 << 7, /**< Called periodically. Period is set by global 'stats' option in the configuration file. */
|
|
|
|
/** @{ Classes of hooks */
|
|
/** Internal hooks are mandatory. */
|
|
HOOK_INTERNAL = 1 << 16,
|
|
/** All hooks */
|
|
HOOK_ALL = HOOK_INTERNAL - 1
|
|
/** @} */
|
|
};
|
|
|
|
typedef int (*hook_cb_t)(struct path *p, struct hook *h, int when);
|
|
|
|
REGISTER_HOOK(char *name, int priority, hook_cb_t cb, enum hook_type when)
|