o Add directory opening/traversing functions
- o silc_getopt routines
+ o silc_getopt routines (***DONE)
- o Add silc_stream_get_root and add get_root stream operation. It
- returns the root of the stream or NULL if stream doesn't have root.
-
- o Change some stream routines (like socket stream API) to accept ANY
- stream and use silc_stream_get_root to get the socket stream from the
- given stream. This will make various stream APIs more easier to use
- when user doesn't have to dig up the correct stream.
+ o regex from /lib/contrib to lib/silcutil.
o The SILC Event signals. Asynchronous events that can be created,
connected to and signalled. Either own event routines or glued into
o Thread pool API. Add this to lib/silcutil/silcthread.[ch]. (***DONE)
- o Fast mutex implementation. Fast rwlock implementation. Mutex and
- rwlock implementation using atomic operations.
-
- o Compression routines are missing. The protocol supports packet
- compression thus it must be implemented. SILC Zip API must be
- defined.
-
o Add new functions to SilcStack API in lib/silcutil/silcstack.[ch]. Add
silc_stack_[set|get]_alignment. It defines the default alignment used
when allocating memory from stack. It can be used to specify special
allocation possibility. (***DONE)
o silc_stack_alloc shouldn't require multiple by 8 size argument, it
- should figure it out itself.
+ should figure it out itself. (***DONE)
o silc_malloc et. al. to respect --with-alignment.
o Change silc_gettimeofday on Unix to use clock_gettime with REALTIME
clock if it is available, otherwise use gettimeofday(). (***DONE)
+ o Generic SilcResult that includes all possible status and
+ error conditions and generic errno API. (***DONE)
+
+ (o Change some stream routines (like socket stream API) to accept ANY
+ stream and use silc_stream_get_root to get the socket stream from the
+ given stream. This will make various stream APIs more easier to use
+ when user doesn't have to dig up the correct stream.
+
+ Add silc_stream_get_root and add get_root stream operation. It
+ returns the root of the stream or NULL if stream doesn't have root.) maybe
+
+ (o Compression routines are missing. The protocol supports packet
+ compression thus it must be implemented. SILC Zip API must be
+ defined.) maybe
+
(o SilcIpAddr abstraction. Ipv4 and Ipv6 support to the abstaction.)
maybe
- (o Generic SilcStatus or SilcResult that includes all possible status and
- error conditions, including those of SILC protocol. Though, the SILC
- protocol related status (currently in silcstatus.h) cannot be in
- runtime library) maybe
-
(o SILC specific socket creation/closing routines to silcnet.h, wrappers
to all send(), recv(), sendto() etc. Bad thing is that we'd have to
define all socket options, sockaddrs, etc.) maybe
+ (o Fast mutex implementation. Fast rwlock implementation. Mutex and
+ rwlock implementation using atomic operations.) not for now.
+
(o mmap) maybe
const char *option; /* Option name */
const char *display_name; /* Option displayable name */
SilcParamType type; /* Option data format */
+ void *default_value; /* Option's default value */
+ SilcUInt32 default_value_len; /* Default value length */
} *SilcAcceleratorOption;
For software accelerator it could be for example:
- { "min_threads", "Minimum threads", SILC_PARAM_UINT32 },
- { "max_threads", "Maximum threads", SILC_PARAM_UINT32 },
-
- The accelerator itself doesn't have to use the option structure to
- parse the options if not wanted. It is defined for the caller so
- they can learn the supported options in a well defined way.
+ { "min_threads", "Minimum threads", SILC_PARAM_UINT32, (void *)2, 4 },
+ { "max_threads", "Maximum threads", SILC_PARAM_UINT32, (void *)4, 4 },
o Diffie-Hellman acceleration