mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-10-26 03:31:43 +01:00 
			
		
		
		
	
		
			
				
	
	
		
			96 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			96 lines
		
	
	
		
			2.3 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.
 | |
| */
 | |
| 
 | |
| #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
 | |
| # ifdef __GNUC__
 | |
| #  define UNUSED_P(p) UNUSED_ ## p __attribute__((__unused__))
 | |
| # else
 | |
| #  define UNUSED_P(p) UNUSED_ ## p
 | |
| # endif
 | |
| #endif
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| extern "C" {
 | |
| #endif
 | |
| 
 | |
| 
 | |
| void
 | |
| align_limit_to_full_utf8_characters(const char * from, const char ** fromLimRef);
 | |
| 
 | |
| 
 | |
| #ifdef __cplusplus
 | |
| }
 | |
| #endif
 |