config_unix.h
上传用户:sun1608
上传日期:2007-02-02
资源大小:6116k
文件大小:5k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

Visual C++

  1. /*
  2.  *  config-unix.h
  3.  *
  4.  *  Unix specific definitions and includes
  5.  *  
  6.  *  $Revision: 1.7 $
  7.  *  $Date: 2002/02/20 00:28:55 $
  8.  *
  9.  * Copyright (c) 1995-2000 University College London
  10.  * All rights reserved.
  11.  *
  12.  * Redistribution and use in source and binary forms, with or without
  13.  * modification, is permitted provided that the following conditions 
  14.  * are met:
  15.  * 1. Redistributions of source code must retain the above copyright
  16.  *    notice, this list of conditions and the following disclaimer.
  17.  * 2. Redistributions in binary form must reproduce the above copyright
  18.  *    notice, this list of conditions and the following disclaimer in the
  19.  *    documentation and/or other materials provided with the distribution.
  20.  * 3. All advertising materials mentioning features or use of this software
  21.  *    must display the following acknowledgement:
  22.  *      This product includes software developed by the Computer Science
  23.  *      Department at University College London
  24.  * 4. Neither the name of the University nor of the Department may be used
  25.  *    to endorse or promote products derived from this software without
  26.  *    specific prior written permission.
  27.  * THIS SOFTWARE IS PROVIDED BY THE AUTHORS AND CONTRIBUTORS ``AS IS'' AND
  28.  * ANY EXPRESSED OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
  29.  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
  30.  * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE
  31.  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
  32.  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
  33.  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
  34.  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
  35.  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
  36.  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
  37.  * SUCH DAMAGE.
  38.  */
  39. #ifndef WIN32
  40. #ifndef _CONFIG_UNIX_H
  41. #define _CONFIG_UNIX_H
  42. #undef VERSION
  43. #undef PACKAGE
  44. #include "uclconf.h"
  45. #undef VERSION
  46. #undef PACKAGE
  47. #include "../../include/win32_ver.h"
  48. #include <limits.h>
  49. #include <sys/types.h>
  50. #if TIME_WITH_SYS_TIME
  51. #include <sys/time.h>
  52. #include <time.h>
  53. #else
  54. #if HAVE_SYS_TIME_H
  55. #include <sys/time.h>
  56. #else
  57. #include <time.h>
  58. #endif
  59. #endif
  60. #include <sys/resource.h>
  61. #include <pwd.h>
  62. #include <signal.h>
  63. #include <ctype.h>
  64. #include <stdio.h>
  65. #include <stdarg.h>
  66. #include <memory.h>
  67. #include <errno.h>
  68. #include <math.h>
  69. #include <stdlib.h>   /* abs() */
  70. #include <string.h>
  71. #include <fcntl.h>
  72. #include <sys/types.h>
  73. #include <sys/socket.h>
  74. #include <sys/stat.h>
  75. #include <sys/uio.h>
  76. #include <netinet/in.h>
  77. #include <unistd.h>
  78. #include <sys/param.h>
  79. #include <sys/fcntl.h>
  80. #include <sys/ioctl.h>
  81. #include <netdb.h>
  82. #include <arpa/inet.h>
  83. #include <syslog.h>
  84. #ifdef __APPLE__
  85. #define NEED_DRAND48
  86. #define srand48 srand
  87. #define lrand48 rand() * rand
  88. #endif
  89. #ifdef HAVE_SYS_WAIT_H
  90. #include <sys/wait.h>
  91. #endif
  92. #ifndef WEXITSTATUS
  93. #define WEXITSTATUS(stat_val) ((unsigned)(stat_val) >> 8)
  94. #endif
  95. #ifndef WIFEXITED
  96. #define WIFEXITED(stat_val) (((stat_val) & 255) == 0)
  97. #endif
  98. #ifdef HAVE_STDINT_H
  99. #include <stdint.h>
  100. #endif
  101. #ifdef HAVE_INTTYPES_H
  102. #include <inttypes.h>
  103. #endif
  104. #ifdef HAVE_STROPTS_H
  105. #include <stropts.h>
  106. #endif /* HAVE_STROPTS_H */
  107. #ifdef HAVE_SYS_FILIO_H
  108. #include <sys/filio.h>  
  109. #endif /* HAVE_SYS_FILIO_H */
  110. #ifdef HAVE_IPv6
  111. #ifdef HAVE_NETINET6_IN6_H
  112. /* Expect IPV6_{JOIN,LEAVE}_GROUP in in6.h, otherwise expect                 */
  113. /* IPV_{ADD,DROP}_MEMBERSHIP in in.h                                         */
  114. #include <netinet6/in6.h>
  115. #else
  116. #include <netinet/in.h>
  117. #endif /* HAVE_NETINET_IN6_H */
  118. #ifndef IPV6_ADD_MEMBERSHIP
  119. #ifdef  IPV6_JOIN_GROUP
  120. #define IPV6_ADD_MEMBERSHIP IPV6_JOIN_GROUP
  121. #else
  122. #error  No definition of IPV6_ADD_MEMBERSHIP, please report to mm-tools@cs.ucl.ac.uk.
  123. #endif /* IPV6_JOIN_GROUP     */
  124. #endif /* IPV6_ADD_MEMBERSHIP */
  125. #ifndef IPV6_DROP_MEMBERSHIP
  126. #ifdef  IPV6_LEAVE_GROUP
  127. #define IPV6_DROP_MEMBERSHIP IPV6_LEAVE_GROUP
  128. #else
  129. #error  No definition of IPV6_LEAVE_GROUP, please report to mm-tools@cs.ucl.ac.uk.
  130. #endif  /* IPV6_LEAVE_GROUP     */
  131. #endif  /* IPV6_DROP_MEMBERSHIP */
  132. #endif /* HAVE_IPv6 */
  133. #include <net/if.h>
  134. typedef u_char ttl_t;
  135. typedef int fd_t;
  136. #ifndef FALSE
  137. #define FALSE 0
  138. #endif
  139. #ifndef TRUE
  140. #define TRUE 1
  141. #endif /* TRUE */
  142. #define USERNAMELEN 8
  143. #ifndef max
  144. #define max(a, b) (((a) > (b))? (a): (b))
  145. #endif
  146. #ifndef min
  147. #define min(a, b) (((a) < (b))? (a): (b))
  148. #endif
  149. #if 1
  150. #define ASSERT(x) if ((x) == 0) fprintf(stderr, "%s:%u: failed assertionn", __FILE__, __LINE__)
  151. #else
  152. #include <assert.h>
  153. #define ASSERT assert
  154. #endif
  155. #ifdef Solaris
  156. #ifdef __cplusplus
  157. extern "C" {
  158. #endif
  159. int gettimeofday(struct timeval *tp, void * );
  160. int gethostname(char *name, int namelen);
  161. #ifdef __cplusplus
  162. }
  163. #endif
  164. #endif
  165. #ifndef EXIT_SUCCESS
  166. #define EXIT_SUCCESS 0
  167. #endif /* EXIT_SUCCESS */
  168. #ifndef EXIT_FAILURE
  169. #define EXIT_FAILURE 7
  170. #endif /* EXIT_FAILURE */
  171. #endif /* _CONFIG_UNIX_H_ */
  172. #endif /* WIN32 */