2016-02-10 20:11:38 +01:00
# 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.
2016-02-26 08:39:05 +01:00
## 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.
2016-02-10 20:11:38 +01:00
## 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)