29 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
			
		
		
	
	
			29 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			C
		
	
	
	
| #include <reent.h>
 | |
| 
 | |
| /* Note that there is a copy of this in sys/reent.h.  */
 | |
| #ifndef __ATTRIBUTE_IMPURE_PTR__
 | |
| #define __ATTRIBUTE_IMPURE_PTR__
 | |
| #endif
 | |
| 
 | |
| #ifndef __ATTRIBUTE_IMPURE_DATA__
 | |
| #define __ATTRIBUTE_IMPURE_DATA__
 | |
| #endif
 | |
| 
 | |
| /* Redeclare these symbols locally as weak so that the file containing
 | |
|    their definitions (along with a lot of other stuff) isn't sucked in
 | |
|    unless they are actually used by other compilation units.  This is
 | |
|    important to reduce image size for targets with very small amounts
 | |
|    of memory.  */
 | |
| #ifdef _REENT_SMALL
 | |
| extern const struct __sFILE_fake __sf_fake_stdin _ATTRIBUTE ((weak));
 | |
| extern const struct __sFILE_fake __sf_fake_stdout _ATTRIBUTE ((weak));
 | |
| extern const struct __sFILE_fake __sf_fake_stderr _ATTRIBUTE ((weak));
 | |
| #endif
 | |
| 
 | |
| static struct _reent __ATTRIBUTE_IMPURE_DATA__ impure_data = _REENT_INIT (impure_data);
 | |
| #ifdef __CYGWIN__
 | |
| extern struct _reent reent_data __attribute__ ((alias("impure_data")));
 | |
| #endif
 | |
| struct _reent *__ATTRIBUTE_IMPURE_PTR__ _impure_ptr = &impure_data;
 | |
| struct _reent *_CONST __ATTRIBUTE_IMPURE_PTR__ _global_impure_ptr = &impure_data;
 |