OpenCores
URL https://opencores.org/ocsvn/openrisc_2011-10-31/openrisc_2011-10-31/trunk

Subversion Repositories openrisc_2011-10-31

[/] [openrisc/] [tags/] [gnu-src/] [newlib-1.18.0/] [newlib-1.18.0-or32-1.0rc1/] [newlib/] [doc/] [ansidecl.h] - Diff between revs 207 and 345

Only display areas with differences | Details | Blame | View Log

Rev 207 Rev 345
/* ANSI and traditional C compatability macros
/* ANSI and traditional C compatability macros
   Copyright 1991 Free Software Foundation, Inc.
   Copyright 1991 Free Software Foundation, Inc.
   This file is part of the GNU C Library.
   This file is part of the GNU C Library.
 
 
This program is free software; you can redistribute it and/or modify
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
(at your option) any later version.
 
 
This program is distributed in the hope that it will be useful,
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
GNU General Public License for more details.
GNU General Public License for more details.
 
 
You should have received a copy of the GNU General Public License
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.  */
 
 
/* ANSI and traditional C compatibility macros
/* ANSI and traditional C compatibility macros
 
 
   Some ANSI environments are "broken" in the sense that __STDC__ cannot be
   Some ANSI environments are "broken" in the sense that __STDC__ cannot be
   relied upon to have it's intended meaning.  Therefore we must use our own
   relied upon to have it's intended meaning.  Therefore we must use our own
   concoction: _HAVE_STDC.  Always use _HAVE_STDC instead of __STDC__ in newlib
   concoction: _HAVE_STDC.  Always use _HAVE_STDC instead of __STDC__ in newlib
   sources!
   sources!
 
 
   ANSI C is assumed if _HAVE_STDC is #defined.
   ANSI C is assumed if _HAVE_STDC is #defined.
 
 
   Macro        ANSI C definition       Traditional C definition
   Macro        ANSI C definition       Traditional C definition
   -----        ---- - ----------       ----------- - ----------
   -----        ---- - ----------       ----------- - ----------
   PTR          `void *'                `char *'
   PTR          `void *'                `char *'
   LONG_DOUBLE  `long double'           `double'
   LONG_DOUBLE  `long double'           `double'
   CONST        `const'                 `'
   CONST        `const'                 `'
   VOLATILE     `volatile'              `'
   VOLATILE     `volatile'              `'
   SIGNED       `signed'                `'
   SIGNED       `signed'                `'
   PTRCONST     `void *const'           `char *'
   PTRCONST     `void *const'           `char *'
 
 
   DEFUN(name, arglist, args)
   DEFUN(name, arglist, args)
 
 
        Defines function NAME.
        Defines function NAME.
 
 
        ARGLIST lists the arguments, separated by commas and enclosed in
        ARGLIST lists the arguments, separated by commas and enclosed in
        parentheses.  ARGLIST becomes the argument list in traditional C.
        parentheses.  ARGLIST becomes the argument list in traditional C.
 
 
        ARGS list the arguments with their types.  It becomes a prototype in
        ARGS list the arguments with their types.  It becomes a prototype in
        ANSI C, and the type declarations in traditional C.  Arguments should
        ANSI C, and the type declarations in traditional C.  Arguments should
        be separated with `AND'.  For functions with a variable number of
        be separated with `AND'.  For functions with a variable number of
        arguments, the last thing listed should be `DOTS'.
        arguments, the last thing listed should be `DOTS'.
 
 
   DEFUN_VOID(name)
   DEFUN_VOID(name)
 
 
        Defines a function NAME, which takes no arguments.
        Defines a function NAME, which takes no arguments.
 
 
   EXFUN(name, prototype)
   EXFUN(name, prototype)
 
 
        Is used in an external function declaration.
        Is used in an external function declaration.
        In ANSI C it is `NAMEPROTOTYPE' (so PROTOTYPE should be enclosed in
        In ANSI C it is `NAMEPROTOTYPE' (so PROTOTYPE should be enclosed in
        parentheses).  In traditional C it is `NAME()'.
        parentheses).  In traditional C it is `NAME()'.
        For a function that takes no arguments, PROTOTYPE should be `(NOARGS)'.
        For a function that takes no arguments, PROTOTYPE should be `(NOARGS)'.
 
 
    For example:
    For example:
        extern int EXFUN(printf, (CONST char *format DOTS));
        extern int EXFUN(printf, (CONST char *format DOTS));
        int DEFUN(fprintf, (stream, format),
        int DEFUN(fprintf, (stream, format),
                  FILE *stream AND CONST char *format DOTS) { ... }
                  FILE *stream AND CONST char *format DOTS) { ... }
        void DEFUN_VOID(abort) { ... }
        void DEFUN_VOID(abort) { ... }
*/
*/
 
 
#ifndef _ANSIDECL_H
#ifndef _ANSIDECL_H
 
 
#define _ANSIDECL_H     1
#define _ANSIDECL_H     1
 
 
 
 
/* Every source file includes this file,
/* Every source file includes this file,
   so they will all get the switch for lint.  */
   so they will all get the switch for lint.  */
/* LINTLIBRARY */
/* LINTLIBRARY */
 
 
 
 
#ifdef  _HAVE_STDC
#ifdef  _HAVE_STDC
 
 
#define PTR             void *
#define PTR             void *
#define PTRCONST        void *CONST
#define PTRCONST        void *CONST
#define LONG_DOUBLE     long double
#define LONG_DOUBLE     long double
 
 
#define AND             ,
#define AND             ,
#define NOARGS          void
#define NOARGS          void
#define CONST           const
#define CONST           const
#define VOLATILE        volatile
#define VOLATILE        volatile
#define SIGNED          signed
#define SIGNED          signed
#define DOTS            , ...
#define DOTS            , ...
 
 
#define EXFUN(name, proto)              name proto
#define EXFUN(name, proto)              name proto
#define DEFUN(name, arglist, args)      name(args)
#define DEFUN(name, arglist, args)      name(args)
#define DEFUN_VOID(name)                name(NOARGS)
#define DEFUN_VOID(name)                name(NOARGS)
 
 
#else   /* Not ANSI C.  */
#else   /* Not ANSI C.  */
 
 
#define PTR             char *
#define PTR             char *
#define PTRCONST        PTR
#define PTRCONST        PTR
#define LONG_DOUBLE     double
#define LONG_DOUBLE     double
 
 
#define AND             ;
#define AND             ;
#define NOARGS
#define NOARGS
#define CONST
#define CONST
#define VOLATILE
#define VOLATILE
#define SIGNED
#define SIGNED
#define DOTS
#define DOTS
 
 
#define const
#define const
 
 
#define EXFUN(name, proto)              name()
#define EXFUN(name, proto)              name()
#define DEFUN(name, arglist, args)      name arglist args;
#define DEFUN(name, arglist, args)      name arglist args;
#define DEFUN_VOID(name)                name()
#define DEFUN_VOID(name)                name()
 
 
#endif  /* ANSI C.  */
#endif  /* ANSI C.  */
 
 
 
 
#endif  /* ansidecl.h   */
#endif  /* ansidecl.h   */
 
 

powered by: WebSVN 2.1.0

© copyright 1999-2024 OpenCores.org, equivalent to Oliscience, all rights reserved. OpenCores®, registered trademark.