124 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			124 lines
		
	
	
		
			3.9 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /* internal.h
 | |
| 
 | |
|    Internal definitions used by Expat.  This is not needed to compile
 | |
|    client code.
 | |
| 
 | |
|    The following calling convention macros are defined for frequently
 | |
|    called functions:
 | |
| 
 | |
|    FASTCALL    - Used for those internal functions that have a simple
 | |
|                  body and a low number of arguments and local variables.
 | |
| 
 | |
|    PTRCALL     - Used for functions called though function pointers.
 | |
| 
 | |
|    PTRFASTCALL - Like PTRCALL, but for low number of arguments.
 | |
| 
 | |
|    inline      - Used for selected internal functions for which inlining
 | |
|                  may improve performance on some platforms.
 | |
| 
 | |
|    Note: Use of these macros is based on judgement, not hard rules,
 | |
|          and therefore subject to change.
 | |
|                             __  __            _
 | |
|                          ___\ \/ /_ __   __ _| |_
 | |
|                         / _ \\  /| '_ \ / _` | __|
 | |
|                        |  __//  \| |_) | (_| | |_
 | |
|                         \___/_/\_\ .__/ \__,_|\__|
 | |
|                                  |_| XML parser
 | |
| 
 | |
|    Copyright (c) 1997-2000 Thai Open Source Software Center Ltd
 | |
|    Copyright (c) 2000-2017 Expat development team
 | |
|    Licensed under the MIT license:
 | |
| 
 | |
|    Permission is  hereby granted,  free of charge,  to any  person obtaining
 | |
|    a  copy  of  this  software   and  associated  documentation  files  (the
 | |
|    "Software"),  to  deal in  the  Software  without restriction,  including
 | |
|    without  limitation the  rights  to use,  copy,  modify, merge,  publish,
 | |
|    distribute, sublicense, and/or sell copies of the Software, and to permit
 | |
|    persons  to whom  the Software  is  furnished to  do so,  subject to  the
 | |
|    following conditions:
 | |
| 
 | |
|    The above copyright  notice and this permission notice  shall be included
 | |
|    in all copies or substantial portions of the Software.
 | |
| 
 | |
|    THE  SOFTWARE  IS  PROVIDED  "AS  IS",  WITHOUT  WARRANTY  OF  ANY  KIND,
 | |
|    EXPRESS  OR IMPLIED,  INCLUDING  BUT  NOT LIMITED  TO  THE WARRANTIES  OF
 | |
|    MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN
 | |
|    NO EVENT SHALL THE AUTHORS OR  COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM,
 | |
|    DAMAGES OR  OTHER LIABILITY, WHETHER  IN AN  ACTION OF CONTRACT,  TORT OR
 | |
|    OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE
 | |
|    USE OR OTHER DEALINGS IN THE SOFTWARE.
 | |
| */
 | |
| 
 | |
| #if defined(__GNUC__) && defined(__i386__) && ! defined(__MINGW32__)
 | |
| /* We'll use this version by default only where we know it helps.
 | |
| 
 | |
|    regparm() generates warnings on Solaris boxes.   See SF bug #692878.
 | |
| 
 | |
|    Instability reported with egcs on a RedHat Linux 7.3.
 | |
|    Let's comment out:
 | |
|    #define FASTCALL __attribute__((stdcall, regparm(3)))
 | |
|    and let's try this:
 | |
| */
 | |
| #  define FASTCALL __attribute__((regparm(3)))
 | |
| #  define PTRFASTCALL __attribute__((regparm(3)))
 | |
| #endif
 | |
| 
 | |
| /* Using __fastcall seems to have an unexpected negative effect under
 | |
|    MS VC++, especially for function pointers, so we won't use it for
 | |
|    now on that platform. It may be reconsidered for a future release
 | |
|    if it can be made more effective.
 | |
|    Likely reason: __fastcall on Windows is like stdcall, therefore
 | |
|    the compiler cannot perform stack optimizations for call clusters.
 | |
| */
 | |
| 
 | |
| /* Make sure all of these are defined if they aren't already. */
 | |
| 
 | |
| #ifndef FASTCALL
 | |
| #  define FASTCALL
 | |
| #endif
 | |
| 
 | |
| #ifndef PTRCALL
 | |
| #  define PTRCALL
 | |
| #endif
 | |
| 
 | |
| #ifndef PTRFASTCALL
 | |
| #  define PTRFASTCALL
 | |
| #endif
 | |
| 
 | |
| #ifndef XML_MIN_SIZE
 | |
| #  if ! defined(__cplusplus) && ! defined(inline)
 | |
| #    ifdef __GNUC__
 | |
| #      define inline __inline
 | |
| #    endif /* __GNUC__ */
 | |
| #  endif
 | |
| #endif /* XML_MIN_SIZE */
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| #  define inline inline
 | |
| #else
 | |
| #  ifndef inline
 | |
| #    define inline
 | |
| #  endif
 | |
| #endif
 | |
| 
 | |
| #ifndef UNUSED_P
 | |
| #  define UNUSED_P(p) (void)p
 | |
| #endif
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| #ifdef XML_ENABLE_VISIBILITY
 | |
| #  if XML_ENABLE_VISIBILITY
 | |
| __attribute__((visibility("default")))
 | |
| #  endif
 | |
| #endif
 | |
| void
 | |
| _INTERNAL_trim_to_complete_utf8_characters(const char *from,
 | |
|                                            const char **fromLimRef);
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 |