gonzui


Format: Advanced Search

t2ex/bsd_source/lib/libc/src_bsd/include/stdlib.hbare sourcepermlink (0.04 seconds)

Search this content:

    1: /*      $OpenBSD: stdlib.h,v 1.49 2011/07/03 18:51:01 jsg Exp $      */
    2: /*      $NetBSD: stdlib.h,v 1.25 1995/12/27 21:19:08 jtc Exp $       */
    3: 
    4: /*-
    5:  * Copyright (c) 1990 The Regents of the University of California.
    6:  * All rights reserved.
    7:  *
    8:  * Redistribution and use in source and binary forms, with or without
    9:  * modification, are permitted provided that the following conditions
   10:  * are met:
   11:  * 1. Redistributions of source code must retain the above copyright
   12:  *    notice, this list of conditions and the following disclaimer.
   13:  * 2. Redistributions in binary form must reproduce the above copyright
   14:  *    notice, this list of conditions and the following disclaimer in the
   15:  *    documentation and/or other materials provided with the distribution.
   16:  * 3. Neither the name of the University nor the names of its contributors
   17:  *    may be used to endorse or promote products derived from this software
   18:  *    without specific prior written permission.
   19:  *
   20:  * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
   21:  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
   22:  * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
   23:  * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
   24:  * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
   25:  * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
   26:  * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
   27:  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
   28:  * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
   29:  * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
   30:  * SUCH DAMAGE.
   31:  *
   32:  *      @(#)stdlib.h 5.13 (Berkeley) 6/4/91
   33:  */
   34: 
   35: #ifndef _STDLIB_H_
   36: #define _STDLIB_H_
   37: 
   38: #include <sys/cdefs.h>
   39: #include <machine/_types.h>
   40: #if __BSD_VISIBLE       /* for quad_t, etc. (XXX - use protected types) */
   41: #include <sys/types.h>
   42: #endif
   43: 
   44: #ifndef _SIZE_T_DEFINED_
   45: #define _SIZE_T_DEFINED_
   46: typedef __size_t        size_t;
   47: #endif
   48: 
   49: /* in C++, wchar_t is a built-in type */
   50: #if !defined(_WCHAR_T_DEFINED_) && !defined(__cplusplus)
   51: #define _WCHAR_T_DEFINED_
   52: typedef __wchar_t       wchar_t;
   53: #endif
   54: 
   55: typedef struct {
   56:         int quot;              /* quotient */
   57:         int rem;               /* remainder */
   58: } div_t;
   59: 
   60: typedef struct {
   61:         long quot;             /* quotient */
   62:         long rem;              /* remainder */
   63: } ldiv_t;
   64: 
   65: #if __ISO_C_VISIBLE >= 1999
   66: typedef struct {
   67:         long long quot;                /* quotient */
   68:         long long rem;         /* remainder */
   69: } lldiv_t;
   70: #endif
   71: 
   72: #if __BSD_VISIBLE
   73: typedef struct {
   74:         quad_t quot;           /* quotient */
   75:         quad_t rem;            /* remainder */
   76: } qdiv_t;
   77: #endif
   78: 
   79: 
   80: #ifndef NULL
   81: #ifdef  __GNUG__
   82: #define NULL    __null
   83: #elif defined(__cplusplus)
   84: #define NULL    0L
   85: #else
   86: #define NULL    ((void *)0)
   87: #endif
   88: #endif
   89: 
   90: #define EXIT_FAILURE    1
   91: #define EXIT_SUCCESS    0
   92: 
   93: #define RAND_MAX        0x7fffffff
   94: 
   95: extern size_t   __mb_cur_max;
   96: #define MB_CUR_MAX      __mb_cur_max
   97: 
   98: #include <sys/cdefs.h>
   99: 
  100: /*
  101:  * Some header files may define an abs macro.
  102:  * If defined, undef it to prevent a syntax error and issue a warning.
  103:  */
  104: #ifdef abs
  105: #undef abs
  106: #warning abs macro collides with abs() prototype, undefining
  107: #endif
  108: 
  109: __BEGIN_DECLS
  110: /*__dead*/ void  abort(void);
  111: int      abs(int);
  112: int      atexit(void (*)(void));
  113: double   atof(const char *);
  114: int      atoi(const char *);
  115: long     atol(const char *);
  116: void    *bsearch(const void *, const void *, size_t, size_t,
  117:             int (*)(const void *, const void *));
  118: void    *calloc(size_t, size_t);
  119: div_t    div(int, int);
  120: char    *ecvt(double, int, int *, int *);
  121: /*__dead*/ void  exit(int);
  122: /*__dead*/ void  _Exit(int);
  123: char    *fcvt(double, int, int *, int *);
  124: void     free(void *);
  125: char    *gcvt(double, int, char *);
  126: char    *getenv(const char *);
  127: long     labs(long);
  128: ldiv_t   ldiv(long, long);
  129: void    *malloc(size_t);
  130: int      posix_memalign(void **, size_t, size_t);
  131: void     qsort(void *, size_t, size_t, int (*)(const void *, const void *));
  132: int      rand(void);
  133: void    *realloc(void *, size_t);
  134: void     srand(unsigned);
  135: double   strtod(const char *, char **);
  136: float    strtof(const char *, char **);
  137: long     strtol(const char *, char **, int);
  138: long double
  139:          strtold(const char *, char **);
  140: unsigned long
  141:          strtoul(const char *, char **, int);
  142: int      system(const char *);
  143: 
  144: /* these are currently just stubs */
  145: int      mblen(const char *, size_t);
  146: size_t   mbstowcs(wchar_t *, const char *, size_t);
  147: int      wctomb(char *, wchar_t);
  148: int      mbtowc(wchar_t *, const char *, size_t);
  149: size_t   wcstombs(char *, const wchar_t *, size_t);
  150: 
  151: /*
  152:  * IEEE Std 1003.1c-95, also adopted by X/Open CAE Spec Issue 5 Version 2
  153:  */
  154: #if __BSD_VISIBLE || __POSIX_VISIBLE >= 199506 || __XPG_VISIBLE >= 500 || \
  155:         defined(_REENTRANT)
  156: int      rand_r(unsigned int *);
  157: #endif
  158: 
  159: #if __BSD_VISIBLE || __XPG_VISIBLE >= 400
  160: double   drand48(void);
  161: double   erand48(unsigned short[3]);
  162: long     jrand48(unsigned short[3]);
  163: void     lcong48(unsigned short[7]);
  164: long     lrand48(void);
  165: long     mrand48(void);
  166: long     nrand48(unsigned short[3]);
  167: unsigned short *seed48(unsigned short[3]);
  168: void     srand48(long);
  169: 
  170: int      putenv(char *);
  171: #endif
  172: 
  173: #if __BSD_VISIBLE || __XPG_VISIBLE >= 420
  174: long     a64l(const char *);
  175: char    *l64a(long);
  176: 
  177: char    *initstate(unsigned int, char *, size_t)
  178:                 /*__attribute__((__bounded__ (__string__,2,3)))*/;
  179: long     random(void);
  180: char    *setstate(const char *);
  181: void     srandom(unsigned int);
  182: 
  183: int      mkstemp(char *);
  184: char    *mktemp(char *);
  185: 
  186: char    *realpath(const char *, char *);
  187: 
  188: int      setkey(const char *);
  189: 
  190: int      ttyslot(void);
  191: 
  192: void    *valloc(size_t);           /* obsoleted by malloc() */
  193: #endif /* __BSD_VISIBLE || __XPG_VISIBLE >= 420 */
  194: 
  195: /*
  196:  * ISO C99
  197:  */
  198: #if __ISO_C_VISIBLE >= 1999
  199: long long
  200:          atoll(const char *);
  201: long long
  202:          llabs(long long);
  203: lldiv_t
  204:          lldiv(long long, long long);
  205: long long
  206:          strtoll(const char *, char **, int);
  207: unsigned long long
  208:          strtoull(const char *, char **, int);
  209: #endif
  210: 
  211: /*
  212:  * The Open Group Base Specifications, Issue 6; IEEE Std 1003.1-2001 (POSIX)
  213:  */
  214: #if __BSD_VISIBLE || __POSIX_VISIBLE >= 200112 || __XPG_VISIBLE >= 600
  215: int      setenv(const char *, const char *, int);
  216: int      unsetenv(const char *);
  217: #endif
  218: 
  219: #if __BSD_VISIBLE
  220: void    *alloca(size_t); 
  221: 
  222: char    *getbsize(int *, long *);
  223: char    *cgetcap(char *, const char *, int);
  224: int      cgetclose(void);
  225: int      cgetent(char **, char **, const char *);
  226: int      cgetfirst(char **, char **);
  227: int      cgetmatch(char *, const char *);
  228: int      cgetnext(char **, char **);
  229: int      cgetnum(char *, const char *, long *);
  230: int      cgetset(const char *);
  231: int      cgetusedb(int);
  232: int      cgetstr(char *, const char *, char **);
  233: int      cgetustr(char *, const char *, char **);
  234: 
  235: int      daemon(int, int);
  236: char    *devname(int, mode_t);
  237: int      getloadavg(double [], int);
  238: 
  239: void     cfree(void *);
  240: 
  241: #ifndef _GETOPT_DEFINED_
  242: #define _GETOPT_DEFINED_
  243: int      getopt(int, char * const *, const char *);
  244: extern   char *optarg;                   /* getopt(3) external variables */
  245: extern   int opterr, optind, optopt, optreset;
  246: int      getsubopt(char **, char * const *, char **);
  247: extern   char *suboptarg;                /* getsubopt(3) external variable */
  248: #endif /* _GETOPT_DEFINED_ */
  249: 
  250: char    *mkdtemp(char *);
  251: int      mkstemps(char *, int);
  252: 
  253: int      heapsort(void *, size_t, size_t, int (*)(const void *, const void *));
  254: int      mergesort(void *, size_t, size_t, int (*)(const void *, const void *));
  255: int      radixsort(const unsigned char **, int, const unsigned char *,
  256:             unsigned);
  257: int      sradixsort(const unsigned char **, int, const unsigned char *,
  258:             unsigned);
  259: 
  260: void     srandomdev(void);
  261: long long
  262:          strtonum(const char *, long long, long long, const char **);
  263: 
  264: void     setproctitle(const char *, ...)
  265:         __attribute__((__format__ (__printf__, 1, 2)));
  266: 
  267: quad_t   qabs(quad_t);
  268: qdiv_t   qdiv(quad_t, quad_t);
  269: quad_t   strtoq(const char *, char **, int);
  270: u_quad_t strtouq(const char *, char **, int);
  271: 
  272: u_int32_t arc4random(void);
  273: void    arc4random_stir(void);
  274: void    arc4random_addrandom(unsigned char *, int)
  275:         /*__attribute__((__bounded__ (__string__,1,2)))*/;
  276: u_int32_t arc4random_uniform(u_int32_t);
  277: void arc4random_buf(void *, size_t)
  278:         /*__attribute__((__bounded__ (__string__,1,2)))*/;
  279: 
  280: #endif /* __BSD_VISIBLE */
  281: 
  282: __END_DECLS
  283: 
  284: #endif /* _STDLIB_H_ */