Add _REENT_IS_NULL()
In a follow up patch, struct _reent is optionally replaced by dedicated thread-local objects. In this case,_REENT is optionally defined to NULL. Add the _REENT_IS_NULL() macro to disable this check on demand.
This commit is contained in:
		
							parent
							
								
									db2123caf8
								
							
						
					
					
						commit
						1a09082036
					
				|  | @ -763,6 +763,8 @@ extern struct _reent _impure_data __ATTRIBUTE_IMPURE_DATA__; | |||
| # define _REENT _impure_ptr | ||||
| #endif /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */ | ||||
| 
 | ||||
| #define _REENT_IS_NULL(_ptr) ((_ptr) == NULL) | ||||
| 
 | ||||
| #define _GLOBAL_REENT (&_impure_data) | ||||
| 
 | ||||
| /* This value is used in stdlib/misc.c.  reent/reent.c has to know it
 | ||||
|  |  | |||
|  | @ -104,6 +104,12 @@ FILE  *__sfp (struct _reent *); | |||
| #define __sfp_free(fp) ( (fp)->_fp = 0 ) | ||||
| 
 | ||||
| #define CHECK_INIT(ptr) \ | ||||
|   do { if ((ptr) && !_REENT_CLEANUP(ptr)) __sinit (ptr); } while (0) | ||||
|   do						\ | ||||
|     {						\ | ||||
|       if (!_REENT_IS_NULL(ptr) &&		\ | ||||
| 	  !_REENT_CLEANUP(ptr))			\ | ||||
| 	__sinit (ptr);				\ | ||||
|     }						\ | ||||
|   while (0) | ||||
| #define CHECK_STR_INIT(ptr) /* currently, do nothing */ | ||||
| #endif /* __ASSEMBLER__ */ | ||||
|  |  | |||
|  | @ -197,7 +197,8 @@ extern _READ_WRITE_RETURN_TYPE __swrite64 (struct _reent *, void *, | |||
|   do								\ | ||||
|     {								\ | ||||
|       struct _reent *_check_init_ptr = (ptr);			\ | ||||
|       if ((_check_init_ptr) && !_REENT_CLEANUP(_check_init_ptr))\ | ||||
|       if (!_REENT_IS_NULL(_check_init_ptr) &&			\ | ||||
| 	  !_REENT_CLEANUP(_check_init_ptr))			\ | ||||
| 	__sinit (_check_init_ptr);				\ | ||||
|     }								\ | ||||
|   while (0) | ||||
|  |  | |||
|  | @ -60,7 +60,8 @@ extern void   __sinit (struct _reent *); | |||
| #define CHECK_INIT(ptr) \ | ||||
|   do						\ | ||||
|     {						\ | ||||
|       if ((ptr) && !_REENT_CLEANUP(ptr))	\ | ||||
|       if (!_REENT_IS_NULL(ptr) &&		\ | ||||
| 	  !_REENT_CLEANUP(ptr))			\ | ||||
| 	__sinit (ptr);				\ | ||||
|     }						\ | ||||
|   while (0) | ||||
|  |  | |||
		Loading…
	
		Reference in New Issue