1/* -*- C -*- */
2
3/**@MODULEPAGE "su" - OS Services and Utilities
4 *
5 * @section su_meta Module Information
6 *
7 * The @b su module contains a simple, portable socket/timing/synchronizing
8 * library developed for Sofia communications software.
9 *
10 * @CONTACT Pekka Pessi <Pekka.Pessi@nokia.com>
11 *
12 * @STATUS @SofiaSIP Core library
13 *
14 * @LICENSE LGPL
15 *
16 * @section su_overview Overview
17 *
18 * The @b su module provides following interfaces for application programs:
19 *
20 * - <sofia-sip/su_types.h> - integral types
21 * - <sofia-sip/su_alloc.h> - @ref su_alloc memory management
22 * - <sofia-sip/su.h> - @ref su_socket
23 *   - <sofia-sip/su_localinfo.h> - get list of local IP addresses
24 * - <sofia-sip/su_wait.h> - @ref su_wait
25 * - <sofia-sip/su_time.h> - @ref su_time
26 * - <sofia-sip/su_log.h> - @ref su_log
27 * - <sofia-sip/su_tag.h> - @ref su_tag
28 * - <sofia-sip/su_md5.h> - @ref su_md5
29 * - <sofia-sip/su_uniqueid.h> - @ref su_uniqueid Unique ID and random number generators
30 *
31 * The @b su library also contains some collection datatypes:
32 * - <sofia-sip/htable.h> - @ref su_htable
33 * - <sofia-sip/rbtree.h> - balanced red-black trees
34 * - <sofia-sip/su_strlst.h> - @ref su_strlst list of strings
35 * - <sofia-sip/su_vector.h> - @ref su_vector dynamic arrays of pointers
36 *
37 * There are also some convenience macros for unit test programs:
38 * - sofia-sip/tstdef.h - macros for unit tests
39 *
40 * @author Pekka Pessi <Pekka.Pessi@nokia.com>
41 * @author Jari Selin <Jari.Selin@nokia.com>
42 *
43 * @par SU Debug Log
44 *
45 * The debugging output from @b su module is controlled by #su_log_global
46 * log object. The environment variable #SU_DEBUG sets the default log
47 * level.
48 */
49
50/**@maindefgroup su OS Utilities
51 *
52 * The "su" module contains OS utilies for Sofia.
53 *
54 * The @b su is a simple, portable socket/timing/synchronizing library
55 * developed for Sofia communications software. Currently, interface to
56 * it consists of following parts:
57 *
58 * - <sofia-sip/su_types.h> - basic integer types
59 * - <a href=group_su_socket.html>su_socket</a> - socket functions
60 * - <a href=group_su_wait.html>su_wait</a> - synchronization functions
61 * - <a href=group_su_time.html>su_time</a> - time functions
62 * - <a href=group_su_alloc.html>su_alloc</a> - memory management functions
63 * - <a href=group_su_log.html>su_log</a> - generic logging functions
64 * - <a href=group_su_tag.html>su_tag</a> - tag list function
65 * - <a href=group_su_md5.html>su_md5</a> - MD5 hashing
66 */
67
68/**@defgroup su_programs Shell Programs
69 *
70 * The @b su module provides few shell utilities:
71 * - @ref localinfo (localinfo.c)
72 * - @ref addrinfo (addrinfo.c)
73 */
74
75/**@defgroup su_socket Socket Functions
76 *
77 *  @brief The <sofia-sip/su.h> contains the portable socket functions.
78 *
79 *  The <sofia-sip/su.h> contains following functions, macros, and types:
80 *    - su_init(): initializes sockets
81 *    - su_deinit(): deinitializes sockets
82 *    - su_socket(): creates a socket
83 *    - su_close(): closes a socket
84 *    - su_ioctl(): ioctl to a socket
85 *    - su_setreuseaddr(): set/reset reusing the addresses/ports for a socket
86 *    - su_setblocking(): enables/disables blocking
87 *    - su_is_blocking(): checks if the previous call failed because it
88 *  	would have blocked
89 *    - su_errno(): the latest socket error
90 *    - su_perror(): prints the latest socket error message to stderr
91 *    - su_strerror(): returns the given socket error message
92 *    - su_perror2(): prints the  given socket error message to stderr
93 *    - su_soerror(): returns the error code associated with the socket
94 *    - su_getmsgsize(): return the number of bytes that can be recv()ed from
95 *  	a socket
96 *    - su_getlocalip(): return an IP address belonging to the local host
97 *    - su_send(), su_sendto(): type-compatible send()
98 *    - su_recv(), su_recvfrom(): type-compatible recv()
99 *    - su_vsend(): scatter-gather send
100 *    - su_vrecv(): scatter-gather receive
101 *    - #su_iovec_t: structure holding scatter-gather IO vector
102 */
103
104/**@defgroup su_htable Hash tables
105 *
106 * Hash tables.
107 *
108 * The hash table interface and implementation is defined in
109 * <sofia-sip/htable.h>. Example code and tests for the implementation is in
110 * test_htable.c.
111 */
112