mirror of
				https://github.com/esp8266/Arduino.git
				synced 2025-10-31 15:50:55 +03:00 
			
		
		
		
	* Use newlib libc library This change adds libcmin.a, which is created from newlib libc by selectively removing some of the object files (mostly related to heap management). The list of files is available in tools/sdk/lib/make_libcmin.sh. Files which are not needed are commented out. This change adds support for various functions which were missing, like sscanf, strftime, etc. * Fix some of the time functions * Redirect stdout to serial * Implement __putc_r * Switch to custom newlib build Built from https://github.com/igrr/newlib-xtensa using: ./configure --with-newlib --enable-multilib --disable-newlib-io-c99-formats --enable-newlib-supplied-syscalls --enable-target-optspace --program-transform-name="s&^&xtensa-lx106-elf-&" --disable-option-checking --with-target-subdir=xtensa-lx106-elf --target=xtensa-lx106-elf --enable-newlib-nano-formatted-io --enable-newlib-reent-small --prefix=path-to-arduino-core/tools/sdk/libc CROSS_CFLAGS="-DMALLOC_PROVIDED -DSIGNAL_PROVIDED -DABORT_PROVIDED" make make install * Update tests
		
			
				
	
	
		
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
			
		
		
	
	
			65 lines
		
	
	
		
			1.3 KiB
		
	
	
	
		
			C
		
	
	
	
	
	
| /*	$NetBSD: search.h,v 1.12 1999/02/22 10:34:28 christos Exp $	*/
 | |
| /* $FreeBSD: src/include/search.h,v 1.4 2002/03/23 17:24:53 imp Exp $ */
 | |
| 
 | |
| /*
 | |
|  * Written by J.T. Conklin <jtc@netbsd.org>
 | |
|  * Public domain.
 | |
|  */
 | |
| 
 | |
| #ifndef _SEARCH_H_
 | |
| #define _SEARCH_H_
 | |
| 
 | |
| #include <sys/cdefs.h>
 | |
| #include <machine/ansi.h>
 | |
| #include <sys/types.h>
 | |
| 
 | |
| typedef struct entry {
 | |
| 	char *key;
 | |
| 	void *data;
 | |
| } ENTRY;
 | |
| 
 | |
| typedef enum {
 | |
| 	FIND, ENTER
 | |
| } ACTION;
 | |
| 
 | |
| typedef enum {
 | |
| 	preorder,
 | |
| 	postorder,
 | |
| 	endorder,
 | |
| 	leaf
 | |
| } VISIT;
 | |
| 
 | |
| #ifdef _SEARCH_PRIVATE
 | |
| typedef struct node {
 | |
| 	char         *key;
 | |
| 	struct node  *llink, *rlink;
 | |
| } node_t;
 | |
| #endif
 | |
| 
 | |
| struct hsearch_data
 | |
| {
 | |
|   struct internal_head *htable;
 | |
|   size_t htablesize;
 | |
| };
 | |
| 
 | |
| #ifndef __compar_fn_t_defined
 | |
| #define __compar_fn_t_defined
 | |
| typedef int (*__compar_fn_t) (const void *, const void *);
 | |
| #endif
 | |
| 
 | |
| __BEGIN_DECLS
 | |
| int	 hcreate(size_t);
 | |
| void	 hdestroy(void);
 | |
| ENTRY	*hsearch(ENTRY, ACTION);
 | |
| int	 hcreate_r(size_t, struct hsearch_data *);
 | |
| void	 hdestroy_r(struct hsearch_data *);
 | |
| int	hsearch_r(ENTRY, ACTION, ENTRY **, struct hsearch_data *);
 | |
| void	*tdelete(const void *__restrict, void **__restrict, __compar_fn_t);
 | |
| void	tdestroy (void *, void (*)(void *));
 | |
| void	*tfind(const void *, void **, __compar_fn_t);
 | |
| void	*tsearch(const void *, void **, __compar_fn_t);
 | |
| void      twalk(const void *, void (*)(const void *, VISIT, int));
 | |
| __END_DECLS
 | |
| 
 | |
| #endif /* !_SEARCH_H_ */
 |