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