mirror of
				https://github.com/0xFEEDC0DE64/arduino-esp32.git
				synced 2025-11-04 08:01:38 +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
							 |