mirror of
				https://github.com/esp8266/Arduino.git
				synced 2025-11-03 14:33:37 +03:00 
			
		
		
		
	Use libc from newlib (#1752)
* 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
This commit is contained in:
		@@ -6,6 +6,27 @@
 | 
				
			|||||||
#include <stdlib.h>
 | 
					#include <stdlib.h>
 | 
				
			||||||
#include "umm_malloc/umm_malloc.h"
 | 
					#include "umm_malloc/umm_malloc.h"
 | 
				
			||||||
#include <c_types.h>
 | 
					#include <c_types.h>
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void* _malloc_r(struct _reent* unused, size_t size)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return malloc(size);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void _free_r(struct _reent* unused, void* ptr)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return free(ptr);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void* _realloc_r(struct _reent* unused, void* ptr, size_t size)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return realloc(ptr, size);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void* _calloc_r(struct _reent* unused, size_t count, size_t size)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    return calloc(count, size);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
void* ICACHE_RAM_ATTR pvPortMalloc(size_t size, const char* file, int line)
 | 
					void* ICACHE_RAM_ATTR pvPortMalloc(size_t size, const char* file, int line)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -32,6 +32,11 @@
 | 
				
			|||||||
#include <errno.h>
 | 
					#include <errno.h>
 | 
				
			||||||
#include <string.h>
 | 
					#include <string.h>
 | 
				
			||||||
#include <time.h>
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/stat.h>
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include "ets_sys.h"
 | 
					#include "ets_sys.h"
 | 
				
			||||||
#include "os_type.h"
 | 
					#include "os_type.h"
 | 
				
			||||||
@@ -40,17 +45,78 @@
 | 
				
			|||||||
#include "user_interface.h"
 | 
					#include "user_interface.h"
 | 
				
			||||||
#include "debug.h"
 | 
					#include "debug.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ICACHE_RAM_ATTR _open_r (struct _reent* unused, const char *ptr, int mode) {
 | 
				
			||||||
 | 
					    (void)unused;
 | 
				
			||||||
 | 
					    (void)ptr;
 | 
				
			||||||
 | 
					    (void)mode;
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ICACHE_RAM_ATTR _close_r(struct _reent* unused, int file) {
 | 
				
			||||||
 | 
					    (void)unused;
 | 
				
			||||||
 | 
					    (void)file;
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ICACHE_RAM_ATTR _fstat_r(struct _reent* unused, int file, struct stat *st) {
 | 
				
			||||||
 | 
					    (void)unused;
 | 
				
			||||||
 | 
					    (void)file;
 | 
				
			||||||
 | 
					    st->st_mode = S_IFCHR;
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ICACHE_RAM_ATTR _lseek_r(struct _reent* unused, int file, int ptr, int dir) {
 | 
				
			||||||
 | 
					    (void)unused;
 | 
				
			||||||
 | 
					    (void)file;
 | 
				
			||||||
 | 
					    (void)ptr;
 | 
				
			||||||
 | 
					    (void)dir;
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ICACHE_RAM_ATTR _read_r(struct _reent* unused, int file, char *ptr, int len) {
 | 
				
			||||||
 | 
					    (void)unused;
 | 
				
			||||||
 | 
					    (void)file;
 | 
				
			||||||
 | 
					    (void)ptr;
 | 
				
			||||||
 | 
					    (void)len;
 | 
				
			||||||
 | 
					    return 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ICACHE_RAM_ATTR _write_r(struct _reent* r, int file, char *ptr, int len) {
 | 
				
			||||||
 | 
					    if (file == STDOUT_FILENO) {
 | 
				
			||||||
 | 
					        while(len--) {
 | 
				
			||||||
 | 
					            ets_putc(*ptr);
 | 
				
			||||||
 | 
					            ++ptr;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return len;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int ICACHE_RAM_ATTR _putc_r(struct _reent* r, int c, FILE* file) {
 | 
				
			||||||
 | 
					    if (file->_file == STDOUT_FILENO) {
 | 
				
			||||||
 | 
					        return ets_putc(c);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    return EOF;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int ICACHE_RAM_ATTR puts(const char * str) {
 | 
					int ICACHE_RAM_ATTR puts(const char * str) {
 | 
				
			||||||
    return ets_printf("%s", str);
 | 
					    char c;
 | 
				
			||||||
 | 
					    while((c = *str) != 0) {
 | 
				
			||||||
 | 
					        ets_putc(c);
 | 
				
			||||||
 | 
					        ++str;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					    ets_putc('\n');
 | 
				
			||||||
 | 
					    return true;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// newlib has 'putchar' defined to a big scary construct
 | 
					 | 
				
			||||||
#undef putchar
 | 
					#undef putchar
 | 
				
			||||||
 | 
					 | 
				
			||||||
int ICACHE_RAM_ATTR putchar(int c) {
 | 
					int ICACHE_RAM_ATTR putchar(int c) {
 | 
				
			||||||
    return ets_putc(c);
 | 
					    ets_putc(c);
 | 
				
			||||||
 | 
					    return c;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int ICACHE_RAM_ATTR printf(const char* format, ...) {
 | 
					int ICACHE_RAM_ATTR printf(const char* format, ...) {
 | 
				
			||||||
    va_list arglist;
 | 
					    va_list arglist;
 | 
				
			||||||
    va_start(arglist, format);
 | 
					    va_start(arglist, format);
 | 
				
			||||||
@@ -84,530 +150,4 @@ int ICACHE_RAM_ATTR vprintf(const char * format, va_list arg) {
 | 
				
			|||||||
int ICACHE_RAM_ATTR vsnprintf(char * buffer, size_t size, const char * format, va_list arg) {
 | 
					int ICACHE_RAM_ATTR vsnprintf(char * buffer, size_t size, const char * format, va_list arg) {
 | 
				
			||||||
    return ets_vsnprintf(buffer, size, format, arg);
 | 
					    return ets_vsnprintf(buffer, size, format, arg);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
size_t strnlen(const char *s, size_t len) {
 | 
					 | 
				
			||||||
    // there is no ets_strnlen
 | 
					 | 
				
			||||||
    const char *cp;
 | 
					 | 
				
			||||||
    for (cp = s; len != 0 && *cp != '\0'; cp++, len--);
 | 
					 | 
				
			||||||
    return (size_t)(cp - s);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char* strchr(const char * str, int character) {
 | 
					 | 
				
			||||||
    while(1) {
 | 
					 | 
				
			||||||
        if(*str == 0x00) {
 | 
					 | 
				
			||||||
            return NULL;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if(*str == (char) character) {
 | 
					 | 
				
			||||||
            return (char *) str;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        str++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char* strrchr(const char * str, int character) {
 | 
					 | 
				
			||||||
    char * ret = NULL;
 | 
					 | 
				
			||||||
    while(1) {
 | 
					 | 
				
			||||||
        if(*str == 0x00) {
 | 
					 | 
				
			||||||
            return ret;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        if(*str == (char) character) {
 | 
					 | 
				
			||||||
            ret = (char *) str;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        str++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char* strcat(char * dest, const char * src) {
 | 
					 | 
				
			||||||
    return strncat(dest, src, strlen(src));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char* strncat(char * dest, const char * src, size_t n) {
 | 
					 | 
				
			||||||
    size_t i;
 | 
					 | 
				
			||||||
    size_t offset = strlen(dest);
 | 
					 | 
				
			||||||
    for(i = 0; i < n && src[i]; i++) {
 | 
					 | 
				
			||||||
        dest[i + offset] = src[i];
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    dest[i + offset] = 0;
 | 
					 | 
				
			||||||
    return dest;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char* strtok_r(char* s, const char* delim, char** last) {
 | 
					 | 
				
			||||||
    const char* spanp;
 | 
					 | 
				
			||||||
    char* tok;
 | 
					 | 
				
			||||||
    char c;
 | 
					 | 
				
			||||||
    char sc;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (s == NULL && (s = *last) == NULL) {
 | 
					 | 
				
			||||||
        return (NULL);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Skip (span) leading delimiters
 | 
					 | 
				
			||||||
    //
 | 
					 | 
				
			||||||
cont:
 | 
					 | 
				
			||||||
    c = *s++;
 | 
					 | 
				
			||||||
    for (spanp = delim; (sc = *spanp++) != 0;) {
 | 
					 | 
				
			||||||
        if (c == sc) {
 | 
					 | 
				
			||||||
            goto cont;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // check for no delimiters left
 | 
					 | 
				
			||||||
    //
 | 
					 | 
				
			||||||
    if (c == '\0') {
 | 
					 | 
				
			||||||
        *last = NULL;
 | 
					 | 
				
			||||||
        return (NULL);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    tok = s - 1;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // Scan token
 | 
					 | 
				
			||||||
    // Note that delim must have one NUL; we stop if we see that, too.
 | 
					 | 
				
			||||||
    //
 | 
					 | 
				
			||||||
    for (;;) {
 | 
					 | 
				
			||||||
        c = *s++;
 | 
					 | 
				
			||||||
        spanp = (char *)delim;
 | 
					 | 
				
			||||||
        do {
 | 
					 | 
				
			||||||
            if ((sc = *spanp++) == c) {
 | 
					 | 
				
			||||||
                if (c == 0) {
 | 
					 | 
				
			||||||
                    s = NULL;
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                else {
 | 
					 | 
				
			||||||
                    s[-1] = '\0';
 | 
					 | 
				
			||||||
                }
 | 
					 | 
				
			||||||
                *last = s;
 | 
					 | 
				
			||||||
                return (tok);
 | 
					 | 
				
			||||||
            }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        } while (sc != 0);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    // NOTREACHED EVER
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char* strtok(char* s, const char* delim) {
 | 
					 | 
				
			||||||
    static char* last;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return (strtok_r(s, delim, &last));
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int strcasecmp(const char * str1, const char * str2) {
 | 
					 | 
				
			||||||
    int d = 0;
 | 
					 | 
				
			||||||
    while(1) {
 | 
					 | 
				
			||||||
        int c1 = tolower(*str1++);
 | 
					 | 
				
			||||||
        int c2 = tolower(*str2++);
 | 
					 | 
				
			||||||
        if(((d = c1 - c2) != 0) || (c2 == '\0')) {
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return d;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char* strdup(const char *str) {
 | 
					 | 
				
			||||||
    size_t len = strlen(str) + 1;
 | 
					 | 
				
			||||||
    char *cstr = malloc(len);
 | 
					 | 
				
			||||||
    if(cstr) {
 | 
					 | 
				
			||||||
        memcpy(cstr, str, len);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return cstr;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// based on Source:
 | 
					 | 
				
			||||||
// https://github.com/anakod/Sming/blob/master/Sming/system/stringconversion.cpp#L93
 | 
					 | 
				
			||||||
double strtod(const char* str, char** endptr) {
 | 
					 | 
				
			||||||
    double result = 0.0;
 | 
					 | 
				
			||||||
    double factor = 1.0;
 | 
					 | 
				
			||||||
    bool decimals = false;
 | 
					 | 
				
			||||||
    char c;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    while(isspace(*str)) {
 | 
					 | 
				
			||||||
        str++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if(*str == 0x00) {
 | 
					 | 
				
			||||||
        // only space in str?
 | 
					 | 
				
			||||||
        if (endptr) *endptr = (char*) str;
 | 
					 | 
				
			||||||
        return result;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if(*str == '-') {
 | 
					 | 
				
			||||||
        factor = -1;
 | 
					 | 
				
			||||||
        str++;
 | 
					 | 
				
			||||||
    } else if(*str == '+') {
 | 
					 | 
				
			||||||
        str++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    while((c = *str)) {
 | 
					 | 
				
			||||||
        if(c == '.') {
 | 
					 | 
				
			||||||
            decimals = true;
 | 
					 | 
				
			||||||
            str++;
 | 
					 | 
				
			||||||
            continue;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        int d = c - '0';
 | 
					 | 
				
			||||||
        if(d < 0 || d > 9) {
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        result = 10.0 * result + d;
 | 
					 | 
				
			||||||
        if(decimals) {
 | 
					 | 
				
			||||||
            factor *= 0.1;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
        str++;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (endptr) *endptr = (char*) str;
 | 
					 | 
				
			||||||
    return result * factor;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ##########################################################################
 | 
					 | 
				
			||||||
//                             ctype functions
 | 
					 | 
				
			||||||
// ##########################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int isalnum(int c) {
 | 
					 | 
				
			||||||
    if(isalpha(c) || isdigit(c)) {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int isalpha(int c) {
 | 
					 | 
				
			||||||
    if(islower(c) || isupper(c)) {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int iscntrl(int c) {
 | 
					 | 
				
			||||||
    if(c <= 0x1F || c == 0x7F) {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int isdigit(int c) {
 | 
					 | 
				
			||||||
    if(c >= '0' && c <= '9') {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int isgraph(int c) {
 | 
					 | 
				
			||||||
    if(isprint(c) && c != ' ') {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int islower(int c) {
 | 
					 | 
				
			||||||
    if(c >= 'a' && c <= 'z') {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int isprint(int c) {
 | 
					 | 
				
			||||||
    if(!iscntrl(c)) {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int ispunct(int c) {
 | 
					 | 
				
			||||||
    if(isgraph(c) && !isalnum(c)) {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int isspace(int c) {
 | 
					 | 
				
			||||||
    switch(c) {
 | 
					 | 
				
			||||||
        case 0x20: // ' '
 | 
					 | 
				
			||||||
        case 0x09: // '\t'
 | 
					 | 
				
			||||||
        case 0x0a: // '\n'
 | 
					 | 
				
			||||||
        case 0x0b: // '\v'
 | 
					 | 
				
			||||||
        case 0x0c: // '\f'
 | 
					 | 
				
			||||||
        case 0x0d: // '\r'
 | 
					 | 
				
			||||||
            return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int isupper(int c) {
 | 
					 | 
				
			||||||
    if(c >= 'A' && c <= 'Z') {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int isxdigit(int c) {
 | 
					 | 
				
			||||||
    if(c >= 'A' && c <= 'F') {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if(c >= 'a' && c <= 'f') {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if(isdigit(c)) {
 | 
					 | 
				
			||||||
        return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int tolower(int c) {
 | 
					 | 
				
			||||||
    if(isupper(c)) {
 | 
					 | 
				
			||||||
        c += 0x20;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return c;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int toupper(int c) {
 | 
					 | 
				
			||||||
    if(islower(c)) {
 | 
					 | 
				
			||||||
        c -= 0x20;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return c;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int isblank(int c) {
 | 
					 | 
				
			||||||
    switch(c) {
 | 
					 | 
				
			||||||
        case 0x20: // ' '
 | 
					 | 
				
			||||||
        case 0x09: // '\t'
 | 
					 | 
				
			||||||
            return 1;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    return 0;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
// ##########################################################################
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
static int errno_var = 0;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int* __errno(void) {
 | 
					 | 
				
			||||||
    // DEBUGV("__errno is called last error: %d (not current)\n", errno_var);
 | 
					 | 
				
			||||||
    return &errno_var;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * begin newlib/string/strlcpy.c
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 1998 Todd C. Miller <Todd.Miller@courtesan.com>
 | 
					 | 
				
			||||||
 * All rights reserved.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 | 
				
			||||||
 * are met:
 | 
					 | 
				
			||||||
 * 1. Redistributions of source code must retain the above copyright
 | 
					 | 
				
			||||||
 *    notice, this list of conditions and the following disclaimer.
 | 
					 | 
				
			||||||
 * 2. Redistributions in binary form must reproduce the above copyright
 | 
					 | 
				
			||||||
 *    notice, this list of conditions and the following disclaimer in the
 | 
					 | 
				
			||||||
 *    documentation and/or other materials provided with the distribution.
 | 
					 | 
				
			||||||
 * 3. The name of the author may not be used to endorse or promote products
 | 
					 | 
				
			||||||
 *    derived from this software without specific prior written permission.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES,
 | 
					 | 
				
			||||||
 * INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY
 | 
					 | 
				
			||||||
 * AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
 | 
					 | 
				
			||||||
 * THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 | 
					 | 
				
			||||||
 * EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 | 
					 | 
				
			||||||
 * PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS;
 | 
					 | 
				
			||||||
 * OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY,
 | 
					 | 
				
			||||||
 * WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR
 | 
					 | 
				
			||||||
 * OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF
 | 
					 | 
				
			||||||
 * ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
size_t strlcpy(char* dst, const char* src, size_t size) {
 | 
					 | 
				
			||||||
    const char *s = src;
 | 
					 | 
				
			||||||
    size_t n = size;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (n != 0 && --n != 0) {
 | 
					 | 
				
			||||||
        do {
 | 
					 | 
				
			||||||
            if ((*dst++ = *s++) == 0)
 | 
					 | 
				
			||||||
                break;
 | 
					 | 
				
			||||||
        } while (--n != 0);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    if (n == 0) {
 | 
					 | 
				
			||||||
        if (size != 0)
 | 
					 | 
				
			||||||
            *dst = 0;
 | 
					 | 
				
			||||||
        while (*s++);
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    return(s - src - 1);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * end of newlib/string/strlcpy.c
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/**
 | 
					 | 
				
			||||||
 * strtol() and strtoul() implementations borrowed from newlib:
 | 
					 | 
				
			||||||
 * http://www.sourceware.org/newlib/
 | 
					 | 
				
			||||||
 *      newlib/libc/stdlib/strtol.c
 | 
					 | 
				
			||||||
 *      newlib/libc/stdlib/strtoul.c
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Adapted for ESP8266 by Kiril Zyapkov <kiril.zyapkov@gmail.com>
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Copyright (c) 1990 The Regents of the University of California.
 | 
					 | 
				
			||||||
 * All rights reserved.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * Redistribution and use in source and binary forms, with or without
 | 
					 | 
				
			||||||
 * modification, are permitted provided that the following conditions
 | 
					 | 
				
			||||||
 * are met:
 | 
					 | 
				
			||||||
 * 1. Redistributions of source code must retain the above copyright
 | 
					 | 
				
			||||||
 *    notice, this list of conditions and the following disclaimer.
 | 
					 | 
				
			||||||
 * 2. Redistributions in binary form must reproduce the above copyright
 | 
					 | 
				
			||||||
 *    notice, this list of conditions and the following disclaimer in the
 | 
					 | 
				
			||||||
 *    documentation and/or other materials provided with the distribution.
 | 
					 | 
				
			||||||
 * 3. All advertising materials mentioning features or use of this software
 | 
					 | 
				
			||||||
 *    must display the following acknowledgement:
 | 
					 | 
				
			||||||
 *    This product includes software developed by the University of
 | 
					 | 
				
			||||||
 *    California, Berkeley and its contributors.
 | 
					 | 
				
			||||||
 * 4. Neither the name of the University nor the names of its contributors
 | 
					 | 
				
			||||||
 *    may be used to endorse or promote products derived from this software
 | 
					 | 
				
			||||||
 *    without specific prior written permission.
 | 
					 | 
				
			||||||
 *
 | 
					 | 
				
			||||||
 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
					 | 
				
			||||||
 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
					 | 
				
			||||||
 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
					 | 
				
			||||||
 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
					 | 
				
			||||||
 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
					 | 
				
			||||||
 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
					 | 
				
			||||||
 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
					 | 
				
			||||||
 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
					 | 
				
			||||||
 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
					 | 
				
			||||||
 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
					 | 
				
			||||||
 * SUCH DAMAGE.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
long strtol(const char *nptr, char **endptr, int base) {
 | 
					 | 
				
			||||||
    const unsigned char *s = (const unsigned char *)nptr;
 | 
					 | 
				
			||||||
    unsigned long acc;
 | 
					 | 
				
			||||||
    int c;
 | 
					 | 
				
			||||||
    unsigned long cutoff;
 | 
					 | 
				
			||||||
    int neg = 0, any, cutlim;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /*
 | 
					 | 
				
			||||||
     * Skip white space and pick up leading +/- sign if any.
 | 
					 | 
				
			||||||
     * If base is 0, allow 0x for hex and 0 for octal, else
 | 
					 | 
				
			||||||
     * assume decimal; if base is already 16, allow 0x.
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    do {
 | 
					 | 
				
			||||||
        c = *s++;
 | 
					 | 
				
			||||||
    } while (isspace(c));
 | 
					 | 
				
			||||||
    if (c == '-') {
 | 
					 | 
				
			||||||
        neg = 1;
 | 
					 | 
				
			||||||
        c = *s++;
 | 
					 | 
				
			||||||
    } else if (c == '+')
 | 
					 | 
				
			||||||
        c = *s++;
 | 
					 | 
				
			||||||
    if ((base == 0 || base == 16) &&
 | 
					 | 
				
			||||||
        c == '0' && (*s == 'x' || *s == 'X')) {
 | 
					 | 
				
			||||||
        c = s[1];
 | 
					 | 
				
			||||||
        s += 2;
 | 
					 | 
				
			||||||
        base = 16;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (base == 0)
 | 
					 | 
				
			||||||
        base = c == '0' ? 8 : 10;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /*
 | 
					 | 
				
			||||||
     * Compute the cutoff value between legal numbers and illegal
 | 
					 | 
				
			||||||
     * numbers.  That is the largest legal value, divided by the
 | 
					 | 
				
			||||||
     * base.  An input number that is greater than this value, if
 | 
					 | 
				
			||||||
     * followed by a legal input character, is too big.  One that
 | 
					 | 
				
			||||||
     * is equal to this value may be valid or not; the limit
 | 
					 | 
				
			||||||
     * between valid and invalid numbers is then based on the last
 | 
					 | 
				
			||||||
     * digit.  For instance, if the range for longs is
 | 
					 | 
				
			||||||
     * [-2147483648..2147483647] and the input base is 10,
 | 
					 | 
				
			||||||
     * cutoff will be set to 214748364 and cutlim to either
 | 
					 | 
				
			||||||
     * 7 (neg==0) or 8 (neg==1), meaning that if we have accumulated
 | 
					 | 
				
			||||||
     * a value > 214748364, or equal but the next digit is > 7 (or 8),
 | 
					 | 
				
			||||||
     * the number is too big, and we will return a range error.
 | 
					 | 
				
			||||||
     *
 | 
					 | 
				
			||||||
     * Set any if any `digits' consumed; make it negative to indicate
 | 
					 | 
				
			||||||
     * overflow.
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    cutoff = neg ? -(unsigned long)LONG_MIN : LONG_MAX;
 | 
					 | 
				
			||||||
    cutlim = cutoff % (unsigned long)base;
 | 
					 | 
				
			||||||
    cutoff /= (unsigned long)base;
 | 
					 | 
				
			||||||
    for (acc = 0, any = 0;; c = *s++) {
 | 
					 | 
				
			||||||
        if (isdigit(c))
 | 
					 | 
				
			||||||
            c -= '0';
 | 
					 | 
				
			||||||
        else if (isalpha(c))
 | 
					 | 
				
			||||||
            c -= isupper(c) ? 'A' - 10 : 'a' - 10;
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        if (c >= base)
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
               if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
 | 
					 | 
				
			||||||
            any = -1;
 | 
					 | 
				
			||||||
        else {
 | 
					 | 
				
			||||||
            any = 1;
 | 
					 | 
				
			||||||
            acc *= base;
 | 
					 | 
				
			||||||
            acc += c;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (any < 0) {
 | 
					 | 
				
			||||||
        acc = neg ? LONG_MIN : LONG_MAX;
 | 
					 | 
				
			||||||
        errno = ERANGE;
 | 
					 | 
				
			||||||
    } else if (neg)
 | 
					 | 
				
			||||||
        acc = -acc;
 | 
					 | 
				
			||||||
    if (endptr != 0)
 | 
					 | 
				
			||||||
        *endptr = (char *) (any ? (char *)s - 1 : nptr);
 | 
					 | 
				
			||||||
    return (acc);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
unsigned long strtoul(const char *nptr, char **endptr, int base)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    const unsigned char *s = (const unsigned char *)nptr;
 | 
					 | 
				
			||||||
    unsigned long acc;
 | 
					 | 
				
			||||||
    int c;
 | 
					 | 
				
			||||||
    unsigned long cutoff;
 | 
					 | 
				
			||||||
    int neg = 0, any, cutlim;
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    /*
 | 
					 | 
				
			||||||
     * See strtol for comments as to the logic used.
 | 
					 | 
				
			||||||
     */
 | 
					 | 
				
			||||||
    do {
 | 
					 | 
				
			||||||
        c = *s++;
 | 
					 | 
				
			||||||
    } while (isspace(c));
 | 
					 | 
				
			||||||
    if (c == '-') {
 | 
					 | 
				
			||||||
        neg = 1;
 | 
					 | 
				
			||||||
        c = *s++;
 | 
					 | 
				
			||||||
    } else if (c == '+')
 | 
					 | 
				
			||||||
        c = *s++;
 | 
					 | 
				
			||||||
    if ((base == 0 || base == 16) &&
 | 
					 | 
				
			||||||
        c == '0' && (*s == 'x' || *s == 'X')) {
 | 
					 | 
				
			||||||
        c = s[1];
 | 
					 | 
				
			||||||
        s += 2;
 | 
					 | 
				
			||||||
        base = 16;
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (base == 0)
 | 
					 | 
				
			||||||
        base = c == '0' ? 8 : 10;
 | 
					 | 
				
			||||||
    cutoff = (unsigned long)ULONG_MAX / (unsigned long)base;
 | 
					 | 
				
			||||||
    cutlim = (unsigned long)ULONG_MAX % (unsigned long)base;
 | 
					 | 
				
			||||||
    for (acc = 0, any = 0;; c = *s++) {
 | 
					 | 
				
			||||||
        if (isdigit(c))
 | 
					 | 
				
			||||||
            c -= '0';
 | 
					 | 
				
			||||||
        else if (isalpha(c))
 | 
					 | 
				
			||||||
            c -= isupper(c) ? 'A' - 10 : 'a' - 10;
 | 
					 | 
				
			||||||
        else
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
        if (c >= base)
 | 
					 | 
				
			||||||
            break;
 | 
					 | 
				
			||||||
               if (any < 0 || acc > cutoff || (acc == cutoff && c > cutlim))
 | 
					 | 
				
			||||||
            any = -1;
 | 
					 | 
				
			||||||
        else {
 | 
					 | 
				
			||||||
            any = 1;
 | 
					 | 
				
			||||||
            acc *= base;
 | 
					 | 
				
			||||||
            acc += c;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					 | 
				
			||||||
    if (any < 0) {
 | 
					 | 
				
			||||||
        acc = ULONG_MAX;
 | 
					 | 
				
			||||||
        errno = ERANGE;
 | 
					 | 
				
			||||||
    } else if (neg)
 | 
					 | 
				
			||||||
        acc = -acc;
 | 
					 | 
				
			||||||
    if (endptr != 0)
 | 
					 | 
				
			||||||
        *endptr = (char *) (any ? (char *)s - 1 : nptr);
 | 
					 | 
				
			||||||
    return (acc);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 
 | 
				
			|||||||
@@ -17,6 +17,7 @@
 | 
				
			|||||||
 */
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
#include <time.h>
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
#include "sntp.h"
 | 
					#include "sntp.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -81,14 +82,6 @@ int clock_gettime(clockid_t unused, struct timespec *tp)
 | 
				
			|||||||
    return 0;
 | 
					    return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
// seconds since 1970
 | 
					 | 
				
			||||||
time_t mktime(struct tm *t)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    // system_mktime expects month in range 1..12
 | 
					 | 
				
			||||||
    #define START_MONTH 1
 | 
					 | 
				
			||||||
    return DIFF1900TO1970 + system_mktime(t->tm_year, t->tm_mon + START_MONTH, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
time_t time(time_t * t)
 | 
					time_t time(time_t * t)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    time_t seconds = sntp_get_current_timestamp();
 | 
					    time_t seconds = sntp_get_current_timestamp();
 | 
				
			||||||
@@ -99,24 +92,7 @@ time_t time(time_t * t)
 | 
				
			|||||||
    return seconds;
 | 
					    return seconds;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
char* asctime(const struct tm *t)
 | 
					int _gettimeofday_r(struct _reent* unused, struct timeval *tp, void *tzp)
 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return sntp_asctime(t);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
struct tm* localtime(const time_t *clock)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    return sntp_localtime(clock);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
char* ctime(const time_t *t)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
    struct tm* p_tm = localtime(t);
 | 
					 | 
				
			||||||
    char* result = asctime(p_tm);
 | 
					 | 
				
			||||||
    return result;
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
int gettimeofday(struct timeval *tp, void *tzp)
 | 
					 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
    if (tp)
 | 
					    if (tp)
 | 
				
			||||||
    {
 | 
					    {
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -22,7 +22,8 @@ build.lwip_flags=-DLWIP_OPEN_SRC
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
compiler.path={runtime.tools.xtensa-lx106-elf-gcc.path}/bin/
 | 
					compiler.path={runtime.tools.xtensa-lx106-elf-gcc.path}/bin/
 | 
				
			||||||
compiler.sdk.path={runtime.platform.path}/tools/sdk
 | 
					compiler.sdk.path={runtime.platform.path}/tools/sdk
 | 
				
			||||||
compiler.cpreprocessor.flags=-D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I{compiler.sdk.path}/include" "-I{compiler.sdk.path}/lwip/include" "-I{build.path}/core"
 | 
					compiler.libc.path={runtime.platform.path}/tools/sdk/libc/xtensa-lx106-elf
 | 
				
			||||||
 | 
					compiler.cpreprocessor.flags=-D__ets__ -DICACHE_FLASH -U__STRICT_ANSI__ "-I{compiler.sdk.path}/include" "-I{compiler.sdk.path}/lwip/include" "-I{compiler.libc.path}/include" "-I{build.path}/core"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
compiler.c.cmd=xtensa-lx106-elf-gcc
 | 
					compiler.c.cmd=xtensa-lx106-elf-gcc
 | 
				
			||||||
compiler.c.flags=-c {compiler.warning_flags} -Os -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -falign-functions=4 -MMD -std=gnu99 -ffunction-sections -fdata-sections
 | 
					compiler.c.flags=-c {compiler.warning_flags} -Os -g -Wpointer-arith -Wno-implicit-function-declaration -Wl,-EL -fno-inline-functions -nostdlib -mlongcalls -mtext-section-literals -falign-functions=4 -MMD -std=gnu99 -ffunction-sections -fdata-sections
 | 
				
			||||||
@@ -30,10 +31,10 @@ compiler.c.flags=-c {compiler.warning_flags} -Os -g -Wpointer-arith -Wno-implici
 | 
				
			|||||||
compiler.S.cmd=xtensa-lx106-elf-gcc
 | 
					compiler.S.cmd=xtensa-lx106-elf-gcc
 | 
				
			||||||
compiler.S.flags=-c -g -x assembler-with-cpp -MMD -mlongcalls
 | 
					compiler.S.flags=-c -g -x assembler-with-cpp -MMD -mlongcalls
 | 
				
			||||||
 | 
					
 | 
				
			||||||
compiler.c.elf.flags=-g {compiler.warning_flags} -Os -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static "-L{compiler.sdk.path}/lib" "-L{compiler.sdk.path}/ld" "-T{build.flash_ld}" -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy
 | 
					compiler.c.elf.flags=-g {compiler.warning_flags} -Os -nostdlib -Wl,--no-check-sections -u call_user_start -Wl,-static "-L{compiler.sdk.path}/lib" "-L{compiler.sdk.path}/ld" "-L{compiler.libc.path}/lib" "-T{build.flash_ld}" -Wl,--gc-sections -Wl,-wrap,system_restart_local -Wl,-wrap,register_chipv6_phy
 | 
				
			||||||
 | 
					
 | 
				
			||||||
compiler.c.elf.cmd=xtensa-lx106-elf-gcc
 | 
					compiler.c.elf.cmd=xtensa-lx106-elf-gcc
 | 
				
			||||||
compiler.c.elf.libs=-lm -lgcc -lhal -lphy -lpp -lnet80211 -lwpa -lcrypto -lmain -lwps -laxtls -lsmartconfig -lmesh -lwpa2 {build.lwip_lib} -lstdc++
 | 
					compiler.c.elf.libs=-lhal -lphy -lpp -lnet80211 {build.lwip_lib} -lwpa -lcrypto -lmain -lwps -laxtls -lsmartconfig -lmesh -lwpa2 -lstdc++ -lm -lc -lgcc 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
compiler.cpp.cmd=xtensa-lx106-elf-g++
 | 
					compiler.cpp.cmd=xtensa-lx106-elf-g++
 | 
				
			||||||
compiler.cpp.flags=-c {compiler.warning_flags} -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -MMD -ffunction-sections -fdata-sections
 | 
					compiler.cpp.flags=-c {compiler.warning_flags} -Os -g -mlongcalls -mtext-section-literals -fno-exceptions -fno-rtti -falign-functions=4 -std=c++11 -MMD -ffunction-sections -fdata-sections
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -39,8 +39,15 @@ TEST_CASE("A bunch of files show up in openDir, and can be removed", "[fs]")
 | 
				
			|||||||
    const int n = 10;
 | 
					    const int n = 10;
 | 
				
			||||||
    int found[n] = {0};
 | 
					    int found[n] = {0};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					        Dir root = SPIFFS.openDir("");
 | 
				
			||||||
 | 
					        while (root.next()) {
 | 
				
			||||||
 | 
					            CHECK(SPIFFS.remove(root.fileName()));
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    for (int i = 0; i < n; ++i) {
 | 
					    for (int i = 0; i < n; ++i) {
 | 
				
			||||||
        String name = "seq_";
 | 
					        String name = "/seq_";
 | 
				
			||||||
        name += i;
 | 
					        name += i;
 | 
				
			||||||
        name += ".txt";
 | 
					        name += ".txt";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -54,8 +61,8 @@ TEST_CASE("A bunch of files show up in openDir, and can be removed", "[fs]")
 | 
				
			|||||||
        Dir root = SPIFFS.openDir("/");
 | 
					        Dir root = SPIFFS.openDir("/");
 | 
				
			||||||
        while (root.next()) {
 | 
					        while (root.next()) {
 | 
				
			||||||
            String fileName = root.fileName();
 | 
					            String fileName = root.fileName();
 | 
				
			||||||
            CHECK(fileName.indexOf("seq_") == 0);
 | 
					            CHECK(fileName.indexOf("/seq_") == 0);
 | 
				
			||||||
            int i = fileName.substring(4).toInt();
 | 
					            int i = fileName.substring(5).toInt();
 | 
				
			||||||
            CHECK(i >= 0 && i < n);
 | 
					            CHECK(i >= 0 && i < n);
 | 
				
			||||||
            found[i]++;
 | 
					            found[i]++;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -78,12 +78,12 @@ TEST_CASE("HTTPS GET request", "[HTTPClient]")
 | 
				
			|||||||
    {
 | 
					    {
 | 
				
			||||||
        // request which returns 8000 bytes
 | 
					        // request which returns 8000 bytes
 | 
				
			||||||
        HTTPClient http;
 | 
					        HTTPClient http;
 | 
				
			||||||
        http.begin(SERVER_IP, 8088, "/data?size=8000", fp);
 | 
					        http.begin(SERVER_IP, 8088, "/data?size=4000", fp);
 | 
				
			||||||
        auto httpCode = http.GET();
 | 
					        auto httpCode = http.GET();
 | 
				
			||||||
        REQUIRE(httpCode == HTTP_CODE_OK);
 | 
					        REQUIRE(httpCode == HTTP_CODE_OK);
 | 
				
			||||||
        String payload = http.getString();
 | 
					        String payload = http.getString();
 | 
				
			||||||
        auto len = payload.length();
 | 
					        auto len = payload.length();
 | 
				
			||||||
        REQUIRE(len == 8000);
 | 
					        REQUIRE(len == 4000);
 | 
				
			||||||
        for (int i = 0; i < len; ++i) {
 | 
					        for (int i = 0; i < len; ++i) {
 | 
				
			||||||
            if (payload[i] != 'a') {
 | 
					            if (payload[i] != 'a') {
 | 
				
			||||||
                REQUIRE(false);
 | 
					                REQUIRE(false);
 | 
				
			||||||
 
 | 
				
			|||||||
@@ -156,6 +156,7 @@ SECTIONS
 | 
				
			|||||||
    *.c.o( EXCLUDE_FILE (umm_malloc.c.o) .literal*, \
 | 
					    *.c.o( EXCLUDE_FILE (umm_malloc.c.o) .literal*, \
 | 
				
			||||||
           EXCLUDE_FILE (umm_malloc.c.o) .text*)
 | 
					           EXCLUDE_FILE (umm_malloc.c.o) .text*)
 | 
				
			||||||
    *.cpp.o(.literal*, .text*)
 | 
					    *.cpp.o(.literal*, .text*)
 | 
				
			||||||
 | 
					    *libc.a:(.literal .text .literal.* .text.*)
 | 
				
			||||||
    *libm.a:(.literal .text .literal.* .text.*)
 | 
					    *libm.a:(.literal .text .literal.* .text.*)
 | 
				
			||||||
    *libgcc.a:_umoddi3.o(.literal .text)
 | 
					    *libgcc.a:_umoddi3.o(.literal .text)
 | 
				
			||||||
    *libgcc.a:_udivdi3.o(.literal .text)
 | 
					    *libgcc.a:_udivdi3.o(.literal .text)
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										
											BIN
										
									
								
								tools/sdk/lib/libc_orig.a
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										
											BIN
										
									
								
								tools/sdk/lib/libc_orig.a
									
									
									
									
									
										Normal file
									
								
							
										
											Binary file not shown.
										
									
								
							
							
								
								
									
										140
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										140
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/_ansi.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,140 @@
 | 
				
			|||||||
 | 
					/* Provide support for both ANSI and non-ANSI environments.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Some ANSI environments are "broken" in the sense that __STDC__ cannot be
 | 
				
			||||||
 | 
					   relied upon to have it's intended meaning.  Therefore we must use our own
 | 
				
			||||||
 | 
					   concoction: _HAVE_STDC.  Always use _HAVE_STDC instead of __STDC__ in newlib
 | 
				
			||||||
 | 
					   sources!
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   To get a strict ANSI C environment, define macro __STRICT_ANSI__.  This will
 | 
				
			||||||
 | 
					   "comment out" the non-ANSI parts of the ANSI header files (non-ANSI header
 | 
				
			||||||
 | 
					   files aren't affected).  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_ANSIDECL_H_
 | 
				
			||||||
 | 
					#define	_ANSIDECL_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <newlib.h>
 | 
				
			||||||
 | 
					#include <sys/config.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* First try to figure out whether we really are in an ANSI C environment.  */
 | 
				
			||||||
 | 
					/* FIXME: This probably needs some work.  Perhaps sys/config.h can be
 | 
				
			||||||
 | 
					   prevailed upon to give us a clue.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __STDC__
 | 
				
			||||||
 | 
					#define _HAVE_STDC
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  ISO C++.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					#if !(defined(_BEGIN_STD_C) && defined(_END_STD_C))
 | 
				
			||||||
 | 
					#ifdef _HAVE_STD_CXX
 | 
				
			||||||
 | 
					#define _BEGIN_STD_C namespace std { extern "C" {
 | 
				
			||||||
 | 
					#define _END_STD_C  } }
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _BEGIN_STD_C extern "C" {
 | 
				
			||||||
 | 
					#define _END_STD_C  }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ (3, 3)
 | 
				
			||||||
 | 
					#define _NOTHROW __attribute__ ((__nothrow__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _NOTHROW throw()
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _BEGIN_STD_C
 | 
				
			||||||
 | 
					#define _END_STD_C
 | 
				
			||||||
 | 
					#define _NOTHROW
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _HAVE_STDC
 | 
				
			||||||
 | 
					#define	_PTR		void *
 | 
				
			||||||
 | 
					#define	_AND		,
 | 
				
			||||||
 | 
					#define	_NOARGS		void
 | 
				
			||||||
 | 
					#define	_CONST		const
 | 
				
			||||||
 | 
					#define	_VOLATILE	volatile
 | 
				
			||||||
 | 
					#define	_SIGNED		signed
 | 
				
			||||||
 | 
					#define	_DOTS		, ...
 | 
				
			||||||
 | 
					#define _VOID void
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#define	_EXFUN_NOTHROW(name, proto)	__cdecl name proto _NOTHROW
 | 
				
			||||||
 | 
					#define	_EXFUN(name, proto)		__cdecl name proto
 | 
				
			||||||
 | 
					#define	_EXPARM(name, proto)		(* __cdecl name) proto
 | 
				
			||||||
 | 
					#define	_EXFNPTR(name, proto)		(__cdecl * name) proto
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	_EXFUN_NOTHROW(name, proto)	name proto _NOTHROW
 | 
				
			||||||
 | 
					#define	_EXFUN(name, proto)		name proto
 | 
				
			||||||
 | 
					#define _EXPARM(name, proto)		(* name) proto
 | 
				
			||||||
 | 
					#define _EXFNPTR(name, proto)		(* name) proto
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	_DEFUN(name, arglist, args)	name(args)
 | 
				
			||||||
 | 
					#define	_DEFUN_VOID(name)		name(_NOARGS)
 | 
				
			||||||
 | 
					#define _CAST_VOID (void)
 | 
				
			||||||
 | 
					#ifndef _LONG_DOUBLE
 | 
				
			||||||
 | 
					#define _LONG_DOUBLE long double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef _PARAMS
 | 
				
			||||||
 | 
					#define _PARAMS(paramlist)		paramlist
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else	
 | 
				
			||||||
 | 
					#define	_PTR		char *
 | 
				
			||||||
 | 
					#define	_AND		;
 | 
				
			||||||
 | 
					#define	_NOARGS
 | 
				
			||||||
 | 
					#define	_CONST
 | 
				
			||||||
 | 
					#define	_VOLATILE
 | 
				
			||||||
 | 
					#define	_SIGNED
 | 
				
			||||||
 | 
					#define	_DOTS
 | 
				
			||||||
 | 
					#define _VOID void
 | 
				
			||||||
 | 
					#define	_EXFUN(name, proto)		name()
 | 
				
			||||||
 | 
					#define	_EXFUN_NOTHROW(name, proto)	name()
 | 
				
			||||||
 | 
					#define	_DEFUN(name, arglist, args)	name arglist args;
 | 
				
			||||||
 | 
					#define	_DEFUN_VOID(name)		name()
 | 
				
			||||||
 | 
					#define _CAST_VOID
 | 
				
			||||||
 | 
					#define _LONG_DOUBLE double
 | 
				
			||||||
 | 
					#ifndef _PARAMS
 | 
				
			||||||
 | 
					#define _PARAMS(paramlist)		()
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Support gcc's __attribute__ facility.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					#define _ATTRIBUTE(attrs) __attribute__ (attrs)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _ATTRIBUTE(attrs)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  The traditional meaning of 'extern inline' for GCC is not
 | 
				
			||||||
 | 
					  to emit the function body unless the address is explicitly
 | 
				
			||||||
 | 
					  taken.  However this behaviour is changing to match the C99
 | 
				
			||||||
 | 
					  standard, which uses 'extern inline' to indicate that the
 | 
				
			||||||
 | 
					  function body *must* be emitted.  Likewise, a function declared
 | 
				
			||||||
 | 
					  without either 'extern' or 'static' defaults to extern linkage
 | 
				
			||||||
 | 
					  (C99 6.2.2p5), and the compiler may choose whether to use the
 | 
				
			||||||
 | 
					  inline version or call the extern linkage version (6.7.4p6).
 | 
				
			||||||
 | 
					  If we are using GCC, but do not have the new behaviour, we need
 | 
				
			||||||
 | 
					  to use extern inline; if we are using a new GCC with the
 | 
				
			||||||
 | 
					  C99-compatible behaviour, or a non-GCC compiler (which we will
 | 
				
			||||||
 | 
					  have to hope is C99, since there is no other way to achieve the
 | 
				
			||||||
 | 
					  effect of omitting the function if it isn't referenced) we use
 | 
				
			||||||
 | 
					  'static inline', which c99 defines to mean more-or-less the same
 | 
				
			||||||
 | 
					  as the Gnu C 'extern inline'.  */
 | 
				
			||||||
 | 
					#if defined(__GNUC__) && !defined(__GNUC_STDC_INLINE__)
 | 
				
			||||||
 | 
					/* We're using GCC, but without the new C99-compatible behaviour.  */
 | 
				
			||||||
 | 
					#define _ELIDABLE_INLINE extern __inline__ _ATTRIBUTE ((__always_inline__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* We're using GCC in C99 mode, or an unknown compiler which
 | 
				
			||||||
 | 
					  we just have to hope obeys the C99 semantics of inline.  */
 | 
				
			||||||
 | 
					#define _ELIDABLE_INLINE static __inline__
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ (3, 1)
 | 
				
			||||||
 | 
					#define _NOINLINE		__attribute__ ((__noinline__))
 | 
				
			||||||
 | 
					#define _NOINLINE_STATIC	_NOINLINE static
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* On non-GNU compilers and GCC prior to version 3.1 the compiler can't be
 | 
				
			||||||
 | 
					   trusted not to inline if it is static. */
 | 
				
			||||||
 | 
					#define _NOINLINE
 | 
				
			||||||
 | 
					#define _NOINLINE_STATIC
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _ANSIDECL_H_ */
 | 
				
			||||||
							
								
								
									
										40
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/_syslist.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										40
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/_syslist.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,40 @@
 | 
				
			|||||||
 | 
					/* internal use only -- mapping of "system calls" for libraries that lose
 | 
				
			||||||
 | 
					   and only provide C names, so that we end up in violation of ANSI */
 | 
				
			||||||
 | 
					#ifndef __SYSLIST_H
 | 
				
			||||||
 | 
					#define __SYSLIST_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef MISSING_SYSCALL_NAMES
 | 
				
			||||||
 | 
					#define _close close
 | 
				
			||||||
 | 
					#define _execve execve
 | 
				
			||||||
 | 
					#define _fcntl fcntl
 | 
				
			||||||
 | 
					#define _fork fork
 | 
				
			||||||
 | 
					#define _fstat fstat
 | 
				
			||||||
 | 
					#define _getpid getpid
 | 
				
			||||||
 | 
					#define _gettimeofday gettimeofday
 | 
				
			||||||
 | 
					#define _isatty isatty
 | 
				
			||||||
 | 
					#define _kill kill
 | 
				
			||||||
 | 
					#define _link link
 | 
				
			||||||
 | 
					#define _lseek lseek
 | 
				
			||||||
 | 
					#define _mkdir mkdir
 | 
				
			||||||
 | 
					#define _open open
 | 
				
			||||||
 | 
					#define _read read
 | 
				
			||||||
 | 
					#define _sbrk sbrk
 | 
				
			||||||
 | 
					#define _stat stat
 | 
				
			||||||
 | 
					#define _times times
 | 
				
			||||||
 | 
					#define _unlink unlink
 | 
				
			||||||
 | 
					#define _wait wait
 | 
				
			||||||
 | 
					#define _write write
 | 
				
			||||||
 | 
					#endif /* MISSING_SYSCALL_NAMES */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined MISSING_SYSCALL_NAMES || !defined HAVE_OPENDIR
 | 
				
			||||||
 | 
					/* If the system call interface is missing opendir, readdir, and
 | 
				
			||||||
 | 
					   closedir, there is an implementation of these functions in
 | 
				
			||||||
 | 
					   libc/posix that is implemented using open, getdents, and close. 
 | 
				
			||||||
 | 
					   Note, these functions are currently not in the libc/syscalls
 | 
				
			||||||
 | 
					   directory.  */
 | 
				
			||||||
 | 
					#define _opendir opendir
 | 
				
			||||||
 | 
					#define _readdir readdir
 | 
				
			||||||
 | 
					#define _closedir closedir
 | 
				
			||||||
 | 
					#endif /* MISSING_SYSCALL_NAMES || !HAVE_OPENDIR */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !__SYSLIST_H_ */
 | 
				
			||||||
							
								
								
									
										21
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/alloca.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										21
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/alloca.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,21 @@
 | 
				
			|||||||
 | 
					/* libc/include/alloca.h - Allocate memory on stack */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Written 2000 by Werner Almesberger */
 | 
				
			||||||
 | 
					/* Rearranged for general inclusion by stdlib.h.
 | 
				
			||||||
 | 
					   2001, Corinna Vinschen <vinschen@redhat.com> */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _NEWLIB_ALLOCA_H
 | 
				
			||||||
 | 
					#define _NEWLIB_ALLOCA_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef alloca
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					#define alloca(size) __builtin_alloca(size)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					void * _EXFUN(alloca,(size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										69
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/ar.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										69
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/ar.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,69 @@
 | 
				
			|||||||
 | 
					/*	$NetBSD: ar.h,v 1.4 1994/10/26 00:55:43 cgd Exp $	*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1991, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 * (c) UNIX System Laboratories, Inc.
 | 
				
			||||||
 | 
					 * All or some portions of this file are derived from material licensed
 | 
				
			||||||
 | 
					 * to the University of California by American Telephone and Telegraph
 | 
				
			||||||
 | 
					 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
 | 
				
			||||||
 | 
					 * the permission of UNIX System Laboratories, Inc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This code is derived from software contributed to Berkeley by
 | 
				
			||||||
 | 
					 * Hugh Smith at The University of Guelph.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 3. All advertising materials mentioning features or use of this software
 | 
				
			||||||
 | 
					 *    must display the following acknowledgement:
 | 
				
			||||||
 | 
					 *	This product includes software developed by the University of
 | 
				
			||||||
 | 
					 *	California, Berkeley and its contributors.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)ar.h	8.2 (Berkeley) 1/21/94
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _AR_H_
 | 
				
			||||||
 | 
					#define	_AR_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Pre-4BSD archives had these magic numbers in them. */
 | 
				
			||||||
 | 
					#define	OARMAG1	0177555
 | 
				
			||||||
 | 
					#define	OARMAG2	0177545
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	ARMAG		"!<arch>\n"	/* ar "magic number" */
 | 
				
			||||||
 | 
					#define	SARMAG		8		/* strlen(ARMAG); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	AR_EFMT1	"#1/"		/* extended format #1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct ar_hdr {
 | 
				
			||||||
 | 
						char ar_name[16];		/* name */
 | 
				
			||||||
 | 
						char ar_date[12];		/* modification time */
 | 
				
			||||||
 | 
						char ar_uid[6];			/* user id */
 | 
				
			||||||
 | 
						char ar_gid[6];			/* group id */
 | 
				
			||||||
 | 
						char ar_mode[8];		/* octal file permissions */
 | 
				
			||||||
 | 
						char ar_size[10];		/* size in bytes */
 | 
				
			||||||
 | 
					#define	ARFMAG	"`\n"
 | 
				
			||||||
 | 
						char ar_fmag[2];		/* consistency check */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_AR_H_ */
 | 
				
			||||||
							
								
								
									
										33
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/argz.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/argz.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					/* Copyright (C) 2002 by  Red Hat, Incorporated. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and distribute this software
 | 
				
			||||||
 | 
					 * is freely granted, provided that this notice is preserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _ARGZ_H_
 | 
				
			||||||
 | 
					#define _ARGZ_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The newlib implementation of these functions assumes that sizeof(char) == 1. */
 | 
				
			||||||
 | 
					error_t argz_create (char *const argv[], char **argz, size_t *argz_len);
 | 
				
			||||||
 | 
					error_t argz_create_sep (const char *string, int sep, char **argz, size_t *argz_len);
 | 
				
			||||||
 | 
					size_t argz_count (const char *argz, size_t argz_len);
 | 
				
			||||||
 | 
					void argz_extract (char *argz, size_t argz_len, char **argv);
 | 
				
			||||||
 | 
					void argz_stringify (char *argz, size_t argz_len, int sep);
 | 
				
			||||||
 | 
					error_t argz_add (char **argz, size_t *argz_len, const char *str);
 | 
				
			||||||
 | 
					error_t argz_add_sep (char **argz, size_t *argz_len, const char *str, int sep);
 | 
				
			||||||
 | 
					error_t argz_append (char **argz, size_t *argz_len, const char *buf, size_t buf_len);
 | 
				
			||||||
 | 
					error_t argz_delete (char **argz, size_t *argz_len, char *entry);
 | 
				
			||||||
 | 
					error_t argz_insert (char **argz, size_t *argz_len, char *before, const char *entry);
 | 
				
			||||||
 | 
					char * argz_next (char *argz, size_t argz_len, const char *entry);
 | 
				
			||||||
 | 
					error_t argz_replace (char **argz, size_t *argz_len, const char *str, const char *with, unsigned *replace_count);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _ARGZ_H_ */
 | 
				
			||||||
							
								
								
									
										50
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/assert.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/assert.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
						assert.h
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef assert
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef NDEBUG           /* required by ANSI standard */
 | 
				
			||||||
 | 
					# define assert(__e) ((void)0)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define assert(__e) ((__e) ? (void)0 : __assert_func (__FILE__, __LINE__, \
 | 
				
			||||||
 | 
											       __ASSERT_FUNC, #__e))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef __ASSERT_FUNC
 | 
				
			||||||
 | 
					  /* Use g++'s demangled names in C++.  */
 | 
				
			||||||
 | 
					#  if defined __cplusplus && defined __GNUC__
 | 
				
			||||||
 | 
					#   define __ASSERT_FUNC __PRETTY_FUNCTION__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* C99 requires the use of __func__.  */
 | 
				
			||||||
 | 
					#  elif __STDC_VERSION__ >= 199901L
 | 
				
			||||||
 | 
					#   define __ASSERT_FUNC __func__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Older versions of gcc don't have __func__ but can use __FUNCTION__.  */
 | 
				
			||||||
 | 
					#  elif __GNUC__ >= 2
 | 
				
			||||||
 | 
					#   define __ASSERT_FUNC __FUNCTION__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* failed to detect __func__ support.  */
 | 
				
			||||||
 | 
					#  else
 | 
				
			||||||
 | 
					#   define __ASSERT_FUNC ((char *) 0)
 | 
				
			||||||
 | 
					#  endif
 | 
				
			||||||
 | 
					# endif /* !__ASSERT_FUNC */
 | 
				
			||||||
 | 
					#endif /* !NDEBUG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void _EXFUN(__assert, (const char *, int, const char *)
 | 
				
			||||||
 | 
						    _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					void _EXFUN(__assert_func, (const char *, int, const char *, const char *)
 | 
				
			||||||
 | 
						    _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __STDC_VERSION__ >= 201112L && !defined __cplusplus
 | 
				
			||||||
 | 
					# define static_assert _Static_assert
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										124
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/complex.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										124
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/complex.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,124 @@
 | 
				
			|||||||
 | 
					/* $NetBSD: complex.h,v 1.3 2010/09/15 16:11:30 christos Exp $ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Written by Matthias Drochner.
 | 
				
			||||||
 | 
					 * Public domain.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_COMPLEX_H
 | 
				
			||||||
 | 
					#define	_COMPLEX_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define complex _Complex
 | 
				
			||||||
 | 
					#define _Complex_I 1.0fi
 | 
				
			||||||
 | 
					#define I _Complex_I
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5 Trigonometric functions */
 | 
				
			||||||
 | 
					/* 7.3.5.1 The cacos functions */
 | 
				
			||||||
 | 
					double complex cacos(double complex);
 | 
				
			||||||
 | 
					float complex cacosf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5.2 The casin functions */
 | 
				
			||||||
 | 
					double complex casin(double complex);
 | 
				
			||||||
 | 
					float complex casinf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5.1 The catan functions */
 | 
				
			||||||
 | 
					double complex catan(double complex);
 | 
				
			||||||
 | 
					float complex catanf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5.1 The ccos functions */
 | 
				
			||||||
 | 
					double complex ccos(double complex);
 | 
				
			||||||
 | 
					float complex ccosf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5.1 The csin functions */
 | 
				
			||||||
 | 
					double complex csin(double complex);
 | 
				
			||||||
 | 
					float complex csinf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.5.1 The ctan functions */
 | 
				
			||||||
 | 
					double complex ctan(double complex);
 | 
				
			||||||
 | 
					float complex ctanf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6 Hyperbolic functions */
 | 
				
			||||||
 | 
					/* 7.3.6.1 The cacosh functions */
 | 
				
			||||||
 | 
					double complex cacosh(double complex);
 | 
				
			||||||
 | 
					float complex cacoshf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6.2 The casinh functions */
 | 
				
			||||||
 | 
					double complex casinh(double complex);
 | 
				
			||||||
 | 
					float complex casinhf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6.3 The catanh functions */
 | 
				
			||||||
 | 
					double complex catanh(double complex);
 | 
				
			||||||
 | 
					float complex catanhf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6.4 The ccosh functions */
 | 
				
			||||||
 | 
					double complex ccosh(double complex);
 | 
				
			||||||
 | 
					float complex ccoshf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6.5 The csinh functions */
 | 
				
			||||||
 | 
					double complex csinh(double complex);
 | 
				
			||||||
 | 
					float complex csinhf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.6.6 The ctanh functions */
 | 
				
			||||||
 | 
					double complex ctanh(double complex);
 | 
				
			||||||
 | 
					float complex ctanhf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.7 Exponential and logarithmic functions */
 | 
				
			||||||
 | 
					/* 7.3.7.1 The cexp functions */
 | 
				
			||||||
 | 
					double complex cexp(double complex);
 | 
				
			||||||
 | 
					float complex cexpf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.7.2 The clog functions */
 | 
				
			||||||
 | 
					double complex clog(double complex);
 | 
				
			||||||
 | 
					float complex clogf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.8 Power and absolute-value functions */
 | 
				
			||||||
 | 
					/* 7.3.8.1 The cabs functions */
 | 
				
			||||||
 | 
					/*#ifndef __LIBM0_SOURCE__ */
 | 
				
			||||||
 | 
					/* avoid conflict with historical cabs(struct complex) */
 | 
				
			||||||
 | 
					/* double cabs(double complex) __RENAME(__c99_cabs);
 | 
				
			||||||
 | 
					   float cabsf(float complex) __RENAME(__c99_cabsf);
 | 
				
			||||||
 | 
					   #endif
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					double cabs(double complex) ;
 | 
				
			||||||
 | 
					float cabsf(float complex) ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.8.2 The cpow functions */
 | 
				
			||||||
 | 
					double complex cpow(double complex, double complex);
 | 
				
			||||||
 | 
					float complex cpowf(float complex, float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.8.3 The csqrt functions */
 | 
				
			||||||
 | 
					double complex csqrt(double complex);
 | 
				
			||||||
 | 
					float complex csqrtf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.9 Manipulation functions */
 | 
				
			||||||
 | 
					/* 7.3.9.1 The carg functions */ 
 | 
				
			||||||
 | 
					double carg(double complex);
 | 
				
			||||||
 | 
					float cargf(float complex);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.9.2 The cimag functions */
 | 
				
			||||||
 | 
					double cimag(double complex);
 | 
				
			||||||
 | 
					float cimagf(float complex);
 | 
				
			||||||
 | 
					/*long double cimagl(long double complex); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.9.3 The conj functions */
 | 
				
			||||||
 | 
					double complex conj(double complex);
 | 
				
			||||||
 | 
					float complex conjf(float complex);
 | 
				
			||||||
 | 
					/*long double complex conjl(long double complex); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.9.4 The cproj functions */
 | 
				
			||||||
 | 
					double complex cproj(double complex);
 | 
				
			||||||
 | 
					float complex cprojf(float complex);
 | 
				
			||||||
 | 
					/*long double complex cprojl(long double complex); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 7.3.9.5 The creal functions */
 | 
				
			||||||
 | 
					double creal(double complex);
 | 
				
			||||||
 | 
					float crealf(float complex);
 | 
				
			||||||
 | 
					/*long double creall(long double complex); */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* ! _COMPLEX_H */
 | 
				
			||||||
							
								
								
									
										43
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					#ifndef __SYS_CONFIG_H__
 | 
				
			||||||
 | 
					#define __SYS_CONFIG_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/ieeefp.h>  /* floating point macros */
 | 
				
			||||||
 | 
					#include <sys/features.h>	/* POSIX defs */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*************************************************************************
 | 
				
			||||||
 | 
					 esp8266-specific xtensa stuff
 | 
				
			||||||
 | 
					 *************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* esp8266 hardware FIFO buffers are 128 bytes */
 | 
				
			||||||
 | 
					#define __BUFSIZ__ 128
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*************************************************************************
 | 
				
			||||||
 | 
					 end of esp8266-specific stuff
 | 
				
			||||||
 | 
					 *************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __EXPORT
 | 
				
			||||||
 | 
					#define __EXPORT
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __IMPORT
 | 
				
			||||||
 | 
					#define __IMPORT
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define return type of read/write routines.  In POSIX, the return type
 | 
				
			||||||
 | 
					   for read()/write() is "ssize_t" but legacy newlib code has been using
 | 
				
			||||||
 | 
					   "int" for some time.  If not specified, "int" is defaulted.  */
 | 
				
			||||||
 | 
					#ifndef _READ_WRITE_RETURN_TYPE
 | 
				
			||||||
 | 
					#define _READ_WRITE_RETURN_TYPE int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* Define `count' parameter of read/write routines.  In POSIX, the `count'
 | 
				
			||||||
 | 
					   parameter is "size_t" but legacy newlib code has been using "int" for some
 | 
				
			||||||
 | 
					   time.  If not specified, "int" is defaulted.  */
 | 
				
			||||||
 | 
					#ifndef _READ_WRITE_BUFSIZE_TYPE
 | 
				
			||||||
 | 
					#define _READ_WRITE_BUFSIZE_TYPE int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __SYS_CONFIG_H__ */
 | 
				
			||||||
							
								
								
									
										113
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/ctype.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										113
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/ctype.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,113 @@
 | 
				
			|||||||
 | 
					#ifndef _CTYPE_H_
 | 
				
			||||||
 | 
					#define _CTYPE_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(isalnum, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isalpha, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(iscntrl, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isdigit, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isgraph, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(islower, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isprint, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(ispunct, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isspace, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isupper, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(isxdigit,(int __c));
 | 
				
			||||||
 | 
					int _EXFUN(tolower, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(toupper, (int __c));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L
 | 
				
			||||||
 | 
					int _EXFUN(isblank, (int __c));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					int _EXFUN(isascii, (int __c));
 | 
				
			||||||
 | 
					int _EXFUN(toascii, (int __c));
 | 
				
			||||||
 | 
					#define _tolower(__c) ((unsigned char)(__c) - 'A' + 'a')
 | 
				
			||||||
 | 
					#define _toupper(__c) ((unsigned char)(__c) - 'a' + 'A')
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_U	01
 | 
				
			||||||
 | 
					#define	_L	02
 | 
				
			||||||
 | 
					#define	_N	04
 | 
				
			||||||
 | 
					#define	_S	010
 | 
				
			||||||
 | 
					#define _P	020
 | 
				
			||||||
 | 
					#define _C	040
 | 
				
			||||||
 | 
					#define _X	0100
 | 
				
			||||||
 | 
					#define	_B	0200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _MB_CAPABLE
 | 
				
			||||||
 | 
					_CONST
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					extern	__IMPORT char	*__ctype_ptr__;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __cplusplus
 | 
				
			||||||
 | 
					/* These macros are intentionally written in a manner that will trigger
 | 
				
			||||||
 | 
					   a gcc -Wall warning if the user mistakenly passes a 'char' instead
 | 
				
			||||||
 | 
					   of an int containing an 'unsigned char'.  Note that the sizeof will
 | 
				
			||||||
 | 
					   always be 1, which is what we want for mapping EOF to __ctype_ptr__[0];
 | 
				
			||||||
 | 
					   the use of a raw index inside the sizeof triggers the gcc warning if
 | 
				
			||||||
 | 
					   __c was of type char, and sizeof masks side effects of the extra __c.
 | 
				
			||||||
 | 
					   Meanwhile, the real index to __ctype_ptr__+1 must be cast to int,
 | 
				
			||||||
 | 
					   since isalpha(0x100000001LL) must equal isalpha(1), rather than being
 | 
				
			||||||
 | 
					   an out-of-bounds reference on a 64-bit machine.  */
 | 
				
			||||||
 | 
					#define __ctype_lookup(__c) ((__ctype_ptr__+sizeof(""[__c]))[(int)(__c)])
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	isalpha(__c)	(__ctype_lookup(__c)&(_U|_L))
 | 
				
			||||||
 | 
					#define	isupper(__c)	((__ctype_lookup(__c)&(_U|_L))==_U)
 | 
				
			||||||
 | 
					#define	islower(__c)	((__ctype_lookup(__c)&(_U|_L))==_L)
 | 
				
			||||||
 | 
					#define	isdigit(__c)	(__ctype_lookup(__c)&_N)
 | 
				
			||||||
 | 
					#define	isxdigit(__c)	(__ctype_lookup(__c)&(_X|_N))
 | 
				
			||||||
 | 
					#define	isspace(__c)	(__ctype_lookup(__c)&_S)
 | 
				
			||||||
 | 
					#define ispunct(__c)	(__ctype_lookup(__c)&_P)
 | 
				
			||||||
 | 
					#define isalnum(__c)	(__ctype_lookup(__c)&(_U|_L|_N))
 | 
				
			||||||
 | 
					#define isprint(__c)	(__ctype_lookup(__c)&(_P|_U|_L|_N|_B))
 | 
				
			||||||
 | 
					#define	isgraph(__c)	(__ctype_lookup(__c)&(_P|_U|_L|_N))
 | 
				
			||||||
 | 
					#define iscntrl(__c)	(__ctype_lookup(__c)&_C)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__) && \
 | 
				
			||||||
 | 
					    (!defined(__STRICT_ANSI__) || __STDC_VERSION__ >= 199901L)
 | 
				
			||||||
 | 
					#define isblank(__c) \
 | 
				
			||||||
 | 
					  __extension__ ({ __typeof__ (__c) __x = (__c);		\
 | 
				
			||||||
 | 
					        (__ctype_lookup(__x)&_B) || (int) (__x) == '\t';})
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Non-gcc versions will get the library versions, and will be
 | 
				
			||||||
 | 
					   slightly slower.  These macros are not NLS-aware so they are
 | 
				
			||||||
 | 
					   disabled if the system supports the extended character sets. */
 | 
				
			||||||
 | 
					# if defined(__GNUC__)
 | 
				
			||||||
 | 
					#  if !defined (_MB_EXTENDED_CHARSETS_ISO) && !defined (_MB_EXTENDED_CHARSETS_WINDOWS)
 | 
				
			||||||
 | 
					#   define toupper(__c) \
 | 
				
			||||||
 | 
					  __extension__ ({ __typeof__ (__c) __x = (__c);	\
 | 
				
			||||||
 | 
					      islower (__x) ? (int) __x - 'a' + 'A' : (int) __x;})
 | 
				
			||||||
 | 
					#   define tolower(__c) \
 | 
				
			||||||
 | 
					  __extension__ ({ __typeof__ (__c) __x = (__c);	\
 | 
				
			||||||
 | 
					      isupper (__x) ? (int) __x - 'A' + 'a' : (int) __x;})
 | 
				
			||||||
 | 
					#  else /* _MB_EXTENDED_CHARSETS* */
 | 
				
			||||||
 | 
					/* Allow a gcc warning if the user passed 'char', but defer to the
 | 
				
			||||||
 | 
					   function.  */
 | 
				
			||||||
 | 
					#   define toupper(__c) \
 | 
				
			||||||
 | 
					  __extension__ ({ __typeof__ (__c) __x = (__c);	\
 | 
				
			||||||
 | 
					      (void) __ctype_ptr__[__x]; (toupper) (__x);})
 | 
				
			||||||
 | 
					#   define tolower(__c) \
 | 
				
			||||||
 | 
					  __extension__ ({ __typeof__ (__c) __x = (__c);	\
 | 
				
			||||||
 | 
					      (void) __ctype_ptr__[__x]; (tolower) (__x);})
 | 
				
			||||||
 | 
					#  endif /* _MB_EXTENDED_CHARSETS* */
 | 
				
			||||||
 | 
					# endif /* __GNUC__ */
 | 
				
			||||||
 | 
					#endif /* !__cplusplus */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#define isascii(__c)	((unsigned)(__c)<=0177)
 | 
				
			||||||
 | 
					#define toascii(__c)	((__c)&0177)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* For C++ backward-compatibility only.  */
 | 
				
			||||||
 | 
					extern	__IMPORT _CONST char	_ctype_[];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _CTYPE_H_ */
 | 
				
			||||||
							
								
								
									
										15
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/dirent.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/dirent.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					#ifndef _DIRENT_H_
 | 
				
			||||||
 | 
					#define _DIRENT_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#include <sys/dirent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(MAXNAMLEN) && !defined(_POSIX_SOURCE)
 | 
				
			||||||
 | 
					#define MAXNAMLEN 1024
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /*_DIRENT_H_*/
 | 
				
			||||||
							
								
								
									
										15
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/envlock.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										15
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/envlock.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,15 @@
 | 
				
			|||||||
 | 
					/* envlock.h -- header file for env routines.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_ENVLOCK_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_ENVLOCK_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ENV_LOCK __env_lock(reent_ptr)
 | 
				
			||||||
 | 
					#define ENV_UNLOCK __env_unlock(reent_ptr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void _EXFUN(__env_lock,(struct _reent *reent));
 | 
				
			||||||
 | 
					void _EXFUN(__env_unlock,(struct _reent *reent));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _INCLUDE_ENVLOCK_H_ */
 | 
				
			||||||
							
								
								
									
										16
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/envz.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										16
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/envz.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,16 @@
 | 
				
			|||||||
 | 
					/* Copyright (C) 2002 by  Red Hat, Incorporated. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and distribute this software
 | 
				
			||||||
 | 
					 * is freely granted, provided that this notice is preserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <errno.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The newlib implementation of these functions assumes that sizeof(char) == 1. */
 | 
				
			||||||
 | 
					char * envz_entry (const char *envz, size_t envz_len, const char *name);
 | 
				
			||||||
 | 
					char * envz_get (const char *envz, size_t envz_len, const char *name);
 | 
				
			||||||
 | 
					error_t envz_add (char **envz, size_t *envz_len, const char *name, const char *value);
 | 
				
			||||||
 | 
					error_t envz_merge (char **envz, size_t *envz_len, const char *envz2, size_t envz2_len, int override);
 | 
				
			||||||
 | 
					void envz_remove(char **envz, size_t *envz_len, const char *name);
 | 
				
			||||||
 | 
					void envz_strip (char **envz, size_t *envz_len);
 | 
				
			||||||
							
								
								
									
										11
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/errno.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										11
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/errno.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,11 @@
 | 
				
			|||||||
 | 
					#ifndef __ERRNO_H__
 | 
				
			||||||
 | 
					#define __ERRNO_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __error_t_defined
 | 
				
			||||||
 | 
					typedef int error_t;
 | 
				
			||||||
 | 
					#define __error_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/errno.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !__ERRNO_H__ */
 | 
				
			||||||
							
								
								
									
										13
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/fastmath.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/fastmath.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					#ifndef _FASTMATH_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _FASTMATH_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <math.h>
 | 
				
			||||||
 | 
					#include <machine/fastmath.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _FASTMATH_H_ */
 | 
				
			||||||
							
								
								
									
										1
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/fcntl.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/fcntl.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					#include <sys/fcntl.h>
 | 
				
			||||||
							
								
								
									
										88
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/fenv.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										88
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/fenv.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,88 @@
 | 
				
			|||||||
 | 
					/* Copyright (c) 2011 Tensilica Inc.  ALL RIGHTS RESERVED.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					   modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					   are met:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					      notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   2. Redistributions in binary form must reproduce the above
 | 
				
			||||||
 | 
					      copyright notice, this list of conditions and the following
 | 
				
			||||||
 | 
					      disclaimer in the documentation and/or other materials provided
 | 
				
			||||||
 | 
					      with the distribution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
 | 
				
			||||||
 | 
					   "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
 | 
				
			||||||
 | 
					   LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
 | 
				
			||||||
 | 
					   FOR A PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL
 | 
				
			||||||
 | 
					   TENSILICA INCORPORATED BE LIABLE FOR ANY DIRECT, INDIRECT,
 | 
				
			||||||
 | 
					   INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
 | 
				
			||||||
 | 
					   (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
 | 
				
			||||||
 | 
					   SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					   HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
 | 
				
			||||||
 | 
					   STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
 | 
				
			||||||
 | 
					   ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED
 | 
				
			||||||
 | 
					   OF THE POSSIBILITY OF SUCH DAMAGE.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _FENV_H
 | 
				
			||||||
 | 
					#define _FENV_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef unsigned long fenv_t;
 | 
				
			||||||
 | 
					typedef unsigned long fexcept_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FE_DIVBYZERO   0x08
 | 
				
			||||||
 | 
					#define FE_INEXACT     0x01
 | 
				
			||||||
 | 
					#define FE_INVALID     0x10
 | 
				
			||||||
 | 
					#define FE_OVERFLOW    0x04
 | 
				
			||||||
 | 
					#define FE_UNDERFLOW   0x02
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FE_ALL_EXCEPT \
 | 
				
			||||||
 | 
					  (FE_DIVBYZERO  |		      \
 | 
				
			||||||
 | 
					   FE_INEXACT    |		      \
 | 
				
			||||||
 | 
					   FE_INVALID    |		      \
 | 
				
			||||||
 | 
					   FE_OVERFLOW   |		      \
 | 
				
			||||||
 | 
					   FE_UNDERFLOW)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FE_DOWNWARD   0x3
 | 
				
			||||||
 | 
					#define FE_TONEAREST  0x0
 | 
				
			||||||
 | 
					#define FE_TOWARDZERO 0x1
 | 
				
			||||||
 | 
					#define FE_UPWARD     0x2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FE_DFL_ENV ((const fenv_t *) 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int  feclearexcept(int);
 | 
				
			||||||
 | 
					int  fegetexceptflag(fexcept_t *, int);
 | 
				
			||||||
 | 
					int  feraiseexcept(int);
 | 
				
			||||||
 | 
					int  fesetexceptflag(const fexcept_t *, int);
 | 
				
			||||||
 | 
					int  fetestexcept(int);
 | 
				
			||||||
 | 
					int  fegetround(void);
 | 
				
			||||||
 | 
					int  fesetround(int);
 | 
				
			||||||
 | 
					int  fegetenv(fenv_t *);
 | 
				
			||||||
 | 
					int  feholdexcept(fenv_t *);
 | 
				
			||||||
 | 
					int  fesetenv(const fenv_t *);
 | 
				
			||||||
 | 
					int  feupdateenv(const fenv_t *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* glibc extensions  */
 | 
				
			||||||
 | 
					int feenableexcept(int excepts);
 | 
				
			||||||
 | 
					int fedisableexcept(int excepts);
 | 
				
			||||||
 | 
					int fegetexcept(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _FE_EXCEPTION_FLAGS_OFFSET 7
 | 
				
			||||||
 | 
					#define _FE_EXCEPTION_FLAG_MASK (FE_ALL_EXCEPT << _FE_EXCEPTION_FLAGS_OFFSET)
 | 
				
			||||||
 | 
					#define _FE_EXCEPTION_ENABLE_OFFSET 2
 | 
				
			||||||
 | 
					#define _FE_EXCEPTION_ENABLE_MASK (FE_ALL_EXCEPT << _FE_EXCEPTION_ENABLE_OFFSET)
 | 
				
			||||||
 | 
					#define _FE_ROUND_MODE_OFFSET 0
 | 
				
			||||||
 | 
					#define _FE_ROUND_MODE_MASK (0x3 << _FE_ROUND_MODE_OFFSET)
 | 
				
			||||||
 | 
					#define _FE_FLOATING_ENV_MASK (_FE_EXCEPTION_FLAG_MASK | _FE_EXCEPTION_ENABLE_MASK | _FE_ROUND_MODE_MASK)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										55
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/fnmatch.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										55
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/fnmatch.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,55 @@
 | 
				
			|||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1992, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * $FreeBSD: src/include/fnmatch.h,v 1.10 2002/03/23 17:24:53 imp Exp $
 | 
				
			||||||
 | 
					 *	@(#)fnmatch.h	8.1 (Berkeley) 6/2/93
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_FNMATCH_H_
 | 
				
			||||||
 | 
					#define	_FNMATCH_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	FNM_NOMATCH	1	/* Match failed. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	FNM_NOESCAPE	0x01	/* Disable backslash escaping. */
 | 
				
			||||||
 | 
					#define	FNM_PATHNAME	0x02	/* Slash must be matched by slash. */
 | 
				
			||||||
 | 
					#define	FNM_PERIOD	0x04	/* Period must be matched by period. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_GNU_SOURCE) || !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
 | 
				
			||||||
 | 
					#define	FNM_LEADING_DIR	0x08	/* Ignore /<tail> after Imatch. */
 | 
				
			||||||
 | 
					#define	FNM_CASEFOLD	0x10	/* Case insensitive search. */
 | 
				
			||||||
 | 
					#define	FNM_IGNORECASE	FNM_CASEFOLD
 | 
				
			||||||
 | 
					#define	FNM_FILE_NAME	FNM_PATHNAME
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					int	 fnmatch(const char *, const char *, int);
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_FNMATCH_H_ */
 | 
				
			||||||
							
								
								
									
										190
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/getopt.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										190
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/getopt.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,190 @@
 | 
				
			|||||||
 | 
					/****************************************************************************
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					getopt.h - Read command line options
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					AUTHOR: Gregory Pietsch
 | 
				
			||||||
 | 
					CREATED Thu Jan 09 22:37:00 1997
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					DESCRIPTION:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The getopt() function parses the command line arguments.  Its arguments argc
 | 
				
			||||||
 | 
					and argv are the argument count and array as passed to the main() function
 | 
				
			||||||
 | 
					on program invocation.  The argument optstring is a list of available option
 | 
				
			||||||
 | 
					characters.  If such a character is followed by a colon (`:'), the option
 | 
				
			||||||
 | 
					takes an argument, which is placed in optarg.  If such a character is
 | 
				
			||||||
 | 
					followed by two colons, the option takes an optional argument, which is
 | 
				
			||||||
 | 
					placed in optarg.  If the option does not take an argument, optarg is NULL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The external variable optind is the index of the next array element of argv
 | 
				
			||||||
 | 
					to be processed; it communicates from one call to the next which element to
 | 
				
			||||||
 | 
					process.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The getopt_long() function works like getopt() except that it also accepts
 | 
				
			||||||
 | 
					long options started by two dashes `--'.  If these take values, it is either
 | 
				
			||||||
 | 
					in the form
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--arg=value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 or
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					--arg value
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					It takes the additional arguments longopts which is a pointer to the first
 | 
				
			||||||
 | 
					element of an array of type GETOPT_LONG_OPTION_T, defined below.  The last
 | 
				
			||||||
 | 
					element of the array has to be filled with NULL for the name field.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The longind pointer points to the index of the current long option relative
 | 
				
			||||||
 | 
					to longopts if it is non-NULL.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The getopt() function returns the option character if the option was found
 | 
				
			||||||
 | 
					successfully, `:' if there was a missing parameter for one of the options,
 | 
				
			||||||
 | 
					`?' for an unknown option character, and EOF for the end of the option list.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The getopt_long() function's return value is described below.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The function getopt_long_only() is identical to getopt_long(), except that a
 | 
				
			||||||
 | 
					plus sign `+' can introduce long options as well as `--'.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Describe how to deal with options that follow non-option ARGV-elements.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					If the caller did not specify anything, the default is REQUIRE_ORDER if the
 | 
				
			||||||
 | 
					environment variable POSIXLY_CORRECT is defined, PERMUTE otherwise.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					REQUIRE_ORDER means don't recognize them as options; stop option processing
 | 
				
			||||||
 | 
					when the first non-option is seen.  This is what Unix does.  This mode of
 | 
				
			||||||
 | 
					operation is selected by either setting the environment variable
 | 
				
			||||||
 | 
					POSIXLY_CORRECT, or using `+' as the first character of the optstring
 | 
				
			||||||
 | 
					parameter.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					PERMUTE is the default.  We permute the contents of ARGV as we scan, so that
 | 
				
			||||||
 | 
					eventually all the non-options are at the end.  This allows options to be
 | 
				
			||||||
 | 
					given in any order, even with programs that were not written to expect this.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					RETURN_IN_ORDER is an option available to programs that were written to
 | 
				
			||||||
 | 
					expect options and other ARGV-elements in any order and that care about the
 | 
				
			||||||
 | 
					ordering of the two.  We describe each non-option ARGV-element as if it were
 | 
				
			||||||
 | 
					the argument of an option with character code 1.  Using `-' as the first
 | 
				
			||||||
 | 
					character of the optstring parameter selects this mode of operation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					The special argument `--' forces an end of option-scanning regardless of the
 | 
				
			||||||
 | 
					value of `ordering'.  In the case of RETURN_IN_ORDER, only `--' can cause
 | 
				
			||||||
 | 
					getopt() and friends to return EOF with optind != argc.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					COPYRIGHT NOTICE AND DISCLAIMER:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Copyright (C) 1997 Gregory Pietsch
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					This file and the accompanying getopt.c implementation file are hereby 
 | 
				
			||||||
 | 
					placed in the public domain without restrictions.  Just give the author 
 | 
				
			||||||
 | 
					credit, don't claim you wrote it or prevent anyone else from using it.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					Gregory Pietsch's current e-mail address:
 | 
				
			||||||
 | 
					gpietsch@comcast.net
 | 
				
			||||||
 | 
					****************************************************************************/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is a glibc-extension header file. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef GETOPT_H
 | 
				
			||||||
 | 
					#define GETOPT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* include files needed by this include file */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define no_argument		0
 | 
				
			||||||
 | 
					#define required_argument	1
 | 
				
			||||||
 | 
					#define optional_argument	2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C"
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif				/* __cplusplus */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* types defined by this include file */
 | 
				
			||||||
 | 
					  struct option
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    const char *name;		/* the name of the long option */
 | 
				
			||||||
 | 
					    int has_arg;		/* one of the above macros */
 | 
				
			||||||
 | 
					    int *flag;			/* determines if getopt_long() returns a
 | 
				
			||||||
 | 
									 * value for a long option; if it is
 | 
				
			||||||
 | 
									 * non-NULL, 0 is returned as a function
 | 
				
			||||||
 | 
									 * value and the value of val is stored in
 | 
				
			||||||
 | 
									 * the area pointed to by flag.  Otherwise,
 | 
				
			||||||
 | 
									 * val is returned. */
 | 
				
			||||||
 | 
					    int val;			/* determines the value to return if flag is
 | 
				
			||||||
 | 
									 * NULL. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* While getopt.h is a glibc extension, the following are newlib extensions.
 | 
				
			||||||
 | 
					 * They are optionally included via the __need_getopt_newlib flag.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __need_getopt_newlib
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* macros defined by this include file */
 | 
				
			||||||
 | 
					  #define NO_ARG          	no_argument
 | 
				
			||||||
 | 
					  #define REQUIRED_ARG    	required_argument
 | 
				
			||||||
 | 
					  #define OPTIONAL_ARG    	optional_argument
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* The GETOPT_DATA_INITIALIZER macro is used to initialize a statically-
 | 
				
			||||||
 | 
					     allocated variable of type struct getopt_data.  */
 | 
				
			||||||
 | 
					  #define GETOPT_DATA_INITIALIZER	{0,0,0,0,0}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* These #defines are to make accessing the reentrant functions easier.  */
 | 
				
			||||||
 | 
					  #define getopt_r		__getopt_r
 | 
				
			||||||
 | 
					  #define getopt_long_r		__getopt_long_r
 | 
				
			||||||
 | 
					  #define getopt_long_only_r	__getopt_long_only_r
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* The getopt_data structure is for reentrancy. Its members are similar to
 | 
				
			||||||
 | 
					     the externally-defined variables.  */
 | 
				
			||||||
 | 
					  typedef struct getopt_data
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    char *optarg;
 | 
				
			||||||
 | 
					    int optind, opterr, optopt, optwhere;
 | 
				
			||||||
 | 
					  } getopt_data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __need_getopt_newlib */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* externally-defined variables */
 | 
				
			||||||
 | 
					  extern char *optarg;
 | 
				
			||||||
 | 
					  extern int optind;
 | 
				
			||||||
 | 
					  extern int opterr;
 | 
				
			||||||
 | 
					  extern int optopt;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* function prototypes */
 | 
				
			||||||
 | 
					  int _EXFUN (getopt,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__optstring));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _EXFUN (getopt_long,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__shortopts,
 | 
				
			||||||
 | 
						       const struct option * __longopts, int *__longind));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _EXFUN (getopt_long_only,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__shortopts,
 | 
				
			||||||
 | 
						       const struct option * __longopts, int *__longind));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __need_getopt_newlib
 | 
				
			||||||
 | 
					  int _EXFUN (__getopt_r,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__optstring,
 | 
				
			||||||
 | 
						       struct getopt_data * __data));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _EXFUN (__getopt_long_r,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__shortopts,
 | 
				
			||||||
 | 
						       const struct option * __longopts, int *__longind,
 | 
				
			||||||
 | 
						       struct getopt_data * __data));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _EXFUN (__getopt_long_only_r,
 | 
				
			||||||
 | 
						      (int __argc, char *const __argv[], const char *__shortopts,
 | 
				
			||||||
 | 
						       const struct option * __longopts, int *__longind,
 | 
				
			||||||
 | 
						       struct getopt_data * __data));
 | 
				
			||||||
 | 
					#endif /* __need_getopt_newlib */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __cplusplus  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* GETOPT_H */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* END OF FILE getopt.h */
 | 
				
			||||||
							
								
								
									
										90
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/glob.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										90
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/glob.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,90 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 1989, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This code is derived from software contributed to Berkeley by
 | 
				
			||||||
 | 
					 * Guido van Rossum.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)glob.h	8.1 (Berkeley) 6/2/93
 | 
				
			||||||
 | 
					 * $FreeBSD: src/include/glob.h,v 1.6 2002/03/23 17:24:53 imp Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _GLOB_H_
 | 
				
			||||||
 | 
					#define	_GLOB_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct stat;
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
						int gl_pathc;		/* Count of total paths so far. */
 | 
				
			||||||
 | 
						int gl_matchc;		/* Count of paths matching pattern. */
 | 
				
			||||||
 | 
						int gl_offs;		/* Reserved at beginning of gl_pathv. */
 | 
				
			||||||
 | 
						int gl_flags;		/* Copy of flags parameter to glob. */
 | 
				
			||||||
 | 
						char **gl_pathv;	/* List of paths matching pattern. */
 | 
				
			||||||
 | 
									/* Copy of errfunc parameter to glob. */
 | 
				
			||||||
 | 
						int (*gl_errfunc)(const char *, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						/*
 | 
				
			||||||
 | 
						 * Alternate filesystem access methods for glob; replacement
 | 
				
			||||||
 | 
						 * versions of closedir(3), readdir(3), opendir(3), stat(2)
 | 
				
			||||||
 | 
						 * and lstat(2).
 | 
				
			||||||
 | 
						 */
 | 
				
			||||||
 | 
						void (*gl_closedir)(void *);
 | 
				
			||||||
 | 
						struct dirent *(*gl_readdir)(void *);
 | 
				
			||||||
 | 
						void *(*gl_opendir)(const char *);
 | 
				
			||||||
 | 
						int (*gl_lstat)(const char *, struct stat *);
 | 
				
			||||||
 | 
						int (*gl_stat)(const char *, struct stat *);
 | 
				
			||||||
 | 
					} glob_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	GLOB_APPEND	0x0001	/* Append to output from previous call. */
 | 
				
			||||||
 | 
					#define	GLOB_DOOFFS	0x0002	/* Use gl_offs. */
 | 
				
			||||||
 | 
					#define	GLOB_ERR	0x0004	/* Return on error. */
 | 
				
			||||||
 | 
					#define	GLOB_MARK	0x0008	/* Append / to matching directories. */
 | 
				
			||||||
 | 
					#define	GLOB_NOCHECK	0x0010	/* Return pattern itself if nothing matches. */
 | 
				
			||||||
 | 
					#define	GLOB_NOSORT	0x0020	/* Don't sort. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	GLOB_ALTDIRFUNC	0x0040	/* Use alternately specified directory funcs. */
 | 
				
			||||||
 | 
					#define	GLOB_BRACE	0x0080	/* Expand braces ala csh. */
 | 
				
			||||||
 | 
					#define	GLOB_MAGCHAR	0x0100	/* Pattern had globbing characters. */
 | 
				
			||||||
 | 
					#define	GLOB_NOMAGIC	0x0200	/* GLOB_NOCHECK without magic chars (csh). */
 | 
				
			||||||
 | 
					#define	GLOB_QUOTE	0x0400	/* Quote special chars with \. */
 | 
				
			||||||
 | 
					#define	GLOB_TILDE	0x0800	/* Expand tilde names from the passwd file. */
 | 
				
			||||||
 | 
					#define	GLOB_LIMIT	0x1000	/* limit number of returned paths */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* backwards compatibility, this is the old name for this option */
 | 
				
			||||||
 | 
					#define GLOB_MAXPATH	GLOB_LIMIT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	GLOB_NOSPACE	(-1)	/* Malloc call failed. */
 | 
				
			||||||
 | 
					#define	GLOB_ABEND	(-2)	/* Unignored error. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					int	glob(const char *__restrict, int, int (*)(const char *, int), 
 | 
				
			||||||
 | 
							glob_t *__restrict);
 | 
				
			||||||
 | 
					void	globfree(glob_t *);
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_GLOB_H_ */
 | 
				
			||||||
							
								
								
									
										95
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/grp.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										95
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/grp.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,95 @@
 | 
				
			|||||||
 | 
					/*	$NetBSD: grp.h,v 1.7 1995/04/29 05:30:40 cgd Exp $	*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1989, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 * (c) UNIX System Laboratories, Inc.
 | 
				
			||||||
 | 
					 * All or some portions of this file are derived from material licensed
 | 
				
			||||||
 | 
					 * to the University of California by American Telephone and Telegraph
 | 
				
			||||||
 | 
					 * Co. or Unix System Laboratories, Inc. and are reproduced herein with
 | 
				
			||||||
 | 
					 * the permission of UNIX System Laboratories, Inc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 3. All advertising materials mentioning features or use of this software
 | 
				
			||||||
 | 
					 *    must display the following acknowledgement:
 | 
				
			||||||
 | 
					 *	This product includes software developed by the University of
 | 
				
			||||||
 | 
					 *	California, Berkeley and its contributors.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)grp.h	8.2 (Berkeley) 1/21/94
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _GRP_H_
 | 
				
			||||||
 | 
					#define	_GRP_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <cygwin/grp.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(_POSIX_SOURCE) && !defined(_XOPEN_SOURCE)
 | 
				
			||||||
 | 
					#define	_PATH_GROUP		"/etc/group"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct group {
 | 
				
			||||||
 | 
						char	*gr_name;		/* group name */
 | 
				
			||||||
 | 
						char	*gr_passwd;		/* group password */
 | 
				
			||||||
 | 
						gid_t	gr_gid;			/* group id */
 | 
				
			||||||
 | 
						char	**gr_mem;		/* group members */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __INSIDE_CYGWIN__
 | 
				
			||||||
 | 
					struct group	*getgrgid (gid_t);
 | 
				
			||||||
 | 
					struct group	*getgrnam (const char *);
 | 
				
			||||||
 | 
					int		 getgrnam_r (const char *, struct group *,
 | 
				
			||||||
 | 
								char *, size_t, struct group **);
 | 
				
			||||||
 | 
					int		 getgrgid_r (gid_t, struct group *,
 | 
				
			||||||
 | 
								char *, size_t, struct group **);
 | 
				
			||||||
 | 
					#ifndef _POSIX_SOURCE
 | 
				
			||||||
 | 
					struct group	*getgrent (void);
 | 
				
			||||||
 | 
					void		 setgrent (void);
 | 
				
			||||||
 | 
					void		 endgrent (void);
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					void		 setgrfile (const char *);
 | 
				
			||||||
 | 
					#endif /* !__CYGWIN__ */
 | 
				
			||||||
 | 
					#ifndef _XOPEN_SOURCE
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					char		*group_from_gid (gid_t, int);
 | 
				
			||||||
 | 
					int		 setgroupent (int);
 | 
				
			||||||
 | 
					#endif /* !__CYGWIN__ */
 | 
				
			||||||
 | 
					int		 initgroups (const char *, gid_t);
 | 
				
			||||||
 | 
					#endif /* !_XOPEN_SOURCE */
 | 
				
			||||||
 | 
					#endif /* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					#endif /* !__INSIDE_CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_GRP_H_ */
 | 
				
			||||||
							
								
								
									
										63
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/iconv.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										63
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/iconv.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,63 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2003-2004, Artem B. Bityuckiy, SoftMine Corporation.
 | 
				
			||||||
 | 
					 * Rights transferred to Franklin Electronic Publishers.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef _ICONV_H_
 | 
				
			||||||
 | 
					#define _ICONV_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <reent.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* iconv_t: charset conversion descriptor type */
 | 
				
			||||||
 | 
					typedef _iconv_t iconv_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					iconv_t
 | 
				
			||||||
 | 
					_EXFUN(iconv_open, (_CONST char *, _CONST char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					size_t
 | 
				
			||||||
 | 
					_EXFUN(iconv, (iconv_t, char **__restrict, size_t *__restrict, 
 | 
				
			||||||
 | 
					               char **__restrict, size_t *__restrict));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(iconv_close, (iconv_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					iconv_t
 | 
				
			||||||
 | 
					_EXFUN(_iconv_open_r, (struct _reent *, _CONST char *, _CONST char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					size_t
 | 
				
			||||||
 | 
					_EXFUN(_iconv_r, (struct _reent *, iconv_t, _CONST char **,
 | 
				
			||||||
 | 
					                  size_t *, char **, size_t *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(_iconv_close_r, (struct _reent *, iconv_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* #ifndef _ICONV_H_ */
 | 
				
			||||||
							
								
								
									
										256
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/ieeefp.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										256
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/ieeefp.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,256 @@
 | 
				
			|||||||
 | 
					#ifndef _IEEE_FP_H_
 | 
				
			||||||
 | 
					#define _IEEE_FP_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/ieeefp.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* FIXME FIXME FIXME:
 | 
				
			||||||
 | 
					   Neither of __ieee_{float,double}_shape_tape seem to be used anywhere
 | 
				
			||||||
 | 
					   except in libm/test.  If that is the case, please delete these from here.
 | 
				
			||||||
 | 
					   If that is not the case, please insert documentation here describing why
 | 
				
			||||||
 | 
					   they're needed.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef union 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  double value;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int sign : 1;
 | 
				
			||||||
 | 
					    unsigned int exponent: 11;
 | 
				
			||||||
 | 
					    unsigned int fraction0:4;
 | 
				
			||||||
 | 
					    unsigned int fraction1:16;
 | 
				
			||||||
 | 
					    unsigned int fraction2:16;
 | 
				
			||||||
 | 
					    unsigned int fraction3:16;
 | 
				
			||||||
 | 
					    
 | 
				
			||||||
 | 
					  } number;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int sign : 1;
 | 
				
			||||||
 | 
					    unsigned int exponent: 11;
 | 
				
			||||||
 | 
					    unsigned int quiet:1;
 | 
				
			||||||
 | 
					    unsigned int function0:3;
 | 
				
			||||||
 | 
					    unsigned int function1:16;
 | 
				
			||||||
 | 
					    unsigned int function2:16;
 | 
				
			||||||
 | 
					    unsigned int function3:16;
 | 
				
			||||||
 | 
					  } nan;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned long msw;
 | 
				
			||||||
 | 
					    unsigned long lsw;
 | 
				
			||||||
 | 
					  } parts;
 | 
				
			||||||
 | 
					    long aslong[2];
 | 
				
			||||||
 | 
					} __ieee_double_shape_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef union 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  double value;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					#ifdef __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					    unsigned int fraction3:16;
 | 
				
			||||||
 | 
					    unsigned int fraction2:16;
 | 
				
			||||||
 | 
					    unsigned int fraction1:16;
 | 
				
			||||||
 | 
					    unsigned int fraction0: 4;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    unsigned int fraction1:32;
 | 
				
			||||||
 | 
					    unsigned int fraction0:20;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    unsigned int exponent :11;
 | 
				
			||||||
 | 
					    unsigned int sign     : 1;
 | 
				
			||||||
 | 
					  } number;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					#ifdef __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					    unsigned int function3:16;
 | 
				
			||||||
 | 
					    unsigned int function2:16;
 | 
				
			||||||
 | 
					    unsigned int function1:16;
 | 
				
			||||||
 | 
					    unsigned int function0:3;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    unsigned int function1:32;
 | 
				
			||||||
 | 
					    unsigned int function0:19;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					    unsigned int quiet:1;
 | 
				
			||||||
 | 
					    unsigned int exponent: 11;
 | 
				
			||||||
 | 
					    unsigned int sign : 1;
 | 
				
			||||||
 | 
					  } nan;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned long lsw;
 | 
				
			||||||
 | 
					    unsigned long msw;
 | 
				
			||||||
 | 
					  } parts;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  long aslong[2];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					} __ieee_double_shape_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef union
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  float value;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int sign : 1;
 | 
				
			||||||
 | 
					    unsigned int exponent: 8;
 | 
				
			||||||
 | 
					    unsigned int fraction0: 7;
 | 
				
			||||||
 | 
					    unsigned int fraction1: 16;
 | 
				
			||||||
 | 
					  } number;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int sign:1;
 | 
				
			||||||
 | 
					    unsigned int exponent:8;
 | 
				
			||||||
 | 
					    unsigned int quiet:1;
 | 
				
			||||||
 | 
					    unsigned int function0:6;
 | 
				
			||||||
 | 
					    unsigned int function1:16;
 | 
				
			||||||
 | 
					  } nan;
 | 
				
			||||||
 | 
					  long p1;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					} __ieee_float_shape_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef union
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  float value;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int fraction0: 7;
 | 
				
			||||||
 | 
					    unsigned int fraction1: 16;
 | 
				
			||||||
 | 
					    unsigned int exponent: 8;
 | 
				
			||||||
 | 
					    unsigned int sign : 1;
 | 
				
			||||||
 | 
					  } number;
 | 
				
			||||||
 | 
					  struct 
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    unsigned int function1:16;
 | 
				
			||||||
 | 
					    unsigned int function0:6;
 | 
				
			||||||
 | 
					    unsigned int quiet:1;
 | 
				
			||||||
 | 
					    unsigned int exponent:8;
 | 
				
			||||||
 | 
					    unsigned int sign:1;
 | 
				
			||||||
 | 
					  } nan;
 | 
				
			||||||
 | 
					  long p1;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					} __ieee_float_shape_type;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* FLOATING ROUNDING */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int fp_rnd;
 | 
				
			||||||
 | 
					#define FP_RN 0 	/* Round to nearest 		*/
 | 
				
			||||||
 | 
					#define FP_RM 1		/* Round down 			*/
 | 
				
			||||||
 | 
					#define FP_RP 2		/* Round up 			*/
 | 
				
			||||||
 | 
					#define FP_RZ 3		/* Round to zero (trunate) 	*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fp_rnd _EXFUN(fpgetround,(void));
 | 
				
			||||||
 | 
					fp_rnd _EXFUN(fpsetround, (fp_rnd));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* EXCEPTIONS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int fp_except;
 | 
				
			||||||
 | 
					#define FP_X_INV 0x10	/* Invalid operation 		*/
 | 
				
			||||||
 | 
					#define FP_X_DX  0x80	/* Divide by zero		*/
 | 
				
			||||||
 | 
					#define FP_X_OFL 0x04	/* Overflow exception		*/
 | 
				
			||||||
 | 
					#define FP_X_UFL 0x02	/* Underflow exception		*/
 | 
				
			||||||
 | 
					#define FP_X_IMP 0x01	/* imprecise exception		*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fp_except _EXFUN(fpgetmask,(void));
 | 
				
			||||||
 | 
					fp_except _EXFUN(fpsetmask,(fp_except));
 | 
				
			||||||
 | 
					fp_except _EXFUN(fpgetsticky,(void));
 | 
				
			||||||
 | 
					fp_except _EXFUN(fpsetsticky, (fp_except));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* INTEGER ROUNDING */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int fp_rdi;
 | 
				
			||||||
 | 
					#define FP_RDI_TOZ 0	/* Round to Zero 		*/
 | 
				
			||||||
 | 
					#define FP_RDI_RD  1	/* Follow float mode		*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					fp_rdi _EXFUN(fpgetroundtoi,(void));
 | 
				
			||||||
 | 
					fp_rdi _EXFUN(fpsetroundtoi,(fp_rdi));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef isnan
 | 
				
			||||||
 | 
					#undef isinf
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(isnan, (double));
 | 
				
			||||||
 | 
					int _EXFUN(isinf, (double));
 | 
				
			||||||
 | 
					int _EXFUN(finite, (double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(isnanf, (float));
 | 
				
			||||||
 | 
					int _EXFUN(isinff, (float));
 | 
				
			||||||
 | 
					int _EXFUN(finitef, (float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __IEEE_DBL_EXPBIAS 1023
 | 
				
			||||||
 | 
					#define __IEEE_FLT_EXPBIAS 127
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __IEEE_DBL_EXPLEN 11
 | 
				
			||||||
 | 
					#define __IEEE_FLT_EXPLEN 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __IEEE_DBL_FRACLEN (64 - (__IEEE_DBL_EXPLEN + 1))
 | 
				
			||||||
 | 
					#define __IEEE_FLT_FRACLEN (32 - (__IEEE_FLT_EXPLEN + 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __IEEE_DBL_MAXPOWTWO	((double)(1L << 32 - 2) * (1L << (32-11) - 32 + 1))
 | 
				
			||||||
 | 
					#define __IEEE_FLT_MAXPOWTWO	((float)(1L << (32-8) - 1))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __IEEE_DBL_NAN_EXP 0x7ff
 | 
				
			||||||
 | 
					#define __IEEE_FLT_NAN_EXP 0xff
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ieeefp_isnanf
 | 
				
			||||||
 | 
					#define __ieeefp_isnanf(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \
 | 
				
			||||||
 | 
								    ((*(long *)&(x) & 0x007fffffL)!=0000000000L))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define isnanf(x)	__ieeefp_isnanf(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ieeefp_isinff
 | 
				
			||||||
 | 
					#define __ieeefp_isinff(x) (((*(long *)&(x) & 0x7f800000L)==0x7f800000L) && \
 | 
				
			||||||
 | 
								    ((*(long *)&(x) & 0x007fffffL)==0000000000L))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define isinff(x)	__ieeefp_isinff(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ieeefp_finitef
 | 
				
			||||||
 | 
					#define __ieeefp_finitef(x) (((*(long *)&(x) & 0x7f800000L)!=0x7f800000L))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define finitef(x)	__ieeefp_finitef(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#undef __IEEE_DBL_EXPBIAS
 | 
				
			||||||
 | 
					#define __IEEE_DBL_EXPBIAS __IEEE_FLT_EXPBIAS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __IEEE_DBL_EXPLEN
 | 
				
			||||||
 | 
					#define __IEEE_DBL_EXPLEN __IEEE_FLT_EXPLEN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __IEEE_DBL_FRACLEN
 | 
				
			||||||
 | 
					#define __IEEE_DBL_FRACLEN __IEEE_FLT_FRACLEN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __IEEE_DBL_MAXPOWTWO
 | 
				
			||||||
 | 
					#define __IEEE_DBL_MAXPOWTWO __IEEE_FLT_MAXPOWTWO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __IEEE_DBL_NAN_EXP
 | 
				
			||||||
 | 
					#define __IEEE_DBL_NAN_EXP __IEEE_FLT_NAN_EXP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __ieee_double_shape_type
 | 
				
			||||||
 | 
					#define __ieee_double_shape_type __ieee_float_shape_type
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _DOUBLE_IS_32BITS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _IEEE_FP_H_ */
 | 
				
			||||||
							
								
								
									
										319
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/inttypes.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										319
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/inttypes.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,319 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2004, 2005 by
 | 
				
			||||||
 | 
					 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and distribute this software
 | 
				
			||||||
 | 
					 * is freely granted, provided that this notice is preserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/**
 | 
				
			||||||
 | 
					 *  @file  inttypes.h
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INTTYPES_H
 | 
				
			||||||
 | 
					#define _INTTYPES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <newlib.h>
 | 
				
			||||||
 | 
					#include <sys/_intsup.h>
 | 
				
			||||||
 | 
					#include <stdint.h>
 | 
				
			||||||
 | 
					#define __need_wchar_t
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __STRINGIFY(a) #a
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 8-bit types */
 | 
				
			||||||
 | 
					#define __PRI8(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* NOTICE: scanning 8-bit types requires use of the hh specifier
 | 
				
			||||||
 | 
					 * which is only supported on newlib platforms that
 | 
				
			||||||
 | 
					 * are built with C99 I/O format support enabled.  If the flag in
 | 
				
			||||||
 | 
					 * newlib.h hasn't been set during configuration to indicate this, the 8-bit
 | 
				
			||||||
 | 
					 * scanning format macros are disabled here as they result in undefined
 | 
				
			||||||
 | 
					 * behaviour which can include memory overwrite.  Overriding the flag after the
 | 
				
			||||||
 | 
					 * library has been built is not recommended as it will expose the underlying
 | 
				
			||||||
 | 
					 * undefined behaviour.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_WANT_IO_C99_FORMATS)
 | 
				
			||||||
 | 
					  #define __SCN8(x) __STRINGIFY(hh##x)
 | 
				
			||||||
 | 
					#endif /* _WANT_IO_C99_FORMATS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRId8		__PRI8(d)
 | 
				
			||||||
 | 
					#define PRIi8		__PRI8(i)
 | 
				
			||||||
 | 
					#define PRIo8		__PRI8(o)
 | 
				
			||||||
 | 
					#define PRIu8		__PRI8(u)
 | 
				
			||||||
 | 
					#define PRIx8		__PRI8(x)
 | 
				
			||||||
 | 
					#define PRIX8		__PRI8(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macros below are only enabled for a newlib built with C99 I/O format support. */
 | 
				
			||||||
 | 
					#if defined(_WANT_IO_C99_FORMATS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNd8		__SCN8(d)
 | 
				
			||||||
 | 
					#define SCNi8		__SCN8(i)
 | 
				
			||||||
 | 
					#define SCNo8		__SCN8(o)
 | 
				
			||||||
 | 
					#define SCNu8		__SCN8(u)
 | 
				
			||||||
 | 
					#define SCNx8		__SCN8(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _WANT_IO_C99_FORMATS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdLEAST8	__PRI8(d)
 | 
				
			||||||
 | 
					#define PRIiLEAST8	__PRI8(i)
 | 
				
			||||||
 | 
					#define PRIoLEAST8	__PRI8(o)
 | 
				
			||||||
 | 
					#define PRIuLEAST8	__PRI8(u)
 | 
				
			||||||
 | 
					#define PRIxLEAST8	__PRI8(x)
 | 
				
			||||||
 | 
					#define PRIXLEAST8	__PRI8(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macros below are only enabled for a newlib built with C99 I/O format support. */
 | 
				
			||||||
 | 
					#if defined(_WANT_IO_C99_FORMATS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #define SCNdLEAST8	__SCN8(d)
 | 
				
			||||||
 | 
					  #define SCNiLEAST8	__SCN8(i)
 | 
				
			||||||
 | 
					  #define SCNoLEAST8	__SCN8(o)
 | 
				
			||||||
 | 
					  #define SCNuLEAST8	__SCN8(u)
 | 
				
			||||||
 | 
					  #define SCNxLEAST8	__SCN8(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _WANT_IO_C99_FORMATS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdFAST8	__PRI8(d)
 | 
				
			||||||
 | 
					#define PRIiFAST8	__PRI8(i)
 | 
				
			||||||
 | 
					#define PRIoFAST8	__PRI8(o)
 | 
				
			||||||
 | 
					#define PRIuFAST8	__PRI8(u)
 | 
				
			||||||
 | 
					#define PRIxFAST8	__PRI8(x)
 | 
				
			||||||
 | 
					#define PRIXFAST8	__PRI8(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macros below are only enabled for a newlib built with C99 I/O format support. */
 | 
				
			||||||
 | 
					#if defined(_WANT_IO_C99_FORMATS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  #define SCNdFAST8	__SCN8(d)
 | 
				
			||||||
 | 
					  #define SCNiFAST8	__SCN8(i)
 | 
				
			||||||
 | 
					  #define SCNoFAST8	__SCN8(o)
 | 
				
			||||||
 | 
					  #define SCNuFAST8	__SCN8(u)
 | 
				
			||||||
 | 
					  #define SCNxFAST8	__SCN8(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _WANT_IO_C99_FORMATS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 16-bit types */
 | 
				
			||||||
 | 
					#define __PRI16(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#define __SCN16(x) __STRINGIFY(h##x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRId16		__PRI16(d)
 | 
				
			||||||
 | 
					#define PRIi16		__PRI16(i)
 | 
				
			||||||
 | 
					#define PRIo16		__PRI16(o)
 | 
				
			||||||
 | 
					#define PRIu16		__PRI16(u)
 | 
				
			||||||
 | 
					#define PRIx16		__PRI16(x)
 | 
				
			||||||
 | 
					#define PRIX16		__PRI16(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNd16		__SCN16(d)
 | 
				
			||||||
 | 
					#define SCNi16		__SCN16(i)
 | 
				
			||||||
 | 
					#define SCNo16		__SCN16(o)
 | 
				
			||||||
 | 
					#define SCNu16		__SCN16(u)
 | 
				
			||||||
 | 
					#define SCNx16		__SCN16(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdLEAST16	__PRI16(d)
 | 
				
			||||||
 | 
					#define PRIiLEAST16	__PRI16(i)
 | 
				
			||||||
 | 
					#define PRIoLEAST16	__PRI16(o)
 | 
				
			||||||
 | 
					#define PRIuLEAST16	__PRI16(u)
 | 
				
			||||||
 | 
					#define PRIxLEAST16	__PRI16(x)
 | 
				
			||||||
 | 
					#define PRIXLEAST16	__PRI16(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdLEAST16	__SCN16(d)
 | 
				
			||||||
 | 
					#define SCNiLEAST16	__SCN16(i)
 | 
				
			||||||
 | 
					#define SCNoLEAST16	__SCN16(o)
 | 
				
			||||||
 | 
					#define SCNuLEAST16	__SCN16(u)
 | 
				
			||||||
 | 
					#define SCNxLEAST16	__SCN16(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdFAST16	__PRI16(d)
 | 
				
			||||||
 | 
					#define PRIiFAST16	__PRI16(i)
 | 
				
			||||||
 | 
					#define PRIoFAST16	__PRI16(o)
 | 
				
			||||||
 | 
					#define PRIuFAST16	__PRI16(u)
 | 
				
			||||||
 | 
					#define PRIxFAST16	__PRI16(x)
 | 
				
			||||||
 | 
					#define PRIXFAST16	__PRI16(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdFAST16	__SCN16(d)
 | 
				
			||||||
 | 
					#define SCNiFAST16	__SCN16(i)
 | 
				
			||||||
 | 
					#define SCNoFAST16	__SCN16(o)
 | 
				
			||||||
 | 
					#define SCNuFAST16	__SCN16(u)
 | 
				
			||||||
 | 
					#define SCNxFAST16	__SCN16(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 32-bit types */
 | 
				
			||||||
 | 
					#if __have_long32
 | 
				
			||||||
 | 
					#define __PRI32(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#define __SCN32(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __PRI32(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#define __SCN32(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRId32		__PRI32(d)
 | 
				
			||||||
 | 
					#define PRIi32		__PRI32(i)
 | 
				
			||||||
 | 
					#define PRIo32		__PRI32(o)
 | 
				
			||||||
 | 
					#define PRIu32		__PRI32(u)
 | 
				
			||||||
 | 
					#define PRIx32		__PRI32(x)
 | 
				
			||||||
 | 
					#define PRIX32		__PRI32(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNd32		__SCN32(d)
 | 
				
			||||||
 | 
					#define SCNi32		__SCN32(i)
 | 
				
			||||||
 | 
					#define SCNo32		__SCN32(o)
 | 
				
			||||||
 | 
					#define SCNu32		__SCN32(u)
 | 
				
			||||||
 | 
					#define SCNx32		__SCN32(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdLEAST32	__PRI32(d)
 | 
				
			||||||
 | 
					#define PRIiLEAST32	__PRI32(i)
 | 
				
			||||||
 | 
					#define PRIoLEAST32	__PRI32(o)
 | 
				
			||||||
 | 
					#define PRIuLEAST32	__PRI32(u)
 | 
				
			||||||
 | 
					#define PRIxLEAST32	__PRI32(x)
 | 
				
			||||||
 | 
					#define PRIXLEAST32	__PRI32(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdLEAST32	__SCN32(d)
 | 
				
			||||||
 | 
					#define SCNiLEAST32	__SCN32(i)
 | 
				
			||||||
 | 
					#define SCNoLEAST32	__SCN32(o)
 | 
				
			||||||
 | 
					#define SCNuLEAST32	__SCN32(u)
 | 
				
			||||||
 | 
					#define SCNxLEAST32	__SCN32(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdFAST32	__PRI32(d)
 | 
				
			||||||
 | 
					#define PRIiFAST32	__PRI32(i)
 | 
				
			||||||
 | 
					#define PRIoFAST32	__PRI32(o)
 | 
				
			||||||
 | 
					#define PRIuFAST32	__PRI32(u)
 | 
				
			||||||
 | 
					#define PRIxFAST32	__PRI32(x)
 | 
				
			||||||
 | 
					#define PRIXFAST32	__PRI32(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdFAST32	__SCN32(d)
 | 
				
			||||||
 | 
					#define SCNiFAST32	__SCN32(i)
 | 
				
			||||||
 | 
					#define SCNoFAST32	__SCN32(o)
 | 
				
			||||||
 | 
					#define SCNuFAST32	__SCN32(u)
 | 
				
			||||||
 | 
					#define SCNxFAST32	__SCN32(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 64-bit types */
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define __PRI64(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#define __SCN64(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					#define __PRI64(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					#define __SCN64(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __PRI64(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#define __SCN64(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRId64		__PRI64(d)
 | 
				
			||||||
 | 
					#define PRIi64		__PRI64(i)
 | 
				
			||||||
 | 
					#define PRIo64		__PRI64(o)
 | 
				
			||||||
 | 
					#define PRIu64		__PRI64(u)
 | 
				
			||||||
 | 
					#define PRIx64		__PRI64(x)
 | 
				
			||||||
 | 
					#define PRIX64		__PRI64(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNd64		__SCN64(d)
 | 
				
			||||||
 | 
					#define SCNi64		__SCN64(i)
 | 
				
			||||||
 | 
					#define SCNo64		__SCN64(o)
 | 
				
			||||||
 | 
					#define SCNu64		__SCN64(u)
 | 
				
			||||||
 | 
					#define SCNx64		__SCN64(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __int64_t_defined
 | 
				
			||||||
 | 
					#define PRIdLEAST64	__PRI64(d)
 | 
				
			||||||
 | 
					#define PRIiLEAST64	__PRI64(i)
 | 
				
			||||||
 | 
					#define PRIoLEAST64	__PRI64(o)
 | 
				
			||||||
 | 
					#define PRIuLEAST64	__PRI64(u)
 | 
				
			||||||
 | 
					#define PRIxLEAST64	__PRI64(x)
 | 
				
			||||||
 | 
					#define PRIXLEAST64	__PRI64(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdLEAST64	__SCN64(d)
 | 
				
			||||||
 | 
					#define SCNiLEAST64	__SCN64(i)
 | 
				
			||||||
 | 
					#define SCNoLEAST64	__SCN64(o)
 | 
				
			||||||
 | 
					#define SCNuLEAST64	__SCN64(u)
 | 
				
			||||||
 | 
					#define SCNxLEAST64	__SCN64(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdFAST64	__PRI64(d)
 | 
				
			||||||
 | 
					#define PRIiFAST64	__PRI64(i)
 | 
				
			||||||
 | 
					#define PRIoFAST64	__PRI64(o)
 | 
				
			||||||
 | 
					#define PRIuFAST64	__PRI64(u)
 | 
				
			||||||
 | 
					#define PRIxFAST64	__PRI64(x)
 | 
				
			||||||
 | 
					#define PRIXFAST64	__PRI64(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdFAST64	__SCN64(d)
 | 
				
			||||||
 | 
					#define SCNiFAST64	__SCN64(i)
 | 
				
			||||||
 | 
					#define SCNoFAST64	__SCN64(o)
 | 
				
			||||||
 | 
					#define SCNuFAST64	__SCN64(u)
 | 
				
			||||||
 | 
					#define SCNxFAST64	__SCN64(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* max-bit types */
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define __PRIMAX(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#define __SCNMAX(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					#define __PRIMAX(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					#define __SCNMAX(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __PRIMAX(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#define __SCNMAX(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdMAX		__PRIMAX(d)
 | 
				
			||||||
 | 
					#define PRIiMAX		__PRIMAX(i)
 | 
				
			||||||
 | 
					#define PRIoMAX		__PRIMAX(o)
 | 
				
			||||||
 | 
					#define PRIuMAX		__PRIMAX(u)
 | 
				
			||||||
 | 
					#define PRIxMAX		__PRIMAX(x)
 | 
				
			||||||
 | 
					#define PRIXMAX		__PRIMAX(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdMAX		__SCNMAX(d)
 | 
				
			||||||
 | 
					#define SCNiMAX		__SCNMAX(i)
 | 
				
			||||||
 | 
					#define SCNoMAX		__SCNMAX(o)
 | 
				
			||||||
 | 
					#define SCNuMAX		__SCNMAX(u)
 | 
				
			||||||
 | 
					#define SCNxMAX		__SCNMAX(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ptr types */
 | 
				
			||||||
 | 
					#if defined(_UINTPTR_EQ_ULONGLONG)
 | 
				
			||||||
 | 
					# define __PRIPTR(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					# define __SCNPTR(x) __STRINGIFY(ll##x)
 | 
				
			||||||
 | 
					#elif defined(_UINTPTR_EQ_ULONG)
 | 
				
			||||||
 | 
					# define __PRIPTR(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					# define __SCNPTR(x) __STRINGIFY(l##x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define __PRIPTR(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					# define __SCNPTR(x) __STRINGIFY(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PRIdPTR		__PRIPTR(d)
 | 
				
			||||||
 | 
					#define PRIiPTR		__PRIPTR(i)
 | 
				
			||||||
 | 
					#define PRIoPTR		__PRIPTR(o)
 | 
				
			||||||
 | 
					#define PRIuPTR		__PRIPTR(u)
 | 
				
			||||||
 | 
					#define PRIxPTR		__PRIPTR(x)
 | 
				
			||||||
 | 
					#define PRIXPTR		__PRIPTR(X)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCNdPTR		__SCNPTR(d)
 | 
				
			||||||
 | 
					#define SCNiPTR		__SCNPTR(i)
 | 
				
			||||||
 | 
					#define SCNoPTR		__SCNPTR(o)
 | 
				
			||||||
 | 
					#define SCNuPTR		__SCNPTR(u)
 | 
				
			||||||
 | 
					#define SCNxPTR		__SCNPTR(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  intmax_t	quot;
 | 
				
			||||||
 | 
					  intmax_t	rem;
 | 
				
			||||||
 | 
					} imaxdiv_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern intmax_t  imaxabs(intmax_t j);
 | 
				
			||||||
 | 
					extern imaxdiv_t imaxdiv(intmax_t numer, intmax_t denomer);
 | 
				
			||||||
 | 
					extern intmax_t  strtoimax(const char *__restrict, char **__restrict, int);
 | 
				
			||||||
 | 
					extern uintmax_t strtoumax(const char *__restrict, char **__restrict, int);
 | 
				
			||||||
 | 
					extern intmax_t  wcstoimax(const wchar_t *__restrict, wchar_t **__restrict, int);
 | 
				
			||||||
 | 
					extern uintmax_t wcstoumax(const wchar_t *__restrict, wchar_t **__restrict, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										316
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/langinfo.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										316
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/langinfo.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,316 @@
 | 
				
			|||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 2001 Alexey Zelkin <phantom@FreeBSD.org>
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * $FreeBSD: src/include/langinfo.h,v 1.5 2002/03/23 17:24:53 imp Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _LANGINFO_H_
 | 
				
			||||||
 | 
					#define	_LANGINFO_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <newlib.h>
 | 
				
			||||||
 | 
					#include <sys/config.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int nl_item;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum __nl_item
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* POSIX and BSD defined items have to stick to the original values
 | 
				
			||||||
 | 
					     to maintain backward compatibility. */
 | 
				
			||||||
 | 
					  _NL_CTYPE_CODESET_NAME = 0,	/* codeset name */
 | 
				
			||||||
 | 
					#define CODESET _NL_CTYPE_CODESET_NAME
 | 
				
			||||||
 | 
					  D_T_FMT,			/* string for formatting date and time */
 | 
				
			||||||
 | 
					#define D_T_FMT D_T_FMT
 | 
				
			||||||
 | 
					  D_FMT,			/* date format string */
 | 
				
			||||||
 | 
					#define D_FMT D_FMT
 | 
				
			||||||
 | 
					  T_FMT,			/* time format string */
 | 
				
			||||||
 | 
					#define T_FMT T_FMT
 | 
				
			||||||
 | 
					  T_FMT_AMPM,			/* a.m. or p.m. time formatting string */
 | 
				
			||||||
 | 
					#define T_FMT_AMPM T_FMT_AMPM
 | 
				
			||||||
 | 
					  AM_STR,			/* Ante Meridian affix */
 | 
				
			||||||
 | 
					#define AM_STR AM_STR
 | 
				
			||||||
 | 
					  PM_STR,			/* Post Meridian affix */
 | 
				
			||||||
 | 
					#define PM_STR PM_STR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* week day names */
 | 
				
			||||||
 | 
					  DAY_1,
 | 
				
			||||||
 | 
					#define DAY_1 DAY_1
 | 
				
			||||||
 | 
					  DAY_2,
 | 
				
			||||||
 | 
					#define DAY_2 DAY_2
 | 
				
			||||||
 | 
					  DAY_3,
 | 
				
			||||||
 | 
					#define DAY_3 DAY_3
 | 
				
			||||||
 | 
					  DAY_4,
 | 
				
			||||||
 | 
					#define DAY_4 DAY_4
 | 
				
			||||||
 | 
					  DAY_5,
 | 
				
			||||||
 | 
					#define DAY_5 DAY_5
 | 
				
			||||||
 | 
					  DAY_6,
 | 
				
			||||||
 | 
					#define DAY_6 DAY_6
 | 
				
			||||||
 | 
					  DAY_7,
 | 
				
			||||||
 | 
					#define DAY_7 DAY_7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* abbreviated week day names */
 | 
				
			||||||
 | 
					  ABDAY_1,
 | 
				
			||||||
 | 
					#define ABDAY_1 ABDAY_1
 | 
				
			||||||
 | 
					  ABDAY_2,
 | 
				
			||||||
 | 
					#define ABDAY_2 ABDAY_2
 | 
				
			||||||
 | 
					  ABDAY_3,
 | 
				
			||||||
 | 
					#define ABDAY_3 ABDAY_3
 | 
				
			||||||
 | 
					  ABDAY_4,
 | 
				
			||||||
 | 
					#define ABDAY_4 ABDAY_4
 | 
				
			||||||
 | 
					  ABDAY_5,
 | 
				
			||||||
 | 
					#define ABDAY_5 ABDAY_5
 | 
				
			||||||
 | 
					  ABDAY_6,
 | 
				
			||||||
 | 
					#define ABDAY_6 ABDAY_6
 | 
				
			||||||
 | 
					  ABDAY_7,
 | 
				
			||||||
 | 
					#define ABDAY_7 ABDAY_7
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* month names */
 | 
				
			||||||
 | 
					  MON_1,
 | 
				
			||||||
 | 
					#define MON_1 MON_1
 | 
				
			||||||
 | 
					  MON_2,
 | 
				
			||||||
 | 
					#define MON_2 MON_2
 | 
				
			||||||
 | 
					  MON_3,
 | 
				
			||||||
 | 
					#define MON_3 MON_3
 | 
				
			||||||
 | 
					  MON_4,
 | 
				
			||||||
 | 
					#define MON_4 MON_4
 | 
				
			||||||
 | 
					  MON_5,
 | 
				
			||||||
 | 
					#define MON_5 MON_5
 | 
				
			||||||
 | 
					  MON_6,
 | 
				
			||||||
 | 
					#define MON_6 MON_6
 | 
				
			||||||
 | 
					  MON_7,
 | 
				
			||||||
 | 
					#define MON_7 MON_7
 | 
				
			||||||
 | 
					  MON_8,
 | 
				
			||||||
 | 
					#define MON_8 MON_8
 | 
				
			||||||
 | 
					  MON_9,
 | 
				
			||||||
 | 
					#define MON_9 MON_9
 | 
				
			||||||
 | 
					  MON_10,
 | 
				
			||||||
 | 
					#define MON_10 MON_10
 | 
				
			||||||
 | 
					  MON_11,
 | 
				
			||||||
 | 
					#define MON_11 MON_11
 | 
				
			||||||
 | 
					  MON_12,
 | 
				
			||||||
 | 
					#define MON_12 MON_12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* abbreviated month names */
 | 
				
			||||||
 | 
					  ABMON_1,
 | 
				
			||||||
 | 
					#define ABMON_1 ABMON_1
 | 
				
			||||||
 | 
					  ABMON_2,
 | 
				
			||||||
 | 
					#define ABMON_2 ABMON_2
 | 
				
			||||||
 | 
					  ABMON_3,
 | 
				
			||||||
 | 
					#define ABMON_3 ABMON_3
 | 
				
			||||||
 | 
					  ABMON_4,
 | 
				
			||||||
 | 
					#define ABMON_4 ABMON_4
 | 
				
			||||||
 | 
					  ABMON_5,
 | 
				
			||||||
 | 
					#define ABMON_5 ABMON_5
 | 
				
			||||||
 | 
					  ABMON_6,
 | 
				
			||||||
 | 
					#define ABMON_6 ABMON_6
 | 
				
			||||||
 | 
					  ABMON_7,
 | 
				
			||||||
 | 
					#define ABMON_7 ABMON_7
 | 
				
			||||||
 | 
					  ABMON_8,
 | 
				
			||||||
 | 
					#define ABMON_8 ABMON_8
 | 
				
			||||||
 | 
					  ABMON_9,
 | 
				
			||||||
 | 
					#define ABMON_9 ABMON_9
 | 
				
			||||||
 | 
					  ABMON_10,
 | 
				
			||||||
 | 
					#define ABMON_10 ABMON_10
 | 
				
			||||||
 | 
					  ABMON_11,
 | 
				
			||||||
 | 
					#define ABMON_11 ABMON_11
 | 
				
			||||||
 | 
					  ABMON_12,
 | 
				
			||||||
 | 
					#define ABMON_12 ABMON_12
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  ERA,				/* era description segments */
 | 
				
			||||||
 | 
					#define ERA ERA
 | 
				
			||||||
 | 
					  ERA_D_FMT,			/* era date format string */
 | 
				
			||||||
 | 
					#define ERA_D_FMT ERA_D_FMT
 | 
				
			||||||
 | 
					  ERA_D_T_FMT,			/* era date and time format string */
 | 
				
			||||||
 | 
					#define ERA_D_T_FMT ERA_D_T_FMT
 | 
				
			||||||
 | 
					  ERA_T_FMT,			/* era time format string */
 | 
				
			||||||
 | 
					#define ERA_T_FMT ERA_T_FMT
 | 
				
			||||||
 | 
					  ALT_DIGITS,			/* alternative symbols for digits */
 | 
				
			||||||
 | 
					#define ALT_DIGITS ALT_DIGITS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  RADIXCHAR,			/* radix char */
 | 
				
			||||||
 | 
					#define RADIXCHAR RADIXCHAR
 | 
				
			||||||
 | 
					  THOUSEP,			/* separator for thousands */
 | 
				
			||||||
 | 
					#define THOUSEP THOUSEP
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  YESEXPR,			/* affirmative response expression */
 | 
				
			||||||
 | 
					#define YESEXPR YESEXPR
 | 
				
			||||||
 | 
					  NOEXPR,			/* negative response expression */
 | 
				
			||||||
 | 
					#define NOEXPR NOEXPR
 | 
				
			||||||
 | 
					  YESSTR,			/* affirmative response for yes/no queries */
 | 
				
			||||||
 | 
					#define YESSTR YESSTR
 | 
				
			||||||
 | 
					  NOSTR,			/* negative response for yes/no queries */
 | 
				
			||||||
 | 
					#define NOSTR NOSTR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  CRNCYSTR,			/* currency symbol */
 | 
				
			||||||
 | 
					#define CRNCYSTR CRNCYSTR
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  D_MD_ORDER,			/* month/day order (BSD extension) */
 | 
				
			||||||
 | 
					#define D_MD_ORDER D_MD_ORDER
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_TIME_DATE_FMT = 84,	/* date fmt used by date(1) (GNU extension) */
 | 
				
			||||||
 | 
					#define _DATE_FMT _NL_TIME_DATE_FMT
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __HAVE_LOCALE_INFO__
 | 
				
			||||||
 | 
					  _NL_CTYPE_MB_CUR_MAX,
 | 
				
			||||||
 | 
					  _NL_MESSAGES_CODESET,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __HAVE_LOCALE_INFO_EXTENDED__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* NOTE:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					     Always maintain the order and position of existing entries!
 | 
				
			||||||
 | 
					     Always append new entry to the list, prior to the definition
 | 
				
			||||||
 | 
					     of _NL_LOCALE_EXTENDED_LAST_ENTRY. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_LOCALE_EXTENDED_FIRST_ENTRY,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS0_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS1_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS2_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS3_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS4_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS5_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS6_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS7_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS8_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS9_MB,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS0_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS1_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS2_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS3_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS4_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS5_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS6_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS7_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS8_WC,
 | 
				
			||||||
 | 
					  _NL_CTYPE_OUTDIGITS9_WC,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_TIME_CODESET,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_1,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_2,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_3,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_4,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_5,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_6,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_7,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_8,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_9,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_10,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_11,
 | 
				
			||||||
 | 
					  _NL_TIME_WMON_12,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_1,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_2,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_3,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_4,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_5,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_6,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_7,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_8,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_9,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_10,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_11,
 | 
				
			||||||
 | 
					  _NL_TIME_WMONTH_12,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_1,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_2,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_3,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_4,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_5,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_6,
 | 
				
			||||||
 | 
					  _NL_TIME_WWDAY_7,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_1,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_2,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_3,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_4,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_5,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_6,
 | 
				
			||||||
 | 
					  _NL_TIME_WWEEKDAY_7,
 | 
				
			||||||
 | 
					  _NL_TIME_WT_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WD_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WD_T_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WAM_STR,
 | 
				
			||||||
 | 
					  _NL_TIME_WPM_STR,
 | 
				
			||||||
 | 
					  _NL_TIME_WDATE_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WT_FMT_AMPM,
 | 
				
			||||||
 | 
					  _NL_TIME_WERA,
 | 
				
			||||||
 | 
					  _NL_TIME_WERA_D_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WERA_D_T_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WERA_T_FMT,
 | 
				
			||||||
 | 
					  _NL_TIME_WALT_DIGITS,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_NUMERIC_CODESET,
 | 
				
			||||||
 | 
					  _NL_NUMERIC_GROUPING,
 | 
				
			||||||
 | 
					  _NL_NUMERIC_DECIMAL_POINT_WC,
 | 
				
			||||||
 | 
					  _NL_NUMERIC_THOUSANDS_SEP_WC,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_CURR_SYMBOL,
 | 
				
			||||||
 | 
					  _NL_MONETARY_CURRENCY_SYMBOL,
 | 
				
			||||||
 | 
					  _NL_MONETARY_MON_DECIMAL_POINT,
 | 
				
			||||||
 | 
					  _NL_MONETARY_MON_THOUSANDS_SEP,
 | 
				
			||||||
 | 
					  _NL_MONETARY_MON_GROUPING,
 | 
				
			||||||
 | 
					  _NL_MONETARY_POSITIVE_SIGN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_NEGATIVE_SIGN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_FRAC_DIGITS,
 | 
				
			||||||
 | 
					  _NL_MONETARY_FRAC_DIGITS,
 | 
				
			||||||
 | 
					  _NL_MONETARY_P_CS_PRECEDES,
 | 
				
			||||||
 | 
					  _NL_MONETARY_P_SEP_BY_SPACE,
 | 
				
			||||||
 | 
					  _NL_MONETARY_N_CS_PRECEDES,
 | 
				
			||||||
 | 
					  _NL_MONETARY_N_SEP_BY_SPACE,
 | 
				
			||||||
 | 
					  _NL_MONETARY_P_SIGN_POSN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_N_SIGN_POSN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_P_CS_PRECEDES,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_P_SEP_BY_SPACE,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_N_CS_PRECEDES,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_N_SEP_BY_SPACE,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_P_SIGN_POSN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_INT_N_SIGN_POSN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_CODESET,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WINT_CURR_SYMBOL,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WCURRENCY_SYMBOL,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WMON_DECIMAL_POINT,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WMON_THOUSANDS_SEP,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WPOSITIVE_SIGN,
 | 
				
			||||||
 | 
					  _NL_MONETARY_WNEGATIVE_SIGN,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_MESSAGES_WYESEXPR,
 | 
				
			||||||
 | 
					  _NL_MESSAGES_WNOEXPR,
 | 
				
			||||||
 | 
					  _NL_MESSAGES_WYESSTR,
 | 
				
			||||||
 | 
					  _NL_MESSAGES_WNOSTR,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _NL_COLLATE_CODESET,
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* This MUST be the last entry since it's used to check for an array
 | 
				
			||||||
 | 
					     index in nl_langinfo(). */
 | 
				
			||||||
 | 
					  _NL_LOCALE_EXTENDED_LAST_ENTRY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __HAVE_LOCALE_INFO_EXTENDED__ */
 | 
				
			||||||
 | 
					#endif /* __HAVE_LOCALE_INFO__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					char	*nl_langinfo(nl_item);
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_LANGINFO_H_ */
 | 
				
			||||||
							
								
								
									
										23
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/libgen.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										23
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/libgen.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,23 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * libgen.h - defined by XPG4
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _LIBGEN_H_
 | 
				
			||||||
 | 
					#define _LIBGEN_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char      *_EXFUN(basename,     (char *));
 | 
				
			||||||
 | 
					char      *_EXFUN(dirname,     (char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _LIBGEN_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										146
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/limits.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										146
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/limits.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,146 @@
 | 
				
			|||||||
 | 
					#ifndef _LIBC_LIMITS_H_
 | 
				
			||||||
 | 
					# define _LIBC_LIMITS_H_	1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <newlib.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifdef _MB_LEN_MAX
 | 
				
			||||||
 | 
					#  define MB_LEN_MAX	_MB_LEN_MAX
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define MB_LEN_MAX    1
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum number of positional arguments, if _WANT_IO_POS_ARGS.  */
 | 
				
			||||||
 | 
					# ifndef NL_ARGMAX
 | 
				
			||||||
 | 
					#  define NL_ARGMAX 32
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* if do not have #include_next support, then we
 | 
				
			||||||
 | 
					   have to define the limits here. */
 | 
				
			||||||
 | 
					# if !defined __GNUC__ || __GNUC__ < 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  ifndef _LIMITS_H
 | 
				
			||||||
 | 
					#   define _LIMITS_H	1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   include <sys/config.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Number of bits in a `char'.  */
 | 
				
			||||||
 | 
					#   undef CHAR_BIT
 | 
				
			||||||
 | 
					#   define CHAR_BIT 8
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed char' can hold.  */
 | 
				
			||||||
 | 
					#   undef SCHAR_MIN
 | 
				
			||||||
 | 
					#   define SCHAR_MIN (-128)
 | 
				
			||||||
 | 
					#   undef SCHAR_MAX
 | 
				
			||||||
 | 
					#   define SCHAR_MAX 127
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned char' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#   undef UCHAR_MAX
 | 
				
			||||||
 | 
					#   define UCHAR_MAX 255
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `char' can hold.  */
 | 
				
			||||||
 | 
					#   ifdef __CHAR_UNSIGNED__
 | 
				
			||||||
 | 
					#    undef CHAR_MIN
 | 
				
			||||||
 | 
					#    define CHAR_MIN 0
 | 
				
			||||||
 | 
					#    undef CHAR_MAX
 | 
				
			||||||
 | 
					#    define CHAR_MAX 255
 | 
				
			||||||
 | 
					#   else
 | 
				
			||||||
 | 
					#    undef CHAR_MIN
 | 
				
			||||||
 | 
					#    define CHAR_MIN (-128)
 | 
				
			||||||
 | 
					#    undef CHAR_MAX
 | 
				
			||||||
 | 
					#    define CHAR_MAX 127
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed short int' can hold.  */
 | 
				
			||||||
 | 
					#   undef SHRT_MIN
 | 
				
			||||||
 | 
					/* For the sake of 16 bit hosts, we may not use -32768 */
 | 
				
			||||||
 | 
					#   define SHRT_MIN (-32767-1)
 | 
				
			||||||
 | 
					#   undef SHRT_MAX
 | 
				
			||||||
 | 
					#   define SHRT_MAX 32767
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned short int' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#   undef USHRT_MAX
 | 
				
			||||||
 | 
					#   define USHRT_MAX 65535
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed int' can hold.  */
 | 
				
			||||||
 | 
					#   ifndef __INT_MAX__
 | 
				
			||||||
 | 
					#    define __INT_MAX__ 2147483647
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					#   undef INT_MIN
 | 
				
			||||||
 | 
					#   define INT_MIN (-INT_MAX-1)
 | 
				
			||||||
 | 
					#   undef INT_MAX
 | 
				
			||||||
 | 
					#   define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned int' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#   undef UINT_MAX
 | 
				
			||||||
 | 
					#   define UINT_MAX (INT_MAX * 2U + 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed long int' can hold.
 | 
				
			||||||
 | 
					   (Same as `int').  */
 | 
				
			||||||
 | 
					#   ifndef __LONG_MAX__
 | 
				
			||||||
 | 
					#    if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) || defined (__sparcv9)
 | 
				
			||||||
 | 
					#     define __LONG_MAX__ 9223372036854775807L
 | 
				
			||||||
 | 
					#    else
 | 
				
			||||||
 | 
					#     define __LONG_MAX__ 2147483647L
 | 
				
			||||||
 | 
					#    endif /* __alpha__ || sparc64 */
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					#   undef LONG_MIN
 | 
				
			||||||
 | 
					#   define LONG_MIN (-LONG_MAX-1)
 | 
				
			||||||
 | 
					#   undef LONG_MAX
 | 
				
			||||||
 | 
					#   define LONG_MAX __LONG_MAX__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned long int' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#   undef ULONG_MAX
 | 
				
			||||||
 | 
					#   define ULONG_MAX (LONG_MAX * 2UL + 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   ifndef __LONG_LONG_MAX__
 | 
				
			||||||
 | 
					#    define __LONG_LONG_MAX__ 9223372036854775807LL
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#   if (defined (__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) ||   \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed long long int' can hold.  */
 | 
				
			||||||
 | 
					#    undef LLONG_MIN
 | 
				
			||||||
 | 
					#    define LLONG_MIN (-LLONG_MAX-1)
 | 
				
			||||||
 | 
					#    undef LLONG_MAX
 | 
				
			||||||
 | 
					#    define LLONG_MAX __LONG_LONG_MAX__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#    undef ULLONG_MAX
 | 
				
			||||||
 | 
					#    define ULLONG_MAX (LLONG_MAX * 2ULL + 1)
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  if defined (__GNU_LIBRARY__) ? defined (__USE_GNU) : !defined (__STRICT_ANSI__)
 | 
				
			||||||
 | 
					/* Minimum and maximum values a `signed long long int' can hold.  */
 | 
				
			||||||
 | 
					#    undef LONG_LONG_MIN
 | 
				
			||||||
 | 
					#    define LONG_LONG_MIN (-LONG_LONG_MAX-1)
 | 
				
			||||||
 | 
					#    undef LONG_LONG_MAX
 | 
				
			||||||
 | 
					#    define LONG_LONG_MAX __LONG_LONG_MAX__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Maximum value an `unsigned long long int' can hold.  (Minimum is 0).  */
 | 
				
			||||||
 | 
					#    undef ULONG_LONG_MAX
 | 
				
			||||||
 | 
					#    define ULONG_LONG_MAX (LONG_LONG_MAX * 2ULL + 1)
 | 
				
			||||||
 | 
					#   endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  endif /* _LIMITS_H  */
 | 
				
			||||||
 | 
					# endif	 /* GCC 2.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	 /* !_LIBC_LIMITS_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined __GNUC__ && !defined _GCC_LIMITS_H_
 | 
				
			||||||
 | 
					/* `_GCC_LIMITS_H_' is what GCC's file defines.  */
 | 
				
			||||||
 | 
					# include_next <limits.h>
 | 
				
			||||||
 | 
					#endif /* __GNUC__ && !_GCC_LIMITS_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _POSIX2_RE_DUP_MAX
 | 
				
			||||||
 | 
					/* The maximum number of repeated occurrences of a regular expression
 | 
				
			||||||
 | 
					 *    permitted when using the interval notation `\{M,N\}'.  */
 | 
				
			||||||
 | 
					#define _POSIX2_RE_DUP_MAX              255
 | 
				
			||||||
 | 
					#endif /* _POSIX2_RE_DUP_MAX  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef ARG_MAX
 | 
				
			||||||
 | 
					#define ARG_MAX		4096
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef PATH_MAX
 | 
				
			||||||
 | 
					#define PATH_MAX	4096
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										64
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/locale.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/locale.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
						locale.h
 | 
				
			||||||
 | 
						Values appropriate for the formatting of monetary and other
 | 
				
			||||||
 | 
						numberic quantities.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _LOCALE_H_
 | 
				
			||||||
 | 
					#define _LOCALE_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_NULL
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LC_ALL	    0
 | 
				
			||||||
 | 
					#define LC_COLLATE  1
 | 
				
			||||||
 | 
					#define LC_CTYPE    2
 | 
				
			||||||
 | 
					#define LC_MONETARY 3
 | 
				
			||||||
 | 
					#define LC_NUMERIC  4
 | 
				
			||||||
 | 
					#define LC_TIME     5
 | 
				
			||||||
 | 
					#define LC_MESSAGES 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct lconv
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  char *decimal_point;
 | 
				
			||||||
 | 
					  char *thousands_sep;
 | 
				
			||||||
 | 
					  char *grouping;
 | 
				
			||||||
 | 
					  char *int_curr_symbol;
 | 
				
			||||||
 | 
					  char *currency_symbol;
 | 
				
			||||||
 | 
					  char *mon_decimal_point;
 | 
				
			||||||
 | 
					  char *mon_thousands_sep;
 | 
				
			||||||
 | 
					  char *mon_grouping;
 | 
				
			||||||
 | 
					  char *positive_sign;
 | 
				
			||||||
 | 
					  char *negative_sign;
 | 
				
			||||||
 | 
					  char int_frac_digits;
 | 
				
			||||||
 | 
					  char frac_digits;
 | 
				
			||||||
 | 
					  char p_cs_precedes;
 | 
				
			||||||
 | 
					  char p_sep_by_space;
 | 
				
			||||||
 | 
					  char n_cs_precedes;
 | 
				
			||||||
 | 
					  char n_sep_by_space;
 | 
				
			||||||
 | 
					  char p_sign_posn;
 | 
				
			||||||
 | 
					  char n_sign_posn;
 | 
				
			||||||
 | 
					  char int_n_cs_precedes;
 | 
				
			||||||
 | 
					  char int_n_sep_by_space;
 | 
				
			||||||
 | 
					  char int_n_sign_posn;
 | 
				
			||||||
 | 
					  char int_p_cs_precedes;
 | 
				
			||||||
 | 
					  char int_p_sep_by_space;
 | 
				
			||||||
 | 
					  char int_p_sign_posn;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					char *_EXFUN(setlocale,(int category, const char *locale));
 | 
				
			||||||
 | 
					struct lconv *_EXFUN(localeconv,(void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _reent;
 | 
				
			||||||
 | 
					char *_EXFUN(_setlocale_r,(struct _reent *, int category, const char *locale));
 | 
				
			||||||
 | 
					struct lconv *_EXFUN(_localeconv_r,(struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _LOCALE_H_ */
 | 
				
			||||||
@@ -0,0 +1,56 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * _default_types implementation for xtensa lx106 arch
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Simplified version of generic _default_types.h, ignores gcc
 | 
				
			||||||
 | 
					 * built-in standard types.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _MACHINE__DEFAULT_TYPES_H
 | 
				
			||||||
 | 
					#define _MACHINE__DEFAULT_TYPES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef signed char __int8_t ;
 | 
				
			||||||
 | 
					typedef unsigned char __uint8_t ;
 | 
				
			||||||
 | 
					#define ___int8_t_defined 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef signed short __int16_t;
 | 
				
			||||||
 | 
					typedef unsigned short __uint16_t;
 | 
				
			||||||
 | 
					#define ___int16_t_defined 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef signed int __int32_t;
 | 
				
			||||||
 | 
					typedef unsigned int __uint32_t;
 | 
				
			||||||
 | 
					#define ___int32_t_defined 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef signed long long __int64_t;
 | 
				
			||||||
 | 
					typedef unsigned long long __uint64_t;
 | 
				
			||||||
 | 
					#define ___int64_t_defined 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __int8_t __int_least8_t;
 | 
				
			||||||
 | 
					typedef __uint8_t __uint_least8_t;
 | 
				
			||||||
 | 
					#define ___int_least8_t_defined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __int16_t __int_least16_t;
 | 
				
			||||||
 | 
					typedef __uint16_t __uint_least16_t;
 | 
				
			||||||
 | 
					#define ___int_least16_t_defined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __int32_t __int_least32_t;
 | 
				
			||||||
 | 
					typedef __uint32_t __uint_least32_t;
 | 
				
			||||||
 | 
					#define ___int_least32_t_defined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __int64_t __int_least64_t;
 | 
				
			||||||
 | 
					typedef __uint64_t __uint_least64_t;
 | 
				
			||||||
 | 
					#define ___int_least64_t_defined
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __INTPTR_TYPE__ __intptr_t;
 | 
				
			||||||
 | 
					typedef __UINTPTR_TYPE__ __uintptr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _MACHINE__DEFAULT_TYPES_H */
 | 
				
			||||||
							
								
								
									
										8
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/_types.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/_types.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _MACHINE__TYPES_H
 | 
				
			||||||
 | 
					#define _MACHINE__TYPES_H
 | 
				
			||||||
 | 
					#include <machine/_default_types.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										1
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/ansi.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/ansi.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					/* dummy header file to support BSD compiler */
 | 
				
			||||||
							
								
								
									
										20
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/endian.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/endian.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					#ifndef __MACHINE_ENDIAN_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/config.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef BIG_ENDIAN
 | 
				
			||||||
 | 
					#define BIG_ENDIAN 4321
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define LITTLE_ENDIAN 1234
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef BYTE_ORDER
 | 
				
			||||||
 | 
					#if defined(__IEEE_LITTLE_ENDIAN) || defined(__IEEE_BYTES_LITTLE_ENDIAN)
 | 
				
			||||||
 | 
					#define BYTE_ORDER LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define BYTE_ORDER BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __MACHINE_ENDIAN_H__ */
 | 
				
			||||||
							
								
								
									
										100
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/fastmath.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										100
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/fastmath.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,100 @@
 | 
				
			|||||||
 | 
					#ifdef __sysvnecv70_target
 | 
				
			||||||
 | 
					double EXFUN(fast_sin,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_cos,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_tan,(double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double EXFUN(fast_asin,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_acos,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_atan,(double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double EXFUN(fast_sinh,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_cosh,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_tanh,(double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double EXFUN(fast_asinh,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_acosh,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_atanh,(double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double EXFUN(fast_abs,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_sqrt,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_exp2,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_exp10,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_expe,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_log10,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_log2,(double));
 | 
				
			||||||
 | 
					double EXFUN(fast_loge,(double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	sin(x)		fast_sin(x)
 | 
				
			||||||
 | 
					#define	cos(x)		fast_cos(x)
 | 
				
			||||||
 | 
					#define	tan(x)		fast_tan(x)
 | 
				
			||||||
 | 
					#define	asin(x)		fast_asin(x)
 | 
				
			||||||
 | 
					#define	acos(x)		fast_acos(x)
 | 
				
			||||||
 | 
					#define	atan(x)		fast_atan(x)
 | 
				
			||||||
 | 
					#define	sinh(x)		fast_sinh(x)
 | 
				
			||||||
 | 
					#define	cosh(x)		fast_cosh(x)
 | 
				
			||||||
 | 
					#define	tanh(x)		fast_tanh(x)
 | 
				
			||||||
 | 
					#define	asinh(x)	fast_asinh(x)
 | 
				
			||||||
 | 
					#define	acosh(x)	fast_acosh(x)
 | 
				
			||||||
 | 
					#define	atanh(x)	fast_atanh(x)
 | 
				
			||||||
 | 
					#define	abs(x)		fast_abs(x)
 | 
				
			||||||
 | 
					#define	sqrt(x)		fast_sqrt(x)
 | 
				
			||||||
 | 
					#define	exp2(x)		fast_exp2(x)
 | 
				
			||||||
 | 
					#define	exp10(x)	fast_exp10(x)
 | 
				
			||||||
 | 
					#define	expe(x)		fast_expe(x)
 | 
				
			||||||
 | 
					#define	log10(x)	fast_log10(x)
 | 
				
			||||||
 | 
					#define	log2(x)		fast_log2(x)
 | 
				
			||||||
 | 
					#define	loge(x)		fast_loge(x)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _HAVE_STDC
 | 
				
			||||||
 | 
					/* These functions are in assembler, they really do take floats. This
 | 
				
			||||||
 | 
					   can only be used with a real ANSI compiler */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float EXFUN(fast_sinf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_cosf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_tanf,(float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float EXFUN(fast_asinf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_acosf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_atanf,(float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float EXFUN(fast_sinhf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_coshf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_tanhf,(float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float EXFUN(fast_asinhf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_acoshf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_atanhf,(float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					float EXFUN(fast_absf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_sqrtf,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_exp2f,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_exp10f,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_expef,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_log10f,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_log2f,(float));
 | 
				
			||||||
 | 
					float EXFUN(fast_logef,(float));
 | 
				
			||||||
 | 
					#define	sinf(x)		fast_sinf(x)
 | 
				
			||||||
 | 
					#define	cosf(x)		fast_cosf(x)
 | 
				
			||||||
 | 
					#define	tanf(x)		fast_tanf(x)
 | 
				
			||||||
 | 
					#define	asinf(x)	fast_asinf(x)
 | 
				
			||||||
 | 
					#define	acosf(x)	fast_acosf(x)
 | 
				
			||||||
 | 
					#define	atanf(x)	fast_atanf(x)
 | 
				
			||||||
 | 
					#define	sinhf(x)	fast_sinhf(x)
 | 
				
			||||||
 | 
					#define	coshf(x)	fast_coshf(x)
 | 
				
			||||||
 | 
					#define	tanhf(x)	fast_tanhf(x)
 | 
				
			||||||
 | 
					#define	asinhf(x)	fast_asinhf(x)
 | 
				
			||||||
 | 
					#define	acoshf(x)	fast_acoshf(x)
 | 
				
			||||||
 | 
					#define	atanhf(x)	fast_atanhf(x)
 | 
				
			||||||
 | 
					#define	absf(x)		fast_absf(x)
 | 
				
			||||||
 | 
					#define	sqrtf(x)	fast_sqrtf(x)
 | 
				
			||||||
 | 
					#define	exp2f(x)	fast_exp2f(x)
 | 
				
			||||||
 | 
					#define	exp10f(x)	fast_exp10f(x)
 | 
				
			||||||
 | 
					#define	expef(x)	fast_expef(x)
 | 
				
			||||||
 | 
					#define	log10f(x)	fast_log10f(x)
 | 
				
			||||||
 | 
					#define	log2f(x)	fast_log2f(x)
 | 
				
			||||||
 | 
					#define	logef(x)	fast_logef(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* Override the functions defined in math.h */
 | 
				
			||||||
 | 
					#endif /* __sysvnecv70_target */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										434
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/ieeefp.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										434
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/ieeefp.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,434 @@
 | 
				
			|||||||
 | 
					#ifndef __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#ifndef __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This file can define macros to choose variations of the IEEE float
 | 
				
			||||||
 | 
					   format:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   _FLT_LARGEST_EXPONENT_IS_NORMAL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Defined if the float format uses the largest exponent for finite
 | 
				
			||||||
 | 
						numbers rather than NaN and infinity representations.  Such a
 | 
				
			||||||
 | 
						format cannot represent NaNs or infinities at all, but it's FLT_MAX
 | 
				
			||||||
 | 
						is twice the IEEE value.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   _FLT_NO_DENORMALS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						Defined if the float format does not support IEEE denormals.  Every
 | 
				
			||||||
 | 
						float with a zero exponent is taken to be a zero representation.
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					   ??? At the moment, there are no equivalent macros above for doubles and
 | 
				
			||||||
 | 
					   the macros are not fully supported by --enable-newlib-hw-fp.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        Defined if the float format is big endian.  This is mutually exclusive
 | 
				
			||||||
 | 
					        with __IEEE_LITTLE_ENDIAN.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					        Defined if the float format is little endian.  This is mutually exclusive
 | 
				
			||||||
 | 
					        with __IEEE_BIG_ENDIAN.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Note that one of __IEEE_BIG_ENDIAN or __IEEE_LITTLE_ENDIAN must be specified for a
 | 
				
			||||||
 | 
					   platform or error will occur.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   __IEEE_BYTES_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        This flag is used in conjunction with __IEEE_BIG_ENDIAN to describe a situation 
 | 
				
			||||||
 | 
						whereby multiple words of an IEEE floating point are in big endian order, but the
 | 
				
			||||||
 | 
						words themselves are little endian with respect to the bytes.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   _DOUBLE_IS_32BITS 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        This is used on platforms that support double by using the 32-bit IEEE
 | 
				
			||||||
 | 
					        float type.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   _FLOAT_ARG
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        This represents what type a float arg is passed as.  It is used when the type is
 | 
				
			||||||
 | 
					        not promoted to double.
 | 
				
			||||||
 | 
						
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(__arm__) || defined(__thumb__)) && !defined(__MAVERICK__)
 | 
				
			||||||
 | 
					/* ARM traditionally used big-endian words; and within those words the
 | 
				
			||||||
 | 
					   byte ordering was big or little endian depending upon the target.
 | 
				
			||||||
 | 
					   Modern floating-point formats are naturally ordered; in this case
 | 
				
			||||||
 | 
					   __VFP_FP__ will be defined, even if soft-float.  */
 | 
				
			||||||
 | 
					#ifdef __VFP_FP__
 | 
				
			||||||
 | 
					# ifdef __ARMEL__
 | 
				
			||||||
 | 
					#  define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					# ifdef __ARMEL__
 | 
				
			||||||
 | 
					#  define __IEEE_BYTES_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__aarch64__)
 | 
				
			||||||
 | 
					#if defined (__AARCH64EL__)
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __epiphany__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define Sudden_Underflow 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __hppa__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __nds32__
 | 
				
			||||||
 | 
					#ifdef __big_endian__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __SPU__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define isfinite(__y) \
 | 
				
			||||||
 | 
						(__extension__ ({int __cy; \
 | 
				
			||||||
 | 
							(sizeof (__y) == sizeof (float))  ? (1) : \
 | 
				
			||||||
 | 
							(__cy = fpclassify(__y)) != FP_INFINITE && __cy != FP_NAN;}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define isinf(__x) ((sizeof (__x) == sizeof (float))  ?  (0) : __isinfd(__x))
 | 
				
			||||||
 | 
					#define isnan(__x) ((sizeof (__x) == sizeof (float))  ?  (0) : __isnand(__x))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Macros for use in ieeefp.h. We can't just define the real ones here
 | 
				
			||||||
 | 
					 * (like those above) as we have name space issues when this is *not*
 | 
				
			||||||
 | 
					 * included via generic the ieeefp.h.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define __ieeefp_isnanf(x)	0
 | 
				
			||||||
 | 
					#define __ieeefp_isinff(x)	0
 | 
				
			||||||
 | 
					#define __ieeefp_finitef(x)	1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __sparc__
 | 
				
			||||||
 | 
					#ifdef __LITTLE_ENDIAN_DATA__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__m68k__) || defined(__mc68000__)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#ifdef __HAVE_SHORT_DOUBLE__
 | 
				
			||||||
 | 
					# define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__H8300__) || defined (__H8300H__) || defined (__H8300S__) || defined (__H8500__) || defined (__H8300SX__)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#define _FLOAT_ARG float
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__)
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define _FLOAT_ARG float
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __sh__
 | 
				
			||||||
 | 
					#ifdef __LITTLE_ENDIAN__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__SH2E__) || defined(__SH3E__) || defined(__SH4_SINGLE_ONLY__) || defined(__SH2A_SINGLE_ONLY__)
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _AM29K
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _WIN32
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i386__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i960__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __lm32__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __M32R__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_C4x) || defined(_C3x)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __TMS320C6X__
 | 
				
			||||||
 | 
					#ifdef _BIG_ENDIAN
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __TIC80__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MIPSEL__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __MIPSEB__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MMIX__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __D30V__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* necv70 was __IEEE_LITTLE_ENDIAN. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __W65__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__Z8001__) || defined(__Z8002__)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __m88k__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mn10300__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mn10200__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __v800
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __v850
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __D10V__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#if __DOUBLE__ == 32
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __PPC__
 | 
				
			||||||
 | 
					#if (defined(_BIG_ENDIAN) && _BIG_ENDIAN) || (defined(_AIX) && _AIX)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if (defined(_LITTLE_ENDIAN) && _LITTLE_ENDIAN) || (defined(__sun__) && __sun__) || (defined(_WIN32) && _WIN32)
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __xstormy16__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __arc__
 | 
				
			||||||
 | 
					#ifdef __big_endian__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CRX__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __fr30__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mcore__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mt__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __frv__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __moxie__
 | 
				
			||||||
 | 
					#ifdef __MOXIE_BIG_ENDIAN__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __ia64__
 | 
				
			||||||
 | 
					#ifdef __BIG_ENDIAN__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __AVR__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__or1k__) || defined(__OR1K__) || defined(__OR1KND__)
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __IP2K__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __iq2000__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MAVERICK__
 | 
				
			||||||
 | 
					#ifdef __ARMEL__
 | 
				
			||||||
 | 
					#  define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else  /* must be __ARMEB__ */
 | 
				
			||||||
 | 
					#  define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif /* __ARMEL__ */
 | 
				
			||||||
 | 
					#endif /* __MAVERICK__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __m32c__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CRIS__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __BFIN__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __x86_64__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mep__
 | 
				
			||||||
 | 
					#ifdef __LITTLE_ENDIAN__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MICROBLAZE__
 | 
				
			||||||
 | 
					#ifndef __MICROBLAZEEL__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MSP430__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS	/* 16 Bit INT */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RL78__
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS	/* 16 Bit INT */
 | 
				
			||||||
 | 
					#ifndef __RL78_64BIT_DOUBLES__
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RX__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RX_BIG_ENDIAN__
 | 
				
			||||||
 | 
					#define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __RX_64BIT_DOUBLES__
 | 
				
			||||||
 | 
					#define _DOUBLE_IS_32BITS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RX_16BIT_INTS__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__))
 | 
				
			||||||
 | 
					#define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS	/* 16 Bit INT */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __NIOS2__
 | 
				
			||||||
 | 
					# ifdef __nios2_big_endian__
 | 
				
			||||||
 | 
					#  define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(__XTENSA__))
 | 
				
			||||||
 | 
					# ifdef __XTENSA_EB__
 | 
				
			||||||
 | 
					#  define __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __IEEE_BIG_ENDIAN
 | 
				
			||||||
 | 
					#ifndef __IEEE_LITTLE_ENDIAN
 | 
				
			||||||
 | 
					#error Endianess not declared!!
 | 
				
			||||||
 | 
					#endif /* not __IEEE_LITTLE_ENDIAN */
 | 
				
			||||||
 | 
					#endif /* not __IEEE_BIG_ENDIAN */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* not __IEEE_LITTLE_ENDIAN */
 | 
				
			||||||
 | 
					#endif /* not __IEEE_BIG_ENDIAN */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										8
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/malloc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/malloc.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					#ifndef	_MACHMALLOC_H_
 | 
				
			||||||
 | 
					#define	_MACHMALLOC_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* place holder so platforms may add malloc.h extensions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _MACHMALLOC_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										1
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/param.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										1
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/param.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					/* Place holder for machine-specific param.h.  */
 | 
				
			||||||
							
								
								
									
										43
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/setjmp-dj.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										43
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/setjmp-dj.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,43 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (C) 1991 DJ Delorie
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution, modification, and use in source and binary forms is permitted
 | 
				
			||||||
 | 
					 * provided that the above copyright notice and following paragraph are
 | 
				
			||||||
 | 
					 * duplicated in all such forms.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This file is distributed WITHOUT ANY WARRANTY; without even the implied
 | 
				
			||||||
 | 
					 * warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Modified to use SETJMP_DJ_H rather than SETJMP_H to avoid
 | 
				
			||||||
 | 
					   conflicting with setjmp.h.  Ian Taylor, Cygnus support, April,
 | 
				
			||||||
 | 
					   1993.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SETJMP_DJ_H_
 | 
				
			||||||
 | 
					#define _SETJMP_DJ_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  unsigned long eax;
 | 
				
			||||||
 | 
					  unsigned long ebx;
 | 
				
			||||||
 | 
					  unsigned long ecx;
 | 
				
			||||||
 | 
					  unsigned long edx;
 | 
				
			||||||
 | 
					  unsigned long esi;
 | 
				
			||||||
 | 
					  unsigned long edi;
 | 
				
			||||||
 | 
					  unsigned long ebp;
 | 
				
			||||||
 | 
					  unsigned long esp;
 | 
				
			||||||
 | 
					  unsigned long eip;
 | 
				
			||||||
 | 
					} jmp_buf[1];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int setjmp(jmp_buf);
 | 
				
			||||||
 | 
					extern void longjmp(jmp_buf, int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										453
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/setjmp.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										453
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/setjmp.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,453 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__or1k__) || defined(__or1knd__)
 | 
				
			||||||
 | 
					#define _JBLEN 31 /* 32 GPRs - r0 */
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__arm__) || defined(__thumb__)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * All callee preserved registers:
 | 
				
			||||||
 | 
					 * v1 - v7, fp, ip, sp, lr, f4, f5, f6, f7
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define _JBLEN 23
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__aarch64__)
 | 
				
			||||||
 | 
					#define _JBLEN 22
 | 
				
			||||||
 | 
					#define _JBTYPE long long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__AVR__)
 | 
				
			||||||
 | 
					#define _JBLEN 24
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __sparc__
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext).
 | 
				
			||||||
 | 
					 * All else recovered by under/over(flow) handling.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	_JBLEN	13
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __BFIN__
 | 
				
			||||||
 | 
					#define _JBLEN  40
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __epiphany__
 | 
				
			||||||
 | 
					/* All callee preserved registers: r4-r10,fp, sp, lr,r15, r32-r39  */
 | 
				
			||||||
 | 
					#define _JBTYPE long long
 | 
				
			||||||
 | 
					#define _JBLEN 10
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* necv70 was 9 as well. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__m68k__) || defined(__mc68000__)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * onsstack,sigmask,sp,pc,psl,d2-d7,a2-a6,
 | 
				
			||||||
 | 
					 * fp2-fp7	for 68881.
 | 
				
			||||||
 | 
					 * All else recovered by under/over(flow) handling.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	_JBLEN	34
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * D, X, Y are not saved.
 | 
				
			||||||
 | 
					 * Only take into account the pseudo soft registers (max 32).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define _JBLEN  32
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __nds32__
 | 
				
			||||||
 | 
					/* 17 words for GPRs,
 | 
				
			||||||
 | 
					   1 word for $fpcfg.freg and 30 words for FPUs
 | 
				
			||||||
 | 
					   Reserved 2 words for aligement-adjustment. When storeing double-precision
 | 
				
			||||||
 | 
					   floating-point register into memory, the address has to be
 | 
				
			||||||
 | 
					   double-word-aligned.
 | 
				
			||||||
 | 
					   Check libc/machine/nds32/setjmp.S for more information.  */
 | 
				
			||||||
 | 
					#if __NDS32_EXT_FPU_SP__ || __NDS32_EXT_FPU_DP__
 | 
				
			||||||
 | 
					#define	_JBLEN 50
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _JBLEN 18
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__Z8001__) || defined(__Z8002__)
 | 
				
			||||||
 | 
					/* 16 regs + pc */
 | 
				
			||||||
 | 
					#define _JBLEN 20
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _AM29K
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * onsstack,sigmask,sp,pc,npc,psr,g1,o0,wbcnt (sigcontext).
 | 
				
			||||||
 | 
					 * All else recovered by under/over(flow) handling.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	_JBLEN	9
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i386__
 | 
				
			||||||
 | 
					# if defined(__CYGWIN__) && !defined (_JBLEN)
 | 
				
			||||||
 | 
					#  define _JBLEN (13 * 4)
 | 
				
			||||||
 | 
					# elif defined(__unix__) || defined(__rtems__)
 | 
				
			||||||
 | 
					#  define _JBLEN	9
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  include "setjmp-dj.h"
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __x86_64__
 | 
				
			||||||
 | 
					# ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#  define _JBTYPE long
 | 
				
			||||||
 | 
					#  define _JBLEN  32
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define _JBTYPE long long
 | 
				
			||||||
 | 
					#  define _JBLEN  8
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i960__
 | 
				
			||||||
 | 
					#define _JBLEN 35
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __M32R__
 | 
				
			||||||
 | 
					/* Only 8 words are currently needed.  10 gives us some slop if we need
 | 
				
			||||||
 | 
					   to expand.  */
 | 
				
			||||||
 | 
					#define _JBLEN 10
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mips__
 | 
				
			||||||
 | 
					# if defined(__mips64)
 | 
				
			||||||
 | 
					#  define _JBTYPE long long
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					# ifdef __mips_soft_float
 | 
				
			||||||
 | 
					#  define _JBLEN 11
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define _JBLEN 23
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __m88000__
 | 
				
			||||||
 | 
					#define _JBLEN 21
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __H8300__
 | 
				
			||||||
 | 
					#define _JBLEN 5
 | 
				
			||||||
 | 
					#define _JBTYPE int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __H8300H__
 | 
				
			||||||
 | 
					/* same as H8/300 but registers are twice as big */
 | 
				
			||||||
 | 
					#define _JBLEN 5
 | 
				
			||||||
 | 
					#define _JBTYPE long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__H8300S__) || defined (__H8300SX__)
 | 
				
			||||||
 | 
					/* same as H8/300 but registers are twice as big */
 | 
				
			||||||
 | 
					#define _JBLEN 5
 | 
				
			||||||
 | 
					#define _JBTYPE long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __H8500__
 | 
				
			||||||
 | 
					#define _JBLEN 4
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef  __sh__
 | 
				
			||||||
 | 
					#if __SH5__
 | 
				
			||||||
 | 
					#define _JBLEN 50
 | 
				
			||||||
 | 
					#define _JBTYPE long long
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _JBLEN 20
 | 
				
			||||||
 | 
					#endif /* __SH5__ */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef  __v800
 | 
				
			||||||
 | 
					#define _JBLEN 28
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __PPC__
 | 
				
			||||||
 | 
					#ifdef __ALTIVEC__
 | 
				
			||||||
 | 
					#define _JBLEN 64
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _JBLEN 32
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _JBTYPE double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MICROBLAZE__
 | 
				
			||||||
 | 
					#define _JBLEN  20
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __hppa__
 | 
				
			||||||
 | 
					/* %r30, %r2-%r18, %r27, pad, %fr12-%fr15.
 | 
				
			||||||
 | 
					   Note space exists for the FP registers, but they are not
 | 
				
			||||||
 | 
					   saved.  */
 | 
				
			||||||
 | 
					#define _JBLEN 28
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__mn10300__) || defined(__mn10200__)
 | 
				
			||||||
 | 
					#ifdef __AM33_2__
 | 
				
			||||||
 | 
					#define _JBLEN 26
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* A guess */
 | 
				
			||||||
 | 
					#define _JBLEN 10
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __v850
 | 
				
			||||||
 | 
					/* I think our setjmp is saving 15 regs at the moment.  Gives us one word
 | 
				
			||||||
 | 
					   slop if we need to expand.  */
 | 
				
			||||||
 | 
					#define _JBLEN 16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_C4x)
 | 
				
			||||||
 | 
					#define _JBLEN 10
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(_C3x)
 | 
				
			||||||
 | 
					#define _JBLEN 9
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __TMS320C6X__
 | 
				
			||||||
 | 
					#define _JBLEN 13
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __TIC80__
 | 
				
			||||||
 | 
					#define _JBLEN 13
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __D10V__
 | 
				
			||||||
 | 
					#define _JBLEN 8
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __D30V__
 | 
				
			||||||
 | 
					#define _JBLEN ((64 /* GPR */ + (2*2) /* ACs */ + 18 /* CRs */) / 2)
 | 
				
			||||||
 | 
					#define _JBTYPE double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __frv__
 | 
				
			||||||
 | 
					#define _JBLEN (68/2)  /* room for 68 32-bit regs */
 | 
				
			||||||
 | 
					#define _JBTYPE double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __moxie__
 | 
				
			||||||
 | 
					#define _JBLEN 16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CRX__
 | 
				
			||||||
 | 
					#define _JBLEN 9
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__))
 | 
				
			||||||
 | 
					/* r6, r7, r8, r9, r10, r11, r12 (r12L, r12H), 
 | 
				
			||||||
 | 
					 * r13 (r13L, r13H), ra(raL, raH), sp(spL, spH) */
 | 
				
			||||||
 | 
					#define _JBLEN 14
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned short
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __fr30__
 | 
				
			||||||
 | 
					#define _JBLEN 10
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __iq2000__
 | 
				
			||||||
 | 
					#define _JBLEN 32
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mcore__
 | 
				
			||||||
 | 
					#define _JBLEN 16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MMIX__
 | 
				
			||||||
 | 
					/* Using a layout compatible with GCC's built-in.  */
 | 
				
			||||||
 | 
					#define _JBLEN 5
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mt__
 | 
				
			||||||
 | 
					#define _JBLEN 16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __SPU__
 | 
				
			||||||
 | 
					#define _JBLEN 50 
 | 
				
			||||||
 | 
					#define _JBTYPE __vector signed int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __xstormy16__
 | 
				
			||||||
 | 
					/* 4 GPRs plus SP plus PC. */
 | 
				
			||||||
 | 
					#define _JBLEN 8
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __XTENSA__
 | 
				
			||||||
 | 
					#if __XTENSA_WINDOWED_ABI__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The jmp_buf structure for Xtensa windowed ABI holds the following
 | 
				
			||||||
 | 
					   (where "proc" is the procedure that calls setjmp): 4-12 registers
 | 
				
			||||||
 | 
					   from the window of proc, the 4 words from the save area at proc's $sp
 | 
				
			||||||
 | 
					   (in case a subsequent alloca in proc moves $sp), and the return
 | 
				
			||||||
 | 
					   address within proc.  Everything else is saved on the stack in the
 | 
				
			||||||
 | 
					   normal save areas.  The jmp_buf structure is:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					  	struct jmp_buf {
 | 
				
			||||||
 | 
					  	    int regs[12];
 | 
				
			||||||
 | 
					  	    int save[4];
 | 
				
			||||||
 | 
					  	    void *return_address;
 | 
				
			||||||
 | 
					  	}
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					   See the setjmp code for details.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _JBLEN		17	/* 12 + 4 + 1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* __XTENSA_CALL0_ABI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _JBLEN		6	/* a0, a1, a12, a13, a14, a15 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __XTENSA_CALL0_ABI__ */
 | 
				
			||||||
 | 
					#endif /* __XTENSA__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mep__
 | 
				
			||||||
 | 
					/* 16 GPRs, pc, hi, lo */
 | 
				
			||||||
 | 
					#define _JBLEN 19
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CRIS__
 | 
				
			||||||
 | 
					#define _JBLEN 18
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __lm32__
 | 
				
			||||||
 | 
					#define _JBLEN 19
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __m32c__
 | 
				
			||||||
 | 
					#if defined(__r8c_cpu__) || defined(__m16c_cpu__)
 | 
				
			||||||
 | 
					#define _JBLEN (22/2)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _JBLEN (34/2)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned short
 | 
				
			||||||
 | 
					#endif /* __m32c__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MSP430__
 | 
				
			||||||
 | 
					#define _JBLEN 9
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MSP430X_LARGE__
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned long
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned short
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RL78__
 | 
				
			||||||
 | 
					/* Three banks of registers, SP, CS, ES, PC */
 | 
				
			||||||
 | 
					#define _JBLEN (8*3+8)
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned char
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * There are two versions of setjmp()/longjmp():
 | 
				
			||||||
 | 
					 *   1) Compiler (gcc) built-in versions.
 | 
				
			||||||
 | 
					 *   2) Function-call versions.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The built-in versions are used most of the time.  When used, gcc replaces
 | 
				
			||||||
 | 
					 * calls to setjmp()/longjmp() with inline assembly code.  The built-in 
 | 
				
			||||||
 | 
					 * versions save/restore a variable number of registers.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 * _JBLEN is set to 40 to be ultra-safe with the built-in versions.
 | 
				
			||||||
 | 
					 * It only needs to be 12 for the function-call versions
 | 
				
			||||||
 | 
					 * but this data structure is used by both versions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifdef __NIOS2__
 | 
				
			||||||
 | 
					#define _JBLEN 40
 | 
				
			||||||
 | 
					#define _JBTYPE unsigned long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __RX__
 | 
				
			||||||
 | 
					#define _JBLEN 0x44
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _JBLEN
 | 
				
			||||||
 | 
					#ifdef _JBTYPE
 | 
				
			||||||
 | 
					typedef	_JBTYPE jmp_buf[_JBLEN];
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef	int jmp_buf[_JBLEN];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX sigsetjmp/siglongjmp macros */
 | 
				
			||||||
 | 
					#ifdef _JBTYPE
 | 
				
			||||||
 | 
					typedef _JBTYPE sigjmp_buf[_JBLEN+1+((sizeof (_JBTYPE) + sizeof (sigset_t) - 1)
 | 
				
			||||||
 | 
									     /sizeof (_JBTYPE))];
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef int sigjmp_buf[_JBLEN+1+(sizeof (sigset_t)/sizeof (int))];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _SAVEMASK	_JBLEN
 | 
				
			||||||
 | 
					#define _SIGMASK	(_JBLEN+1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					# define _CYGWIN_WORKING_SIGSETJMP
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _POSIX_THREADS
 | 
				
			||||||
 | 
					#define __SIGMASK_FUNC pthread_sigmask
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __SIGMASK_FUNC sigprocmask
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define sigsetjmp(env, savemask) \
 | 
				
			||||||
 | 
					            __extension__ \
 | 
				
			||||||
 | 
					            ({ \
 | 
				
			||||||
 | 
					              sigjmp_buf *_sjbuf = &(env); \
 | 
				
			||||||
 | 
					              ((*_sjbuf)[_SAVEMASK] = savemask,\
 | 
				
			||||||
 | 
					              __SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *)((*_sjbuf) + _SIGMASK)),\
 | 
				
			||||||
 | 
					              setjmp (*_sjbuf)); \
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define siglongjmp(env, val) \
 | 
				
			||||||
 | 
					            __extension__ \
 | 
				
			||||||
 | 
					            ({ \
 | 
				
			||||||
 | 
					              sigjmp_buf *_sjbuf = &(env); \
 | 
				
			||||||
 | 
					              ((((*_sjbuf)[_SAVEMASK]) ? \
 | 
				
			||||||
 | 
					               __SIGMASK_FUNC (SIG_SETMASK, (sigset_t *)((*_sjbuf) + _SIGMASK), 0)\
 | 
				
			||||||
 | 
					               : 0), \
 | 
				
			||||||
 | 
					               longjmp (*_sjbuf, val)); \
 | 
				
			||||||
 | 
					            })
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !__GNUC__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define sigsetjmp(env, savemask) ((env)[_SAVEMASK] = savemask,\
 | 
				
			||||||
 | 
					               __SIGMASK_FUNC (SIG_SETMASK, 0, (sigset_t *) ((env) + _SIGMASK)),\
 | 
				
			||||||
 | 
					               setjmp (env))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define siglongjmp(env, val) ((((env)[_SAVEMASK])?\
 | 
				
			||||||
 | 
					               __SIGMASK_FUNC (SIG_SETMASK, (sigset_t *) ((env) + _SIGMASK), 0):0),\
 | 
				
			||||||
 | 
					               longjmp (env, val))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX _setjmp/_longjmp, maintained for XSI compatibility.  These
 | 
				
			||||||
 | 
					   are equivalent to sigsetjmp/siglongjmp when not saving the signal mask.
 | 
				
			||||||
 | 
					   New applications should use sigsetjmp/siglongjmp instead. */
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					extern void _longjmp(jmp_buf, int);
 | 
				
			||||||
 | 
					extern int _setjmp(jmp_buf);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _setjmp(env)		sigsetjmp ((env), 0)
 | 
				
			||||||
 | 
					#define _longjmp(env, val)	siglongjmp ((env), (val))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ or __rtems__ */
 | 
				
			||||||
							
								
								
									
										8
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/stdlib.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										8
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/stdlib.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,8 @@
 | 
				
			|||||||
 | 
					#ifndef	_MACHSTDLIB_H_
 | 
				
			||||||
 | 
					#define	_MACHSTDLIB_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* place holder so platforms may add stdlib.h extensions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _MACHSTDLIB_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@@ -0,0 +1 @@
 | 
				
			|||||||
 | 
					#define __MAX_BAUD  B4000000
 | 
				
			||||||
							
								
								
									
										19
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/time.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										19
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/time.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,19 @@
 | 
				
			|||||||
 | 
					#ifndef	_MACHTIME_H_
 | 
				
			||||||
 | 
					#define	_MACHTIME_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					#define _CLOCKS_PER_SEC_  sysconf(_SC_CLK_TCK)
 | 
				
			||||||
 | 
					#else  /* !__rtems__ */
 | 
				
			||||||
 | 
					#if defined(__aarch64__) || defined(__arm__) || defined(__thumb__)
 | 
				
			||||||
 | 
					#define _CLOCKS_PER_SEC_ 100
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* !__rtems__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __SPU__
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					int nanosleep (const struct timespec *, struct timespec *);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _MACHTIME_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										30
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/types.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										30
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/machine/types.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,30 @@
 | 
				
			|||||||
 | 
					#ifndef	_MACHTYPES_H_
 | 
				
			||||||
 | 
					#define	_MACHTYPES_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  The following section is RTEMS specific and is needed to more
 | 
				
			||||||
 | 
					 *  closely match the types defined in the BSD machine/types.h.
 | 
				
			||||||
 | 
					 *  This is needed to let the RTEMS/BSD TCP/IP stack compile.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					#include <machine/_types.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_CLOCK_T_	unsigned long		/* clock() */
 | 
				
			||||||
 | 
					#define	_TIME_T_	long			/* time() */
 | 
				
			||||||
 | 
					#define _CLOCKID_T_ 	unsigned long
 | 
				
			||||||
 | 
					#define _TIMER_T_   	unsigned long
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _HAVE_SYSTYPES
 | 
				
			||||||
 | 
					typedef long int __off_t;
 | 
				
			||||||
 | 
					typedef int __pid_t;
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					__extension__ typedef long long int __loff_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef long int __loff_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _MACHTYPES_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										169
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/malloc.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										169
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/malloc.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,169 @@
 | 
				
			|||||||
 | 
					/* malloc.h -- header file for memory routines.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _INCLUDE_MALLOC_H_
 | 
				
			||||||
 | 
					#define _INCLUDE_MALLOC_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* include any machine-specific extensions */
 | 
				
			||||||
 | 
					#include <machine/malloc.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This version of struct mallinfo must match the one in
 | 
				
			||||||
 | 
					   libc/stdlib/mallocr.c.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct mallinfo {
 | 
				
			||||||
 | 
					  size_t arena;    /* total space allocated from system */
 | 
				
			||||||
 | 
					  size_t ordblks;  /* number of non-inuse chunks */
 | 
				
			||||||
 | 
					  size_t smblks;   /* unused -- always zero */
 | 
				
			||||||
 | 
					  size_t hblks;    /* number of mmapped regions */
 | 
				
			||||||
 | 
					  size_t hblkhd;   /* total space in mmapped regions */
 | 
				
			||||||
 | 
					  size_t usmblks;  /* unused -- always zero */
 | 
				
			||||||
 | 
					  size_t fsmblks;  /* unused -- always zero */
 | 
				
			||||||
 | 
					  size_t uordblks; /* total allocated space */
 | 
				
			||||||
 | 
					  size_t fordblks; /* total non-inuse space */
 | 
				
			||||||
 | 
					  size_t keepcost; /* top-most, releasable (via malloc_trim) space */
 | 
				
			||||||
 | 
					};	
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The routines.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR malloc _PARAMS ((size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _malloc_r
 | 
				
			||||||
 | 
					#define _malloc_r(r, s) malloc (s)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _malloc_r _PARAMS ((struct _reent *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _VOID free _PARAMS ((_PTR));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _free_r
 | 
				
			||||||
 | 
					#define _free_r(r, p) free (p)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _VOID _free_r _PARAMS ((struct _reent *, _PTR));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR realloc _PARAMS ((_PTR, size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _realloc_r
 | 
				
			||||||
 | 
					#define _realloc_r(r, p, s) realloc (p, s)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _realloc_r _PARAMS ((struct _reent *, _PTR, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR calloc _PARAMS ((size_t, size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _calloc_r
 | 
				
			||||||
 | 
					#define _calloc_r(r, s1, s2) calloc (s1, s2);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _calloc_r _PARAMS ((struct _reent *, size_t, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR memalign _PARAMS ((size_t, size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _memalign_r
 | 
				
			||||||
 | 
					#define _memalign_r(r, s1, s2) memalign (s1, s2);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _memalign_r _PARAMS ((struct _reent *, size_t, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern struct mallinfo mallinfo _PARAMS ((void));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _mallinfo_r
 | 
				
			||||||
 | 
					#define _mallinfo_r(r) mallinfo ()
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern struct mallinfo _mallinfo_r _PARAMS ((struct _reent *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern void malloc_stats _PARAMS ((void));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _malloc_stats_r
 | 
				
			||||||
 | 
					#define _malloc_stats_r(r) malloc_stats ()
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern void _malloc_stats_r _PARAMS ((struct _reent *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int mallopt _PARAMS ((int, int));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _mallopt_r
 | 
				
			||||||
 | 
					#define _mallopt_r(i1, i2) mallopt (i1, i2)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern int _mallopt_r _PARAMS ((struct _reent *, int, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern size_t malloc_usable_size _PARAMS ((_PTR));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _malloc_usable_size_r
 | 
				
			||||||
 | 
					#define _malloc_usable_size_r(r, p) malloc_usable_size (p)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern size_t _malloc_usable_size_r _PARAMS ((struct _reent *, _PTR));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* These aren't too useful on an embedded system, but we define them
 | 
				
			||||||
 | 
					   anyhow.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR valloc _PARAMS ((size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _valloc_r
 | 
				
			||||||
 | 
					#define _valloc_r(r, s) valloc (s)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _valloc_r _PARAMS ((struct _reent *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _PTR pvalloc _PARAMS ((size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _pvalloc_r
 | 
				
			||||||
 | 
					#define _pvalloc_r(r, s) pvalloc (s)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _PTR _pvalloc_r _PARAMS ((struct _reent *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int malloc_trim _PARAMS ((size_t));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _malloc_trim_r
 | 
				
			||||||
 | 
					#define _malloc_trim_r(r, s) malloc_trim (s)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern int _malloc_trim_r _PARAMS ((struct _reent *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* A compatibility routine for an earlier version of the allocator.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _VOID mstats _PARAMS ((char *));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#undef _mstats_r
 | 
				
			||||||
 | 
					#define _mstats_r(r, p) mstats (p)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern _VOID _mstats_r _PARAMS ((struct _reent *, char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* SVID2/XPG mallopt options */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define M_MXFAST  1    /* UNUSED in this malloc */
 | 
				
			||||||
 | 
					#define M_NLBLKS  2    /* UNUSED in this malloc */
 | 
				
			||||||
 | 
					#define M_GRAIN   3    /* UNUSED in this malloc */
 | 
				
			||||||
 | 
					#define M_KEEP    4    /* UNUSED in this malloc */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* mallopt options that actually do something */
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					#define M_TRIM_THRESHOLD    -1
 | 
				
			||||||
 | 
					#define M_TOP_PAD           -2
 | 
				
			||||||
 | 
					#define M_MMAP_THRESHOLD    -3 
 | 
				
			||||||
 | 
					#define M_MMAP_MAX          -4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					/* Some systems provide this, so do too for compatibility.  */
 | 
				
			||||||
 | 
					extern void cfree _PARAMS ((_PTR));
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _INCLUDE_MALLOC_H_ */
 | 
				
			||||||
							
								
								
									
										615
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/math.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										615
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/math.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,615 @@
 | 
				
			|||||||
 | 
					#ifndef  _MATH_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define  _MATH_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					#include <machine/ieeefp.h>
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* __dmath, __fmath, and __ldmath are only here for backwards compatibility
 | 
				
			||||||
 | 
					 * in case any code used them.  They are no longer used by Newlib, itself,
 | 
				
			||||||
 | 
					 * other than legacy.  */
 | 
				
			||||||
 | 
					union __dmath
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  double d;
 | 
				
			||||||
 | 
					  __ULong i[2];
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					union __fmath
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  float f;
 | 
				
			||||||
 | 
					  __ULong i[1];
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_HAVE_LONG_DOUBLE)
 | 
				
			||||||
 | 
					union __ldmath
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  long double ld;
 | 
				
			||||||
 | 
					  __ULong i[4];
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Natural log of 2 */
 | 
				
			||||||
 | 
					#define _M_LN2        0.693147180559945309417
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ (3, 3)
 | 
				
			||||||
 | 
					 /* gcc >= 3.3 implicitly defines builtins for HUGE_VALx values.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef HUGE_VAL
 | 
				
			||||||
 | 
					#  define HUGE_VAL (__builtin_huge_val())
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef HUGE_VALF
 | 
				
			||||||
 | 
					#  define HUGE_VALF (__builtin_huge_valf())
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef HUGE_VALL
 | 
				
			||||||
 | 
					#  define HUGE_VALL (__builtin_huge_vall())
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef INFINITY
 | 
				
			||||||
 | 
					#  define INFINITY (__builtin_inff())
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef NAN
 | 
				
			||||||
 | 
					#  define NAN (__builtin_nanf(""))
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !gcc >= 3.3  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 /*      No builtins.  Use fixed defines instead.  (All 3 HUGE plus the INFINITY
 | 
				
			||||||
 | 
					  * and NAN macros are required to be constant expressions.  Using a variable--
 | 
				
			||||||
 | 
					  * even a static const--does not meet this requirement, as it cannot be
 | 
				
			||||||
 | 
					  * evaluated at translation time.)
 | 
				
			||||||
 | 
					  *      The infinities are done using numbers that are far in excess of
 | 
				
			||||||
 | 
					  * something that would be expected to be encountered in a floating-point
 | 
				
			||||||
 | 
					  * implementation.  (A more certain way uses values from float.h, but that is
 | 
				
			||||||
 | 
					  * avoided because system includes are not supposed to include each other.)
 | 
				
			||||||
 | 
					  *      This method might produce warnings from some compilers.  (It does in
 | 
				
			||||||
 | 
					  * newer GCCs, but not for ones that would hit this #else.)  If this happens,
 | 
				
			||||||
 | 
					  * please report details to the Newlib mailing list.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #ifndef HUGE_VAL
 | 
				
			||||||
 | 
					  #define HUGE_VAL (1.0e999999999)
 | 
				
			||||||
 | 
					 #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #ifndef HUGE_VALF
 | 
				
			||||||
 | 
					  #define HUGE_VALF (1.0e999999999F)
 | 
				
			||||||
 | 
					 #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #if !defined(HUGE_VALL)  &&  defined(_HAVE_LONG_DOUBLE)
 | 
				
			||||||
 | 
					  #define HUGE_VALL (1.0e999999999L)
 | 
				
			||||||
 | 
					 #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #if !defined(INFINITY)
 | 
				
			||||||
 | 
					  #define INFINITY (HUGE_VALF)
 | 
				
			||||||
 | 
					 #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 #if !defined(NAN)
 | 
				
			||||||
 | 
					  #if defined(__GNUC__)  &&  defined(__cplusplus)
 | 
				
			||||||
 | 
					    /* Exception:  older g++ versions warn about the divide by 0 used in the
 | 
				
			||||||
 | 
					     * normal case (even though older gccs do not).  This trick suppresses the
 | 
				
			||||||
 | 
					     * warning, but causes errors for plain gcc, so is only used in the one
 | 
				
			||||||
 | 
					     * special case.  */
 | 
				
			||||||
 | 
					    static const union { __ULong __i[1]; float __d; } __Nanf = {0x7FC00000};
 | 
				
			||||||
 | 
					    #define NAN (__Nanf.__d)
 | 
				
			||||||
 | 
					  #else
 | 
				
			||||||
 | 
					    #define NAN (0.0F/0.0F)
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					 #endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !gcc >= 3.3  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Reentrant ANSI C functions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern double atan _PARAMS((double));
 | 
				
			||||||
 | 
					extern double cos _PARAMS((double));
 | 
				
			||||||
 | 
					extern double sin _PARAMS((double));
 | 
				
			||||||
 | 
					extern double tan _PARAMS((double));
 | 
				
			||||||
 | 
					extern double tanh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double frexp _PARAMS((double, int *));
 | 
				
			||||||
 | 
					extern double modf _PARAMS((double, double *));
 | 
				
			||||||
 | 
					extern double ceil _PARAMS((double));
 | 
				
			||||||
 | 
					extern double fabs _PARAMS((double));
 | 
				
			||||||
 | 
					extern double floor _PARAMS((double));
 | 
				
			||||||
 | 
					#endif /* ! defined (__math_68881) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Non reentrant ANSI C functions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern double acos _PARAMS((double));
 | 
				
			||||||
 | 
					extern double asin _PARAMS((double));
 | 
				
			||||||
 | 
					extern double atan2 _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double cosh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double sinh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double exp _PARAMS((double));
 | 
				
			||||||
 | 
					extern double ldexp _PARAMS((double, int));
 | 
				
			||||||
 | 
					extern double log _PARAMS((double));
 | 
				
			||||||
 | 
					extern double log10 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double pow _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double sqrt _PARAMS((double));
 | 
				
			||||||
 | 
					extern double fmod _PARAMS((double, double));
 | 
				
			||||||
 | 
					#endif /* ! defined (__math_68881) */
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ISO C99 types and macros. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* FIXME:  FLT_EVAL_METHOD should somehow be gotten from float.h (which is hard,
 | 
				
			||||||
 | 
					 * considering that the standard says the includes it defines should not
 | 
				
			||||||
 | 
					 * include other includes that it defines) and that value used.  (This can be
 | 
				
			||||||
 | 
					 * solved, but autoconf has a bug which makes the solution more difficult, so
 | 
				
			||||||
 | 
					 * it has been skipped for now.)  */
 | 
				
			||||||
 | 
					#if !defined(FLT_EVAL_METHOD) && defined(__FLT_EVAL_METHOD__)
 | 
				
			||||||
 | 
					  #define FLT_EVAL_METHOD __FLT_EVAL_METHOD__
 | 
				
			||||||
 | 
					  #define __TMP_FLT_EVAL_METHOD
 | 
				
			||||||
 | 
					#endif /* FLT_EVAL_METHOD */
 | 
				
			||||||
 | 
					#if defined FLT_EVAL_METHOD
 | 
				
			||||||
 | 
					  #if FLT_EVAL_METHOD == 0
 | 
				
			||||||
 | 
					    typedef float  float_t;
 | 
				
			||||||
 | 
					    typedef double double_t;
 | 
				
			||||||
 | 
					   #elif FLT_EVAL_METHOD == 1
 | 
				
			||||||
 | 
					    typedef double float_t;
 | 
				
			||||||
 | 
					    typedef double double_t;
 | 
				
			||||||
 | 
					   #elif FLT_EVAL_METHOD == 2
 | 
				
			||||||
 | 
					    typedef long double float_t;
 | 
				
			||||||
 | 
					    typedef long double double_t;
 | 
				
			||||||
 | 
					   #else
 | 
				
			||||||
 | 
					    /* Implementation-defined.  Assume float_t and double_t have been
 | 
				
			||||||
 | 
					     * defined previously for this configuration (e.g. config.h). */
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					    /* Assume basic definitions.  */
 | 
				
			||||||
 | 
					    typedef float  float_t;
 | 
				
			||||||
 | 
					    typedef double double_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__TMP_FLT_EVAL_METHOD)
 | 
				
			||||||
 | 
					  #undef FLT_EVAL_METHOD
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define FP_NAN         0
 | 
				
			||||||
 | 
					#define FP_INFINITE    1
 | 
				
			||||||
 | 
					#define FP_ZERO        2
 | 
				
			||||||
 | 
					#define FP_SUBNORMAL   3
 | 
				
			||||||
 | 
					#define FP_NORMAL      4
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef FP_ILOGB0
 | 
				
			||||||
 | 
					# define FP_ILOGB0 (-INT_MAX)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef FP_ILOGBNAN
 | 
				
			||||||
 | 
					# define FP_ILOGBNAN INT_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef MATH_ERRNO
 | 
				
			||||||
 | 
					# define MATH_ERRNO 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef MATH_ERREXCEPT
 | 
				
			||||||
 | 
					# define MATH_ERREXCEPT 2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef math_errhandling
 | 
				
			||||||
 | 
					# define math_errhandling MATH_ERRNO
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int __isinff (float x);
 | 
				
			||||||
 | 
					extern int __isinfd (double x);
 | 
				
			||||||
 | 
					extern int __isnanf (float x);
 | 
				
			||||||
 | 
					extern int __isnand (double x);
 | 
				
			||||||
 | 
					extern int __fpclassifyf (float x);
 | 
				
			||||||
 | 
					extern int __fpclassifyd (double x);
 | 
				
			||||||
 | 
					extern int __signbitf (float x);
 | 
				
			||||||
 | 
					extern int __signbitd (double x);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define fpclassify(__x) \
 | 
				
			||||||
 | 
						((sizeof(__x) == sizeof(float))  ? __fpclassifyf(__x) : \
 | 
				
			||||||
 | 
						__fpclassifyd(__x))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef isfinite
 | 
				
			||||||
 | 
					  #define isfinite(__y) \
 | 
				
			||||||
 | 
					          (__extension__ ({int __cy = fpclassify(__y); \
 | 
				
			||||||
 | 
					                           __cy != FP_INFINITE && __cy != FP_NAN;}))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Note: isinf and isnan were once functions in newlib that took double
 | 
				
			||||||
 | 
					 *       arguments.  C99 specifies that these names are reserved for macros
 | 
				
			||||||
 | 
					 *       supporting multiple floating point types.  Thus, they are
 | 
				
			||||||
 | 
					 *       now defined as macros.  Implementations of the old functions
 | 
				
			||||||
 | 
					 *       taking double arguments still exist for compatibility purposes
 | 
				
			||||||
 | 
					 *       (prototypes for them are in <ieeefp.h>).  */
 | 
				
			||||||
 | 
					#ifndef isinf
 | 
				
			||||||
 | 
					  #define isinf(y) (fpclassify(y) == FP_INFINITE)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef isnan
 | 
				
			||||||
 | 
					  #define isnan(y) (fpclassify(y) == FP_NAN)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define isnormal(y) (fpclassify(y) == FP_NORMAL)
 | 
				
			||||||
 | 
					#define signbit(__x) \
 | 
				
			||||||
 | 
						((sizeof(__x) == sizeof(float))  ?  __signbitf(__x) : \
 | 
				
			||||||
 | 
							__signbitd(__x))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define isgreater(x,y) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
 | 
				
			||||||
 | 
					                           !isunordered(__x,__y) && (__x > __y);}))
 | 
				
			||||||
 | 
					#define isgreaterequal(x,y) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
 | 
				
			||||||
 | 
					                           !isunordered(__x,__y) && (__x >= __y);}))
 | 
				
			||||||
 | 
					#define isless(x,y) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
 | 
				
			||||||
 | 
					                           !isunordered(__x,__y) && (__x < __y);}))
 | 
				
			||||||
 | 
					#define islessequal(x,y) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
 | 
				
			||||||
 | 
					                           !isunordered(__x,__y) && (__x <= __y);}))
 | 
				
			||||||
 | 
					#define islessgreater(x,y) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(x) __x = (x); __typeof__(y) __y = (y); \
 | 
				
			||||||
 | 
					                           !isunordered(__x,__y) && (__x < __y || __x > __y);}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define isunordered(a,b) \
 | 
				
			||||||
 | 
					          (__extension__ ({__typeof__(a) __a = (a); __typeof__(b) __b = (b); \
 | 
				
			||||||
 | 
					                           fpclassify(__a) == FP_NAN || fpclassify(__b) == FP_NAN;}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Non ANSI double precision functions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern double infinity _PARAMS((void));
 | 
				
			||||||
 | 
					extern double nan _PARAMS((const char *));
 | 
				
			||||||
 | 
					extern int finite _PARAMS((double));
 | 
				
			||||||
 | 
					extern double copysign _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double logb _PARAMS((double));
 | 
				
			||||||
 | 
					extern int ilogb _PARAMS((double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern double asinh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double cbrt _PARAMS((double));
 | 
				
			||||||
 | 
					extern double nextafter _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double rint _PARAMS((double));
 | 
				
			||||||
 | 
					extern double scalbn _PARAMS((double, int));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern double exp2 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double scalbln _PARAMS((double, long int));
 | 
				
			||||||
 | 
					extern double tgamma _PARAMS((double));
 | 
				
			||||||
 | 
					extern double nearbyint _PARAMS((double));
 | 
				
			||||||
 | 
					extern long int lrint _PARAMS((double));
 | 
				
			||||||
 | 
					extern long long int llrint _PARAMS((double));
 | 
				
			||||||
 | 
					extern double round _PARAMS((double));
 | 
				
			||||||
 | 
					extern long int lround _PARAMS((double));
 | 
				
			||||||
 | 
					extern long long int llround _PARAMS((double));
 | 
				
			||||||
 | 
					extern double trunc _PARAMS((double));
 | 
				
			||||||
 | 
					extern double remquo _PARAMS((double, double, int *));
 | 
				
			||||||
 | 
					extern double fdim _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double fmax _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double fmin _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double fma _PARAMS((double, double, double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern double log1p _PARAMS((double));
 | 
				
			||||||
 | 
					extern double expm1 _PARAMS((double));
 | 
				
			||||||
 | 
					#endif /* ! defined (__math_68881) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					extern double acosh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double atanh _PARAMS((double));
 | 
				
			||||||
 | 
					extern double remainder _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern double gamma _PARAMS((double));
 | 
				
			||||||
 | 
					extern double lgamma _PARAMS((double));
 | 
				
			||||||
 | 
					extern double erf _PARAMS((double));
 | 
				
			||||||
 | 
					extern double erfc _PARAMS((double));
 | 
				
			||||||
 | 
					extern double log2 _PARAMS((double));
 | 
				
			||||||
 | 
					#if !defined(__cplusplus)
 | 
				
			||||||
 | 
					#define log2(x) (log (x) / _M_LN2)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern double hypot _PARAMS((double, double));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Single precision versions of ANSI functions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float atanf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float cosf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float sinf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float tanf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float tanhf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float frexpf _PARAMS((float, int *));
 | 
				
			||||||
 | 
					extern float modff _PARAMS((float, float *));
 | 
				
			||||||
 | 
					extern float ceilf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float fabsf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float floorf _PARAMS((float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					extern float acosf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float asinf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float atan2f _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float coshf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float sinhf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float expf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float ldexpf _PARAMS((float, int));
 | 
				
			||||||
 | 
					extern float logf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float log10f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float powf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float sqrtf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float fmodf _PARAMS((float, float));
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Other single precision functions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float exp2f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float scalblnf _PARAMS((float, long int));
 | 
				
			||||||
 | 
					extern float tgammaf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float nearbyintf _PARAMS((float));
 | 
				
			||||||
 | 
					extern long int lrintf _PARAMS((float));
 | 
				
			||||||
 | 
					extern long long int llrintf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float roundf _PARAMS((float));
 | 
				
			||||||
 | 
					extern long int lroundf _PARAMS((float));
 | 
				
			||||||
 | 
					extern long long int llroundf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float truncf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float remquof _PARAMS((float, float, int *));
 | 
				
			||||||
 | 
					extern float fdimf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float fmaxf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float fminf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float fmaf _PARAMS((float, float, float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float infinityf _PARAMS((void));
 | 
				
			||||||
 | 
					extern float nanf _PARAMS((const char *));
 | 
				
			||||||
 | 
					extern int finitef _PARAMS((float));
 | 
				
			||||||
 | 
					extern float copysignf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float logbf _PARAMS((float));
 | 
				
			||||||
 | 
					extern int ilogbf _PARAMS((float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float asinhf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float cbrtf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float nextafterf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float rintf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float scalbnf _PARAMS((float, int));
 | 
				
			||||||
 | 
					extern float log1pf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float expm1f _PARAMS((float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					extern float acoshf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float atanhf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float remainderf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern float gammaf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float lgammaf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float erff _PARAMS((float));
 | 
				
			||||||
 | 
					extern float erfcf _PARAMS((float));
 | 
				
			||||||
 | 
					extern float log2f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float hypotf _PARAMS((float, float));
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* On platforms where long double equals double.  */
 | 
				
			||||||
 | 
					#ifdef _LDBL_EQ_DBL
 | 
				
			||||||
 | 
					/* Reentrant ANSI C functions.  */
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern long double atanl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double cosl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double sinl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double tanl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double tanhl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double frexpl _PARAMS((long double, int *));
 | 
				
			||||||
 | 
					extern long double modfl _PARAMS((long double, long double *));
 | 
				
			||||||
 | 
					extern long double ceill _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double fabsl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double floorl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double log1pl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double expm1l _PARAMS((long double));
 | 
				
			||||||
 | 
					#endif /* ! defined (__math_68881) */
 | 
				
			||||||
 | 
					/* Non reentrant ANSI C functions.  */
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#ifndef __math_68881
 | 
				
			||||||
 | 
					extern long double acosl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double asinl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double atan2l _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double coshl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double sinhl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double expl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double ldexpl _PARAMS((long double, int));
 | 
				
			||||||
 | 
					extern long double logl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double log10l _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double powl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double sqrtl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double fmodl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double hypotl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					#endif /* ! defined (__math_68881) */
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					extern long double copysignl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double nanl _PARAMS((const char *));
 | 
				
			||||||
 | 
					extern int ilogbl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double asinhl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double cbrtl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double nextafterl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern float nexttowardf _PARAMS((float, long double));
 | 
				
			||||||
 | 
					extern double nexttoward _PARAMS((double, long double));
 | 
				
			||||||
 | 
					extern long double nexttowardl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double logbl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double log2l _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double rintl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double scalbnl _PARAMS((long double, int));
 | 
				
			||||||
 | 
					extern long double exp2l _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double scalblnl _PARAMS((long double, long));
 | 
				
			||||||
 | 
					extern long double tgammal _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double nearbyintl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long int lrintl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long long int llrintl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double roundl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long lroundl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long long int llroundl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double truncl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double remquol _PARAMS((long double, long double, int *));
 | 
				
			||||||
 | 
					extern long double fdiml _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double fmaxl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double fminl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double fmal _PARAMS((long double, long double, long double));
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					extern long double acoshl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double atanhl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double remainderl _PARAMS((long double, long double));
 | 
				
			||||||
 | 
					extern long double lgammal _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double erfl _PARAMS((long double));
 | 
				
			||||||
 | 
					extern long double erfcl _PARAMS((long double));
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					#else /* !_LDBL_EQ_DBL */
 | 
				
			||||||
 | 
					#ifdef __i386__
 | 
				
			||||||
 | 
					/* Other long double precision functions.  */
 | 
				
			||||||
 | 
					extern _LONG_DOUBLE rintl _PARAMS((_LONG_DOUBLE));
 | 
				
			||||||
 | 
					extern long int lrintl _PARAMS((_LONG_DOUBLE));
 | 
				
			||||||
 | 
					extern long long int llrintl _PARAMS((_LONG_DOUBLE));
 | 
				
			||||||
 | 
					#endif /* __i386__ */
 | 
				
			||||||
 | 
					#endif /* !_LDBL_EQ_DBL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) || (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined (__STRICT_ANSI__) || defined(__cplusplus)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern double drem _PARAMS((double, double));
 | 
				
			||||||
 | 
					extern void sincos _PARAMS((double, double *, double *));
 | 
				
			||||||
 | 
					extern double gamma_r _PARAMS((double, int *));
 | 
				
			||||||
 | 
					extern double lgamma_r _PARAMS((double, int *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern double y0 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double y1 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double yn _PARAMS((int, double));
 | 
				
			||||||
 | 
					extern double j0 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double j1 _PARAMS((double));
 | 
				
			||||||
 | 
					extern double jn _PARAMS((int, double));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float dremf _PARAMS((float, float));
 | 
				
			||||||
 | 
					extern void sincosf _PARAMS((float, float *, float *));
 | 
				
			||||||
 | 
					extern float gammaf_r _PARAMS((float, int *));
 | 
				
			||||||
 | 
					extern float lgammaf_r _PARAMS((float, int *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern float y0f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float y1f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float ynf _PARAMS((int, float));
 | 
				
			||||||
 | 
					extern float j0f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float j1f _PARAMS((float));
 | 
				
			||||||
 | 
					extern float jnf _PARAMS((int, float));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* GNU extensions */
 | 
				
			||||||
 | 
					# ifndef exp10
 | 
				
			||||||
 | 
					extern double exp10 _PARAMS((double));
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					# ifndef pow10
 | 
				
			||||||
 | 
					extern double pow10 _PARAMS((double));
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					# ifndef exp10f
 | 
				
			||||||
 | 
					extern float exp10f _PARAMS((float));
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					# ifndef pow10f
 | 
				
			||||||
 | 
					extern float pow10f _PARAMS((float));
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !defined (__STRICT_ANSI__) || defined(__cplusplus) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The gamma functions use a global variable, signgam.  */
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#define signgam (*__signgam())
 | 
				
			||||||
 | 
					extern int *__signgam _PARAMS((void));
 | 
				
			||||||
 | 
					#endif /* ! defined (_REENT_ONLY) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __signgam_r(ptr) _REENT_SIGNGAM(ptr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The exception structure passed to the matherr routine.  */
 | 
				
			||||||
 | 
					/* We have a problem when using C++ since `exception' is a reserved
 | 
				
			||||||
 | 
					   name in C++.  */
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					struct __exception
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					struct exception
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int type;
 | 
				
			||||||
 | 
					  char *name;
 | 
				
			||||||
 | 
					  double arg1;
 | 
				
			||||||
 | 
					  double arg2;
 | 
				
			||||||
 | 
					  double retval;
 | 
				
			||||||
 | 
					  int err;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern int matherr _PARAMS((struct __exception *e));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern int matherr _PARAMS((struct exception *e));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Values for the type field of struct exception.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define DOMAIN 1
 | 
				
			||||||
 | 
					#define SING 2
 | 
				
			||||||
 | 
					#define OVERFLOW 3
 | 
				
			||||||
 | 
					#define UNDERFLOW 4
 | 
				
			||||||
 | 
					#define TLOSS 5
 | 
				
			||||||
 | 
					#define PLOSS 6
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! defined (__STRICT_ANSI__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Useful constants.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || ((_XOPEN_SOURCE - 0) >= 500)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAXFLOAT	3.40282347e+38F
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define M_E		2.7182818284590452354
 | 
				
			||||||
 | 
					#define M_LOG2E		1.4426950408889634074
 | 
				
			||||||
 | 
					#define M_LOG10E	0.43429448190325182765
 | 
				
			||||||
 | 
					#define M_LN2		_M_LN2
 | 
				
			||||||
 | 
					#define M_LN10		2.30258509299404568402
 | 
				
			||||||
 | 
					#define M_PI		3.14159265358979323846
 | 
				
			||||||
 | 
					#define M_PI_2		1.57079632679489661923
 | 
				
			||||||
 | 
					#define M_PI_4		0.78539816339744830962
 | 
				
			||||||
 | 
					#define M_1_PI		0.31830988618379067154
 | 
				
			||||||
 | 
					#define M_2_PI		0.63661977236758134308
 | 
				
			||||||
 | 
					#define M_2_SQRTPI	1.12837916709551257390
 | 
				
			||||||
 | 
					#define M_SQRT2		1.41421356237309504880
 | 
				
			||||||
 | 
					#define M_SQRT1_2	0.70710678118654752440
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define M_TWOPI         (M_PI * 2.0)
 | 
				
			||||||
 | 
					#define M_3PI_4		2.3561944901923448370E0
 | 
				
			||||||
 | 
					#define M_SQRTPI        1.77245385090551602792981
 | 
				
			||||||
 | 
					#define M_LN2LO         1.9082149292705877000E-10
 | 
				
			||||||
 | 
					#define M_LN2HI         6.9314718036912381649E-1
 | 
				
			||||||
 | 
					#define M_SQRT3	1.73205080756887719000
 | 
				
			||||||
 | 
					#define M_IVLN10        0.43429448190325182765 /* 1 / log(10) */
 | 
				
			||||||
 | 
					#define M_LOG2_E        _M_LN2
 | 
				
			||||||
 | 
					#define M_INVLN2        1.4426950408889633870E0  /* 1 / log(2) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Global control over fdlibm error handling.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					enum __fdlibm_version
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  __fdlibm_ieee = -1,
 | 
				
			||||||
 | 
					  __fdlibm_svid,
 | 
				
			||||||
 | 
					  __fdlibm_xopen,
 | 
				
			||||||
 | 
					  __fdlibm_posix
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _LIB_VERSION_TYPE enum __fdlibm_version
 | 
				
			||||||
 | 
					#define _LIB_VERSION __fdlib_version
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern __IMPORT _LIB_VERSION_TYPE _LIB_VERSION;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _IEEE_  __fdlibm_ieee
 | 
				
			||||||
 | 
					#define _SVID_  __fdlibm_svid
 | 
				
			||||||
 | 
					#define _XOPEN_ __fdlibm_xopen
 | 
				
			||||||
 | 
					#define _POSIX_ __fdlibm_posix
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! defined (__STRICT_ANSI__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __FAST_MATH__
 | 
				
			||||||
 | 
					#include <machine/fastmath.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _MATH_H_ */
 | 
				
			||||||
							
								
								
									
										201
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/newlib.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										201
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/newlib.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,201 @@
 | 
				
			|||||||
 | 
					/* newlib.h.  Generated from newlib.hin by configure.  */
 | 
				
			||||||
 | 
					/* newlib.hin.  Manually edited from the output of autoheader to
 | 
				
			||||||
 | 
					   remove all PACKAGE_ macros which will collide with any user
 | 
				
			||||||
 | 
					   package using newlib header files and having its own package name,
 | 
				
			||||||
 | 
					   version, etc...  */
 | 
				
			||||||
 | 
					#ifndef __NEWLIB_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __NEWLIB_H__ 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* EL/IX level */
 | 
				
			||||||
 | 
					/* #undef _ELIX_LEVEL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Newlib version */
 | 
				
			||||||
 | 
					#define _NEWLIB_VERSION "2.2.0"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* C99 formats support (such as %a, %zu, ...) in IO functions like
 | 
				
			||||||
 | 
					 * printf/scanf enabled */
 | 
				
			||||||
 | 
					/* #undef _WANT_IO_C99_FORMATS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* long long type support in IO functions like printf/scanf enabled */
 | 
				
			||||||
 | 
					/* #undef _WANT_IO_LONG_LONG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Register application finalization function using atexit. */
 | 
				
			||||||
 | 
					/* #undef _WANT_REGISTER_FINI */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* long double type support in IO functions like printf/scanf enabled */
 | 
				
			||||||
 | 
					/* #undef _WANT_IO_LONG_DOUBLE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Positional argument support in printf functions enabled.  */
 | 
				
			||||||
 | 
					/* #undef _WANT_IO_POS_ARGS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Optional reentrant struct support.  Used mostly on platforms with
 | 
				
			||||||
 | 
					   very restricted storage.  */
 | 
				
			||||||
 | 
					#define _WANT_REENT_SMALL 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Multibyte supported */
 | 
				
			||||||
 | 
					/* #undef _MB_CAPABLE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* MB_LEN_MAX */
 | 
				
			||||||
 | 
					#define _MB_LEN_MAX 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* ICONV enabled */
 | 
				
			||||||
 | 
					/* #undef _ICONV_ENABLED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Enable ICONV external CCS files loading capabilities */
 | 
				
			||||||
 | 
					/* #undef _ICONV_ENABLE_EXTERNAL_CCS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if the linker supports .preinit_array/.init_array/.fini_array
 | 
				
			||||||
 | 
					 * sections.  */
 | 
				
			||||||
 | 
					#define HAVE_INITFINI_ARRAY 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* True if atexit() may dynamically allocate space for cleanup
 | 
				
			||||||
 | 
					   functions.  */
 | 
				
			||||||
 | 
					#define _ATEXIT_DYNAMIC_ALLOC 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* True if long double supported.  */
 | 
				
			||||||
 | 
					#define _HAVE_LONG_DOUBLE 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if compiler supports -fno-tree-loop-distribute-patterns. */
 | 
				
			||||||
 | 
					#define _HAVE_CC_INHIBIT_LOOP_TO_LIBCALL 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* True if long double supported and it is equal to double.  */
 | 
				
			||||||
 | 
					#define _LDBL_EQ_DBL 1
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* Define if uintptr_t is unsigned long on this architecture */
 | 
				
			||||||
 | 
					/* #undef _UINTPTR_EQ_ULONG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if uintptr_t is unsigned long long on this architecture */
 | 
				
			||||||
 | 
					/* #undef _UINTPTR_EQ_ULONGLONG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if ivo supported in streamio.  */
 | 
				
			||||||
 | 
					#define _FVWRITE_IN_STREAMIO 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if fseek functions support seek optimization.  */
 | 
				
			||||||
 | 
					#define _FSEEK_OPTIMIZATION 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if wide char orientation is supported.  */
 | 
				
			||||||
 | 
					#define _WIDE_ORIENT 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if unbuffered stream file optimization is supported.  */
 | 
				
			||||||
 | 
					#define _UNBUF_STREAM_OPT 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if lite version of exit supported.  */
 | 
				
			||||||
 | 
					/* #undef _LITE_EXIT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if declare atexit data as global.  */
 | 
				
			||||||
 | 
					/* #undef _REENT_GLOBAL_ATEXIT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define if small footprint nano-formatted-IO implementation used.  */
 | 
				
			||||||
 | 
					#define _NANO_FORMATTED_IO 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Iconv encodings enabled ("to" direction)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_BIG5 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_CP775 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_CP850 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_CP852 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_CP855 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_CP866 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_EUC_JP */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_EUC_TW */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_EUC_KR */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_1 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_10 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_11 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_13 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_14 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_15 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_2 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_3 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_4 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_5 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_6 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_7 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_8 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_8859_9 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_ISO_IR_111 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_KOI8_R */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_KOI8_RU */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_KOI8_U */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_KOI8_UNI */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_2 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_2_INTERNAL */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_2BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_2LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_4 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_4_INTERNAL */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_4BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UCS_4LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_US_ASCII */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UTF_16 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UTF_16BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UTF_16LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_UTF_8 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1250 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1251 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1252 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1253 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1254 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1255 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1256 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1257 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_TO_ENCODING_WIN_1258 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Iconv encodings enabled ("from" direction)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_BIG5 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_CP775 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_CP850 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_CP852 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_CP855 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_CP866 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_EUC_JP */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_EUC_TW */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_EUC_KR */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_1 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_10 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_11 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_13 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_14 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_15 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_2 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_3 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_4 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_5 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_6 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_7 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_8 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_8859_9 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_ISO_IR_111 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_KOI8_R */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_KOI8_RU */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_KOI8_U */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_KOI8_UNI */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_2 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_2_INTERNAL */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_2BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_2LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_4 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_4_INTERNAL */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_4BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UCS_4LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_US_ASCII */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UTF_16 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UTF_16BE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UTF_16LE */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_UTF_8 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1250 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1251 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1252 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1253 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1254 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1255 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1256 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1257 */
 | 
				
			||||||
 | 
					/* #undef _ICONV_FROM_ENCODING_WIN_1258 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !__NEWLIB_H__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										9
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/paths.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										9
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/paths.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,9 @@
 | 
				
			|||||||
 | 
					#ifndef	_PATHS_H_
 | 
				
			||||||
 | 
					#define _PATHS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _PATH_DEV	"/dev/"
 | 
				
			||||||
 | 
					#define _PATH_DEVNULL   "/dev/null"
 | 
				
			||||||
 | 
					#define _PATH_DEVZERO   "/dev/zero"
 | 
				
			||||||
 | 
					#define _PATH_BSHELL    "/bin/sh"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _PATHS_H_ */
 | 
				
			||||||
							
								
								
									
										431
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/pthread.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										431
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/pthread.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,431 @@
 | 
				
			|||||||
 | 
					/*  pthread.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Written by Joel Sherrill <joel@OARcorp.com>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  COPYRIGHT (c) 1989-2013.
 | 
				
			||||||
 | 
					 *  On-Line Applications Research Corporation (OAR).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Permission to use, copy, modify, and distribute this software for any
 | 
				
			||||||
 | 
					 *  purpose without fee is hereby granted, provided that this entire notice
 | 
				
			||||||
 | 
					 *  is included in all copies of any software which is or includes a copy
 | 
				
			||||||
 | 
					 *  or modification of this software.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 | 
				
			||||||
 | 
					 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 | 
				
			||||||
 | 
					 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 | 
				
			||||||
 | 
					 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __PTHREAD_h
 | 
				
			||||||
 | 
					#define __PTHREAD_h
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <unistd.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#include <sys/sched.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _pthread_cleanup_context {
 | 
				
			||||||
 | 
					  void (*_routine)(void *);
 | 
				
			||||||
 | 
					  void *_arg;
 | 
				
			||||||
 | 
					  int _canceltype;
 | 
				
			||||||
 | 
					  struct _pthread_cleanup_context *_previous;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Register Fork Handlers */
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_atfork,(void (*prepare)(void), void (*parent)(void),
 | 
				
			||||||
 | 
					                   void (*child)(void)));
 | 
				
			||||||
 | 
					          
 | 
				
			||||||
 | 
					/* Mutex Initialization Attributes, P1003.1c/Draft 10, p. 81 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_init, (pthread_mutexattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_destroy, (pthread_mutexattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_getpshared,
 | 
				
			||||||
 | 
							(_CONST pthread_mutexattr_t *__attr, int  *__pshared));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_setpshared,
 | 
				
			||||||
 | 
							(pthread_mutexattr_t *__attr, int __pshared));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Single UNIX Specification 2 Mutex Attributes types */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(pthread_mutexattr_gettype,
 | 
				
			||||||
 | 
							(_CONST pthread_mutexattr_t *__attr, int *__kind));
 | 
				
			||||||
 | 
					int _EXFUN(pthread_mutexattr_settype,
 | 
				
			||||||
 | 
							(pthread_mutexattr_t *__attr, int __kind));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Initializing and Destroying a Mutex, P1003.1c/Draft 10, p. 87 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_init,
 | 
				
			||||||
 | 
						(pthread_mutex_t *__mutex, _CONST pthread_mutexattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_destroy, (pthread_mutex_t *__mutex));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is used to statically initialize a pthread_mutex_t. Example:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    pthread_mutex_t mutex = PTHREAD_MUTEX_INITIALIZER;
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_MUTEX_INITIALIZER  ((pthread_mutex_t) 0xFFFFFFFF)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  Locking and Unlocking a Mutex, P1003.1c/Draft 10, p. 93
 | 
				
			||||||
 | 
					    NOTE: P1003.4b/D8 adds pthread_mutex_timedlock(), p. 29 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_lock, (pthread_mutex_t *__mutex));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_trylock, (pthread_mutex_t *__mutex));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_unlock, (pthread_mutex_t *__mutex));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_TIMEOUTS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_timedlock,
 | 
				
			||||||
 | 
						(pthread_mutex_t *__mutex, _CONST struct timespec *__timeout));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_TIMEOUTS */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Condition Variable Initialization Attributes, P1003.1c/Draft 10, p. 96 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_condattr_init, (pthread_condattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_condattr_destroy, (pthread_condattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_condattr_getpshared,
 | 
				
			||||||
 | 
							(_CONST pthread_condattr_t *__attr, int *__pshared));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_condattr_setpshared,
 | 
				
			||||||
 | 
							(pthread_condattr_t *__attr, int __pshared));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* Initializing and Destroying a Condition Variable, P1003.1c/Draft 10, p. 87 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_init,
 | 
				
			||||||
 | 
						(pthread_cond_t *__cond, _CONST pthread_condattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_destroy, (pthread_cond_t *__mutex));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* This is used to statically initialize a pthread_cond_t. Example:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    pthread_cond_t cond = PTHREAD_COND_INITIALIZER;
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					#define PTHREAD_COND_INITIALIZER  ((pthread_cond_t) 0xFFFFFFFF)
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* Broadcasting and Signaling a Condition, P1003.1c/Draft 10, p. 101 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_signal, (pthread_cond_t *__cond));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_broadcast, (pthread_cond_t *__cond));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* Waiting on a Condition, P1003.1c/Draft 10, p. 105 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_wait,
 | 
				
			||||||
 | 
						(pthread_cond_t *__cond, pthread_mutex_t *__mutex));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cond_timedwait,
 | 
				
			||||||
 | 
							(pthread_cond_t *__cond, pthread_mutex_t *__mutex,
 | 
				
			||||||
 | 
							_CONST struct timespec *__abstime));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread Creation Scheduling Attributes, P1003.1c/Draft 10, p. 120 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setscope,
 | 
				
			||||||
 | 
							(pthread_attr_t *__attr, int __contentionscope));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getscope,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, int *__contentionscope));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setinheritsched,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, int __inheritsched));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getinheritsched,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, int *__inheritsched));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setschedpolicy,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, int __policy));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getschedpolicy,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, int *__policy));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setschedparam,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, _CONST struct sched_param *__param));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getschedparam,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, struct sched_param *__param));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIORITY_SCHEDULING)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Dynamic Thread Scheduling Parameters Access, P1003.1c/Draft 10, p. 124 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_getschedparam,
 | 
				
			||||||
 | 
						(pthread_t __pthread, int *__policy, struct sched_param *__param));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_setschedparam,
 | 
				
			||||||
 | 
						(pthread_t __pthread, int __policy, struct sched_param *__param));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_THREAD_PRIORITY_SCHEDULING) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIO_INHERIT) || defined(_POSIX_THREAD_PRIO_PROTECT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Mutex Initialization Scheduling Attributes, P1003.1c/Draft 10, p. 128 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_setprotocol,
 | 
				
			||||||
 | 
						(pthread_mutexattr_t *__attr, int __protocol));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_getprotocol,
 | 
				
			||||||
 | 
						(_CONST pthread_mutexattr_t *__attr, int *__protocol));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_setprioceiling,
 | 
				
			||||||
 | 
						(pthread_mutexattr_t *__attr, int __prioceiling));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutexattr_getprioceiling,
 | 
				
			||||||
 | 
						(_CONST pthread_mutexattr_t *__attr, int *__prioceiling));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_THREAD_PRIO_INHERIT || _POSIX_THREAD_PRIO_PROTECT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIO_PROTECT)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Change the Priority Ceiling of a Mutex, P1003.1c/Draft 10, p. 131 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_setprioceiling,
 | 
				
			||||||
 | 
						(pthread_mutex_t *__mutex, int __prioceiling, int *__old_ceiling));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_mutex_getprioceiling,
 | 
				
			||||||
 | 
						(pthread_mutex_t *__mutex, int *__prioceiling));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_THREAD_PRIO_PROTECT */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread Creation Attributes, P1003.1c/Draft 10, p, 140 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_init, (pthread_attr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_destroy, (pthread_attr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setstack, (pthread_attr_t *attr,
 | 
				
			||||||
 | 
						void *__stackaddr, size_t __stacksize));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getstack, (_CONST pthread_attr_t *attr,
 | 
				
			||||||
 | 
						void **__stackaddr, size_t *__stacksize));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getstacksize,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, size_t *__stacksize));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setstacksize,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, size_t __stacksize));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getstackaddr,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, void **__stackaddr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setstackaddr,
 | 
				
			||||||
 | 
						(pthread_attr_t  *__attr, void *__stackaddr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getdetachstate,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, int *__detachstate));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setdetachstate,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, int __detachstate));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_getguardsize,
 | 
				
			||||||
 | 
						(_CONST pthread_attr_t *__attr, size_t *__guardsize));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setguardsize,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, size_t __guardsize));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX thread APIs beyond the POSIX standard but provided 
 | 
				
			||||||
 | 
					 * in GNU/Linux. They may be provided by other OSes for
 | 
				
			||||||
 | 
					 * compatibility.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(__GNU_VISIBLE)
 | 
				
			||||||
 | 
					#if defined(__rtems__) 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_attr_setaffinity_np,
 | 
				
			||||||
 | 
						(pthread_attr_t *__attr, size_t __cpusetsize, 
 | 
				
			||||||
 | 
						const cpu_set_t *__cpuset));
 | 
				
			||||||
 | 
					int 	_EXFUN(pthread_attr_getaffinity_np,
 | 
				
			||||||
 | 
						(const pthread_attr_t *__attr, size_t __cpusetsize,
 | 
				
			||||||
 | 
						cpu_set_t *__cpuset));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_setaffinity_np,
 | 
				
			||||||
 | 
						(pthread_t __id, size_t __cpusetsize, const cpu_set_t *__cpuset));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_getaffinity_np,
 | 
				
			||||||
 | 
						(const pthread_t __id, size_t __cpusetsize, cpu_set_t *__cpuset));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_getattr_np,
 | 
				
			||||||
 | 
						(pthread_t __id, pthread_attr_t *__attr));
 | 
				
			||||||
 | 
					#endif /* defined(__rtems__) */
 | 
				
			||||||
 | 
					#endif /* defined(__GNU_VISIBLE) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread Creation, P1003.1c/Draft 10, p. 144 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_create,
 | 
				
			||||||
 | 
						(pthread_t *__pthread, _CONST pthread_attr_t  *__attr,
 | 
				
			||||||
 | 
						void *(*__start_routine)( void * ), void *__arg));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Wait for Thread Termination, P1003.1c/Draft 10, p. 147 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_join, (pthread_t __pthread, void **__value_ptr));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Detaching a Thread, P1003.1c/Draft 10, p. 149 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_detach, (pthread_t __pthread));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread Termination, p1003.1c/Draft 10, p. 150 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	_EXFUN(pthread_exit, (void *__value_ptr));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Get Calling Thread's ID, p1003.1c/Draft 10, p. XXX */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					pthread_t	_EXFUN(pthread_self, (void));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Compare Thread IDs, p1003.1c/Draft 10, p. 153 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_equal, (pthread_t __t1, pthread_t __t2));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Dynamic Package Initialization */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is used to statically initialize a pthread_once_t. Example:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    pthread_once_t once = PTHREAD_ONCE_INIT;
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    NOTE:  This is named inconsistently -- it should be INITIALIZER.  */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					#define PTHREAD_ONCE_INIT  { 1, 0 }  /* is initialized and not run */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_once,
 | 
				
			||||||
 | 
						(pthread_once_t *__once_control, void (*__init_routine)(void)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread-Specific Data Key Create, P1003.1c/Draft 10, p. 163 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_key_create,
 | 
				
			||||||
 | 
						(pthread_key_t *__key, void (*__destructor)( void * )));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread-Specific Data Management, P1003.1c/Draft 10, p. 165 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_setspecific,
 | 
				
			||||||
 | 
						(pthread_key_t __key, _CONST void *__value));
 | 
				
			||||||
 | 
					void *	_EXFUN(pthread_getspecific, (pthread_key_t __key));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Thread-Specific Data Key Deletion, P1003.1c/Draft 10, p. 167 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_key_delete, (pthread_key_t __key));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Execution of a Thread, P1003.1c/Draft 10, p. 181 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_CANCEL_ENABLE  0
 | 
				
			||||||
 | 
					#define PTHREAD_CANCEL_DISABLE 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_CANCEL_DEFERRED 0
 | 
				
			||||||
 | 
					#define PTHREAD_CANCEL_ASYNCHRONOUS 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_CANCELED ((void *) -1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_cancel, (pthread_t __pthread));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Setting Cancelability State, P1003.1c/Draft 10, p. 183 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_setcancelstate, (int __state, int *__oldstate));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_setcanceltype, (int __type, int *__oldtype));
 | 
				
			||||||
 | 
					void 	_EXFUN(pthread_testcancel, (void));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Establishing Cancellation Handlers, P1003.1c/Draft 10, p. 184 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	_EXFUN(_pthread_cleanup_push,
 | 
				
			||||||
 | 
						(struct _pthread_cleanup_context *_context,
 | 
				
			||||||
 | 
						void (*_routine)(void *), void *_arg));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	_EXFUN(_pthread_cleanup_pop,
 | 
				
			||||||
 | 
						(struct _pthread_cleanup_context *_context,
 | 
				
			||||||
 | 
						int _execute));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* It is intentional to open and close the scope in two different macros */
 | 
				
			||||||
 | 
					#define pthread_cleanup_push(_routine, _arg) \
 | 
				
			||||||
 | 
					  do { \
 | 
				
			||||||
 | 
					    struct _pthread_cleanup_context _pthread_clup_ctx; \
 | 
				
			||||||
 | 
					    _pthread_cleanup_push(&_pthread_clup_ctx, (_routine), (_arg))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define pthread_cleanup_pop(_execute) \
 | 
				
			||||||
 | 
					    _pthread_cleanup_pop(&_pthread_clup_ctx, (_execute)); \
 | 
				
			||||||
 | 
					  } while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_GNU_SOURCE)
 | 
				
			||||||
 | 
					void	_EXFUN(_pthread_cleanup_push_defer,
 | 
				
			||||||
 | 
						(struct _pthread_cleanup_context *_context,
 | 
				
			||||||
 | 
						void (*_routine)(void *), void *_arg));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	_EXFUN(_pthread_cleanup_pop_restore,
 | 
				
			||||||
 | 
						(struct _pthread_cleanup_context *_context,
 | 
				
			||||||
 | 
						int _execute));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* It is intentional to open and close the scope in two different macros */
 | 
				
			||||||
 | 
					#define pthread_cleanup_push_defer_np(_routine, _arg) \
 | 
				
			||||||
 | 
					  do { \
 | 
				
			||||||
 | 
					    struct _pthread_cleanup_context _pthread_clup_ctx; \
 | 
				
			||||||
 | 
					    _pthread_cleanup_push_defer(&_pthread_clup_ctx, (_routine), (_arg))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define pthread_cleanup_pop_restore_np(_execute) \
 | 
				
			||||||
 | 
					    _pthread_cleanup_pop_restore(&_pthread_clup_ctx, (_execute)); \
 | 
				
			||||||
 | 
					  } while (0)
 | 
				
			||||||
 | 
					#endif /* defined(_GNU_SOURCE) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_CPUTIME)
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					/* Accessing a Thread CPU-time Clock, P1003.4b/D8, p. 58 */
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_getcpuclockid,
 | 
				
			||||||
 | 
						(pthread_t __pthread_id, clockid_t *__clock_id));
 | 
				
			||||||
 | 
					 
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_THREAD_CPUTIME) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_THREADS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_BARRIERS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrierattr_init, (pthread_barrierattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrierattr_destroy, (pthread_barrierattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrierattr_getpshared,
 | 
				
			||||||
 | 
						(_CONST pthread_barrierattr_t *__attr, int *__pshared));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrierattr_setpshared,
 | 
				
			||||||
 | 
						(pthread_barrierattr_t *__attr, int __pshared));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_BARRIER_SERIAL_THREAD -1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrier_init,
 | 
				
			||||||
 | 
						(pthread_barrier_t *__barrier,
 | 
				
			||||||
 | 
						_CONST pthread_barrierattr_t *__attr, unsigned __count));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrier_destroy, (pthread_barrier_t *__barrier));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_barrier_wait,(pthread_barrier_t *__barrier));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_BARRIERS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_SPIN_LOCKS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_spin_init,
 | 
				
			||||||
 | 
						(pthread_spinlock_t *__spinlock, int __pshared));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_spin_destroy, (pthread_spinlock_t *__spinlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_spin_lock, (pthread_spinlock_t *__spinlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_spin_trylock, (pthread_spinlock_t *__spinlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_spin_unlock, (pthread_spinlock_t *__spinlock));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_SPIN_LOCKS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_READER_WRITER_LOCKS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is used to statically initialize a pthread_rwlock_t. Example:
 | 
				
			||||||
 | 
					  
 | 
				
			||||||
 | 
					    pthread_mutex_t mutex = PTHREAD_RWLOCK_INITIALIZER;
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_RWLOCK_INITIALIZER  ((pthread_rwlock_t) 0xFFFFFFFF)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlockattr_init, (pthread_rwlockattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlockattr_destroy, (pthread_rwlockattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlockattr_getpshared,
 | 
				
			||||||
 | 
						(_CONST pthread_rwlockattr_t *__attr, int *__pshared));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlockattr_setpshared,
 | 
				
			||||||
 | 
						(pthread_rwlockattr_t *__attr, int __pshared));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_init,
 | 
				
			||||||
 | 
						(pthread_rwlock_t *__rwlock, _CONST pthread_rwlockattr_t *__attr));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_destroy, (pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_rdlock,(pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_tryrdlock,(pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_timedrdlock,
 | 
				
			||||||
 | 
					        (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_unlock,(pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_wrlock,(pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_trywrlock,(pthread_rwlock_t *__rwlock));
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_rwlock_timedwrlock,
 | 
				
			||||||
 | 
					        (pthread_rwlock_t *__rwlock, _CONST struct timespec *__abstime));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_READER_WRITER_LOCKS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* end of include file */
 | 
				
			||||||
							
								
								
									
										87
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/pwd.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										87
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/pwd.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,87 @@
 | 
				
			|||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1989 The Regents of the University of California.
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 3. All advertising materials mentioning features or use of this software
 | 
				
			||||||
 | 
					 *    must display the following acknowledgement:
 | 
				
			||||||
 | 
					 *	This product includes software developed by the University of
 | 
				
			||||||
 | 
					 *	California, Berkeley and its contributors.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)pwd.h	5.13 (Berkeley) 5/28/91
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _PWD_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	_PWD_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					#define	_PATH_PASSWD		"/etc/passwd"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_PASSWORD_LEN		128	/* max length, not counting NULL */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct passwd {
 | 
				
			||||||
 | 
						char	*pw_name;		/* user name */
 | 
				
			||||||
 | 
						char	*pw_passwd;		/* encrypted password */
 | 
				
			||||||
 | 
						uid_t	pw_uid;			/* user uid */
 | 
				
			||||||
 | 
						gid_t	pw_gid;			/* user gid */
 | 
				
			||||||
 | 
						char	*pw_comment;		/* comment */
 | 
				
			||||||
 | 
						char	*pw_gecos;		/* Honeywell login info */
 | 
				
			||||||
 | 
						char	*pw_dir;		/* home directory */
 | 
				
			||||||
 | 
						char	*pw_shell;		/* default shell */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __INSIDE_CYGWIN__
 | 
				
			||||||
 | 
					struct passwd	*getpwuid (uid_t);
 | 
				
			||||||
 | 
					struct passwd	*getpwnam (const char *);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200112 || __XSI_VISIBLE >= 500
 | 
				
			||||||
 | 
					int 		 getpwnam_r (const char *, struct passwd *,
 | 
				
			||||||
 | 
								char *, size_t , struct passwd **);
 | 
				
			||||||
 | 
					int		 getpwuid_r (uid_t, struct passwd *, char *,
 | 
				
			||||||
 | 
								size_t, struct passwd **);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __XSI_VISIBLE >= 500
 | 
				
			||||||
 | 
					struct passwd	*getpwent (void);
 | 
				
			||||||
 | 
					void		 setpwent (void);
 | 
				
			||||||
 | 
					void		 endpwent (void);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					int		 setpassent (int);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /*!__INSIDE_CYGWIN__*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _PWD_H_ */
 | 
				
			||||||
							
								
								
									
										189
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/reent.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										189
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/reent.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,189 @@
 | 
				
			|||||||
 | 
					/* This header file provides the reentrancy.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The reentrant system calls here serve two purposes:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   1) Provide reentrant versions of the system calls the ANSI C library
 | 
				
			||||||
 | 
					      requires.
 | 
				
			||||||
 | 
					   2) Provide these system calls in a namespace clean way.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   It is intended that *all* system calls that the ANSI C library needs
 | 
				
			||||||
 | 
					   be declared here.  It documents them all in one place.  All library access
 | 
				
			||||||
 | 
					   to the system is via some form of these functions.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The target may provide the needed syscalls by any of the following:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   1) Define the reentrant versions of the syscalls directly.
 | 
				
			||||||
 | 
					      (eg: _open_r, _close_r, etc.).  Please keep the namespace clean.
 | 
				
			||||||
 | 
					      When you do this, set "syscall_dir" to "syscalls" and add
 | 
				
			||||||
 | 
					      -DREENTRANT_SYSCALLS_PROVIDED to newlib_cflags in configure.host.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   2) Define namespace clean versions of the system calls by prefixing
 | 
				
			||||||
 | 
					      them with '_' (eg: _open, _close, etc.).  Technically, there won't be
 | 
				
			||||||
 | 
					      true reentrancy at the syscall level, but the library will be namespace
 | 
				
			||||||
 | 
					      clean.
 | 
				
			||||||
 | 
					      When you do this, set "syscall_dir" to "syscalls" in configure.host.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   3) Define or otherwise provide the regular versions of the syscalls
 | 
				
			||||||
 | 
					      (eg: open, close, etc.).  The library won't be reentrant nor namespace
 | 
				
			||||||
 | 
					      clean, but at least it will work.
 | 
				
			||||||
 | 
					      When you do this, add -DMISSING_SYSCALL_NAMES to newlib_cflags in
 | 
				
			||||||
 | 
					      configure.host.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   4) Define or otherwise provide the regular versions of the syscalls,
 | 
				
			||||||
 | 
					      and do not supply functional interfaces for any of the reentrant
 | 
				
			||||||
 | 
					      calls. With this method, the reentrant syscalls are redefined to
 | 
				
			||||||
 | 
					      directly call the regular system call without the reentrancy argument.
 | 
				
			||||||
 | 
					      When you do this, specify both -DREENTRANT_SYSCALLS_PROVIDED and 
 | 
				
			||||||
 | 
					      -DMISSING_SYSCALL_NAMES via newlib_cflags in configure.host and do
 | 
				
			||||||
 | 
					      not specify "syscall_dir".
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Stubs of the reentrant versions of the syscalls exist in the libc/reent
 | 
				
			||||||
 | 
					   source directory and are provided if REENTRANT_SYSCALLS_PROVIDED isn't 
 | 
				
			||||||
 | 
					   defined.  These stubs call the native system calls: _open, _close, etc. 
 | 
				
			||||||
 | 
					   if MISSING_SYSCALL_NAMES is *not* defined, otherwise they call the
 | 
				
			||||||
 | 
					   non-underscored versions: open, close, etc. when MISSING_SYSCALL_NAMES
 | 
				
			||||||
 | 
					   *is* defined.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   By default, newlib functions call the reentrant syscalls internally,
 | 
				
			||||||
 | 
					   passing a reentrancy structure as an argument.  This reentrancy structure
 | 
				
			||||||
 | 
					   contains data that is thread-specific.  For example, the errno value is
 | 
				
			||||||
 | 
					   kept in the reentrancy structure.  If multiple threads exist, each will
 | 
				
			||||||
 | 
					   keep a separate errno value which is intuitive since the application flow
 | 
				
			||||||
 | 
					   cannot check for failure reliably otherwise.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   The reentrant syscalls are either provided by the platform, by the 
 | 
				
			||||||
 | 
					   libc/reent stubs, or in the case of both MISSING_SYSCALL_NAMES and 
 | 
				
			||||||
 | 
					   REENTRANT_SYSCALLS_PROVIDED being defined, the calls are redefined to
 | 
				
			||||||
 | 
					   simply call the regular syscalls with no reentrancy struct argument.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   A single-threaded application does not need to worry about the reentrancy
 | 
				
			||||||
 | 
					   structure.  It is used internally.  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   A multi-threaded application needs either to manually manage reentrancy 
 | 
				
			||||||
 | 
					   structures or use dynamic reentrancy.
 | 
				
			||||||
 | 
					   
 | 
				
			||||||
 | 
					   Manually managing reentrancy structures entails calling special reentrant
 | 
				
			||||||
 | 
					   versions of newlib functions that have an additional reentrancy argument.
 | 
				
			||||||
 | 
					   For example, _printf_r.  By convention, the first argument is the
 | 
				
			||||||
 | 
					   reentrancy structure.  By default, the normal version of the function
 | 
				
			||||||
 | 
					   uses the default reentrancy structure: _REENT.  The reentrancy structure
 | 
				
			||||||
 | 
					   is passed internally, eventually to the reentrant syscalls themselves.
 | 
				
			||||||
 | 
					   How the structures are stored and accessed in this model is up to the
 | 
				
			||||||
 | 
					   application.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Dynamic reentrancy is specified by the __DYNAMIC_REENT__ flag.  This
 | 
				
			||||||
 | 
					   flag denotes setting up a macro to replace _REENT with a function call
 | 
				
			||||||
 | 
					   to __getreent().  This function needs to be implemented by the platform
 | 
				
			||||||
 | 
					   and it is meant to return the reentrancy structure for the current
 | 
				
			||||||
 | 
					   thread.  When the regular C functions (e.g. printf) go to call internal
 | 
				
			||||||
 | 
					   routines with the default _REENT structure, they end up calling with 
 | 
				
			||||||
 | 
					   the reentrancy structure for the thread.  Thus, application code does not
 | 
				
			||||||
 | 
					   need to call the _r routines nor worry about reentrancy structures.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* WARNING: All identifiers here must begin with an underscore.  This file is
 | 
				
			||||||
 | 
					   included by stdio.h and others and we therefore must only use identifiers
 | 
				
			||||||
 | 
					   in the namespace allotted to us.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _REENT_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					#include <machine/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_ptrdiff_t
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* FIXME: not namespace clean */
 | 
				
			||||||
 | 
					struct stat;
 | 
				
			||||||
 | 
					struct tms;
 | 
				
			||||||
 | 
					struct timeval;
 | 
				
			||||||
 | 
					struct timezone;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(REENTRANT_SYSCALLS_PROVIDED) && defined(MISSING_SYSCALL_NAMES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _close_r(__reent, __fd)                   close(__fd)
 | 
				
			||||||
 | 
					#define _execve_r(__reent, __f, __arg, __env)     execve(__f, __arg, __env)
 | 
				
			||||||
 | 
					#define _fcntl_r(__reent, __fd, __cmd, __arg)     fcntl(__fd, __cmd, __arg)
 | 
				
			||||||
 | 
					#define _fork_r(__reent)                          fork()
 | 
				
			||||||
 | 
					#define _fstat_r(__reent, __fdes, __stat)         fstat(__fdes, __stat)
 | 
				
			||||||
 | 
					#define _getpid_r(__reent)                        getpid()
 | 
				
			||||||
 | 
					#define _isatty_r(__reent, __desc)                isatty(__desc)
 | 
				
			||||||
 | 
					#define _kill_r(__reent, __pid, __signal)         kill(__pid, __signal)
 | 
				
			||||||
 | 
					#define _link_r(__reent, __oldpath, __newpath)    link(__oldpath, __newpath)
 | 
				
			||||||
 | 
					#define _lseek_r(__reent, __fdes, __off, __w)     lseek(__fdes, __off, __w)
 | 
				
			||||||
 | 
					#define _mkdir_r(__reent, __path, __m)		  mkdir(__path, __m)
 | 
				
			||||||
 | 
					#define _open_r(__reent, __path, __flag, __m)     open(__path, __flag, __m)
 | 
				
			||||||
 | 
					#define _read_r(__reent, __fd, __buff, __cnt)     read(__fd, __buff, __cnt)
 | 
				
			||||||
 | 
					#define _rename_r(__reent, __old, __new)	  rename(__old, __new)
 | 
				
			||||||
 | 
					#define _sbrk_r(__reent, __incr)                  sbrk(__incr)
 | 
				
			||||||
 | 
					#define _stat_r(__reent, __path, __buff)          stat(__path, __buff)
 | 
				
			||||||
 | 
					#define _times_r(__reent, __time)                 times(__time)
 | 
				
			||||||
 | 
					#define _unlink_r(__reent, __path)                unlink(__path)
 | 
				
			||||||
 | 
					#define _wait_r(__reent, __status)                wait(__status)
 | 
				
			||||||
 | 
					#define _write_r(__reent, __fd, __buff, __cnt)    write(__fd, __buff, __cnt)
 | 
				
			||||||
 | 
					#define _gettimeofday_r(__reent, __tp, __tzp)     gettimeofday(__tp, __tzp)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					#define _lseek64_r(__reent, __fd, __off, __w)     lseek64(__fd, __off, __w)
 | 
				
			||||||
 | 
					#define _fstat64_r(__reent, __fd, __buff)         fstat64(__fd, __buff)
 | 
				
			||||||
 | 
					#define _open64_r(__reent, __path, __flag, __m)   open64(__path, __flag, __m)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* Reentrant versions of system calls.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int _close_r _PARAMS ((struct _reent *, int));
 | 
				
			||||||
 | 
					extern int _execve_r _PARAMS ((struct _reent *, const char *, char *const *, char *const *));
 | 
				
			||||||
 | 
					extern int _fcntl_r _PARAMS ((struct _reent *, int, int, int));
 | 
				
			||||||
 | 
					extern int _fork_r _PARAMS ((struct _reent *));
 | 
				
			||||||
 | 
					extern int _fstat_r _PARAMS ((struct _reent *, int, struct stat *));
 | 
				
			||||||
 | 
					extern int _getpid_r _PARAMS ((struct _reent *));
 | 
				
			||||||
 | 
					extern int _isatty_r _PARAMS ((struct _reent *, int));
 | 
				
			||||||
 | 
					extern int _kill_r _PARAMS ((struct _reent *, int, int));
 | 
				
			||||||
 | 
					extern int _link_r _PARAMS ((struct _reent *, const char *, const char *));
 | 
				
			||||||
 | 
					extern _off_t _lseek_r _PARAMS ((struct _reent *, int, _off_t, int));
 | 
				
			||||||
 | 
					extern int _mkdir_r _PARAMS ((struct _reent *, const char *, int));
 | 
				
			||||||
 | 
					extern int _open_r _PARAMS ((struct _reent *, const char *, int, int));
 | 
				
			||||||
 | 
					extern _ssize_t _read_r _PARAMS ((struct _reent *, int, void *, size_t));
 | 
				
			||||||
 | 
					extern int _rename_r _PARAMS ((struct _reent *, const char *, const char *));
 | 
				
			||||||
 | 
					extern void *_sbrk_r _PARAMS ((struct _reent *, ptrdiff_t));
 | 
				
			||||||
 | 
					extern int _stat_r _PARAMS ((struct _reent *, const char *, struct stat *));
 | 
				
			||||||
 | 
					extern _CLOCK_T_ _times_r _PARAMS ((struct _reent *, struct tms *));
 | 
				
			||||||
 | 
					extern int _unlink_r _PARAMS ((struct _reent *, const char *));
 | 
				
			||||||
 | 
					extern int _wait_r _PARAMS ((struct _reent *, int *));
 | 
				
			||||||
 | 
					extern _ssize_t _write_r _PARAMS ((struct _reent *, int, const void *, size_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This one is not guaranteed to be available on all targets.  */
 | 
				
			||||||
 | 
					extern int _gettimeofday_r _PARAMS ((struct _reent *, struct timeval *__tp, void *__tzp));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#define stat64 stat
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					struct stat64;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _off64_t _lseek64_r _PARAMS ((struct _reent *, int, _off64_t, int));
 | 
				
			||||||
 | 
					extern int _fstat64_r _PARAMS ((struct _reent *, int, struct stat64 *));
 | 
				
			||||||
 | 
					extern int _open64_r _PARAMS ((struct _reent *, const char *, int, int));
 | 
				
			||||||
 | 
					extern int _stat64_r _PARAMS ((struct _reent *, const char *, struct stat64 *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Don't pollute namespace if not building newlib. */
 | 
				
			||||||
 | 
					#if defined (__CYGWIN__) && !defined (_COMPILING_NEWLIB)
 | 
				
			||||||
 | 
					#undef stat64
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _REENT_H_ */
 | 
				
			||||||
							
								
								
									
										7
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/regdef.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										7
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/regdef.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,7 @@
 | 
				
			|||||||
 | 
					/* regdef.h -- define register names.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is a standard include file for MIPS targets.  Other target
 | 
				
			||||||
 | 
					   probably don't define it, and attempts to include this file will
 | 
				
			||||||
 | 
					   fail.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/regdef.h>
 | 
				
			||||||
							
								
								
									
										103
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/regex.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										103
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/regex.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,103 @@
 | 
				
			|||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1992 Henry Spencer.
 | 
				
			||||||
 | 
					 * Copyright (c) 1992, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This code is derived from software contributed to Berkeley by
 | 
				
			||||||
 | 
					 * Henry Spencer of the University of Toronto.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)regex.h	8.2 (Berkeley) 1/3/94
 | 
				
			||||||
 | 
					 * $FreeBSD: src/include/regex.h,v 1.4 2002/03/23 17:24:53 imp Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REGEX_H_
 | 
				
			||||||
 | 
					#define	_REGEX_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* types */
 | 
				
			||||||
 | 
					typedef off_t regoff_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
						int re_magic;
 | 
				
			||||||
 | 
						size_t re_nsub;		/* number of parenthesized subexpressions */
 | 
				
			||||||
 | 
						__const char *re_endp;	/* end pointer for REG_PEND */
 | 
				
			||||||
 | 
						struct re_guts *re_g;	/* none of your business :-) */
 | 
				
			||||||
 | 
					} regex_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
						regoff_t rm_so;		/* start of match */
 | 
				
			||||||
 | 
						regoff_t rm_eo;		/* end of match */
 | 
				
			||||||
 | 
					} regmatch_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* regcomp() flags */
 | 
				
			||||||
 | 
					#define	REG_BASIC	0000
 | 
				
			||||||
 | 
					#define	REG_EXTENDED	0001
 | 
				
			||||||
 | 
					#define	REG_ICASE	0002
 | 
				
			||||||
 | 
					#define	REG_NOSUB	0004
 | 
				
			||||||
 | 
					#define	REG_NEWLINE	0010
 | 
				
			||||||
 | 
					#define	REG_NOSPEC	0020
 | 
				
			||||||
 | 
					#define	REG_PEND	0040
 | 
				
			||||||
 | 
					#define	REG_DUMP	0200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* regerror() flags */
 | 
				
			||||||
 | 
					#define	REG_NOMATCH	 1
 | 
				
			||||||
 | 
					#define	REG_BADPAT	 2
 | 
				
			||||||
 | 
					#define	REG_ECOLLATE	 3
 | 
				
			||||||
 | 
					#define	REG_ECTYPE	 4
 | 
				
			||||||
 | 
					#define	REG_EESCAPE	 5
 | 
				
			||||||
 | 
					#define	REG_ESUBREG	 6
 | 
				
			||||||
 | 
					#define	REG_EBRACK	 7
 | 
				
			||||||
 | 
					#define	REG_EPAREN	 8
 | 
				
			||||||
 | 
					#define	REG_EBRACE	 9
 | 
				
			||||||
 | 
					#define	REG_BADBR	10
 | 
				
			||||||
 | 
					#define	REG_ERANGE	11
 | 
				
			||||||
 | 
					#define	REG_ESPACE	12
 | 
				
			||||||
 | 
					#define	REG_BADRPT	13
 | 
				
			||||||
 | 
					#define	REG_EMPTY	14
 | 
				
			||||||
 | 
					#define	REG_ASSERT	15
 | 
				
			||||||
 | 
					#define	REG_INVARG	16
 | 
				
			||||||
 | 
					#define	REG_ATOI	255	/* convert name to number (!) */
 | 
				
			||||||
 | 
					#define	REG_ITOA	0400	/* convert number to name (!) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* regexec() flags */
 | 
				
			||||||
 | 
					#define	REG_NOTBOL	00001
 | 
				
			||||||
 | 
					#define	REG_NOTEOL	00002
 | 
				
			||||||
 | 
					#define	REG_STARTEND	00004
 | 
				
			||||||
 | 
					#define	REG_TRACE	00400	/* tracing of execution */
 | 
				
			||||||
 | 
					#define	REG_LARGE	01000	/* force large representation */
 | 
				
			||||||
 | 
					#define	REG_BACKR	02000	/* force use of backref code */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					__BEGIN_DECLS
 | 
				
			||||||
 | 
					int	regcomp(regex_t *__restrict, const char *__restrict, int);
 | 
				
			||||||
 | 
					size_t	regerror(int, const regex_t *__restrict, char *__restrict, size_t);
 | 
				
			||||||
 | 
					int	regexec(const regex_t *__restrict, const char *__restrict,
 | 
				
			||||||
 | 
								size_t, regmatch_t [__restrict], int);
 | 
				
			||||||
 | 
					void	regfree(regex_t *);
 | 
				
			||||||
 | 
					__END_DECLS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_REGEX_H_ */
 | 
				
			||||||
							
								
								
									
										97
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sched.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										97
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sched.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,97 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Written by Joel Sherrill <joel@OARcorp.com>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  COPYRIGHT (c) 1989-2010.
 | 
				
			||||||
 | 
					 *  On-Line Applications Research Corporation (OAR).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Permission to use, copy, modify, and distribute this software for any
 | 
				
			||||||
 | 
					 *  purpose without fee is hereby granted, provided that this entire notice
 | 
				
			||||||
 | 
					 *  is included in all copies of any software which is or includes a copy
 | 
				
			||||||
 | 
					 *  or modification of this software.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 | 
				
			||||||
 | 
					 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 | 
				
			||||||
 | 
					 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 | 
				
			||||||
 | 
					 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SCHED_H_
 | 
				
			||||||
 | 
					#define _SCHED_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/sched.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_PRIORITY_SCHEDULING)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1803
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_setparam(
 | 
				
			||||||
 | 
					  pid_t                     __pid,
 | 
				
			||||||
 | 
					  const struct sched_param *__param
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Set Scheduling Parameters, P1003.1b-2008, p. 1800
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_getparam(
 | 
				
			||||||
 | 
					  pid_t                     __pid,
 | 
				
			||||||
 | 
					  struct sched_param       *__param
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Set Scheduling Policy and Scheduling Parameters,
 | 
				
			||||||
 | 
					 *         P1003.1b-2008, p. 1805
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_setscheduler(
 | 
				
			||||||
 | 
					  pid_t                     __pid,
 | 
				
			||||||
 | 
					  int                       __policy,
 | 
				
			||||||
 | 
					  const struct sched_param *__param
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Get Scheduling Policy, P1003.1b-2008, p. 1801
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_getscheduler(
 | 
				
			||||||
 | 
					  pid_t                     __pid
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1799
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_get_priority_max(
 | 
				
			||||||
 | 
					  int __policy
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int sched_get_priority_min(
 | 
				
			||||||
 | 
					  int  __policy
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Get Scheduling Parameter Limits, P1003.1b-2008, p. 1802
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_rr_get_interval(
 | 
				
			||||||
 | 
					  pid_t             __pid,
 | 
				
			||||||
 | 
					  struct timespec  *__interval
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					#endif /* _POSIX_PRIORITY_SCHEDULING */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS) || defined(_POSIX_PRIORITY_SCHEDULING)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  XBD 13 - Yield Processor, P1003.1b-2008, p. 1807
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int sched_yield( void );
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _POSIX_THREADS or _POSIX_PRIORITY_SCHEDULING */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _SCHED_H_ */
 | 
				
			||||||
							
								
								
									
										64
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/search.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										64
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/search.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,64 @@
 | 
				
			|||||||
 | 
					/*	$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_ */
 | 
				
			||||||
							
								
								
									
										27
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/setjmp.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/setjmp.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
						setjmp.h
 | 
				
			||||||
 | 
						stubs for future use.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SETJMP_H_
 | 
				
			||||||
 | 
					#define _SETJMP_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <machine/setjmp.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					void	_EXFUN(longjmp,(jmp_buf __jmpb, int __retval))
 | 
				
			||||||
 | 
								__attribute__ ((__noreturn__));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					void	_EXFUN(longjmp,(jmp_buf __jmpb, int __retval));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(setjmp,(jmp_buf __jmpb));
 | 
				
			||||||
 | 
					#define setjmp(env) setjmp(env)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _SETJMP_H_ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										32
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/signal.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										32
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/signal.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,32 @@
 | 
				
			|||||||
 | 
					#ifndef _SIGNAL_H_
 | 
				
			||||||
 | 
					#define _SIGNAL_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int	sig_atomic_t;		/* Atomic entity type (ANSI) */
 | 
				
			||||||
 | 
					#ifndef _POSIX_SOURCE
 | 
				
			||||||
 | 
					typedef _sig_func_ptr sig_t;		/* BSD naming */
 | 
				
			||||||
 | 
					typedef _sig_func_ptr sighandler_t;	/* glibc naming */
 | 
				
			||||||
 | 
					#endif /* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SIG_DFL ((_sig_func_ptr)0)	/* Default action */
 | 
				
			||||||
 | 
					#define SIG_IGN ((_sig_func_ptr)1)	/* Ignore action */
 | 
				
			||||||
 | 
					#define SIG_ERR ((_sig_func_ptr)-1)	/* Error return */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _reent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_sig_func_ptr _EXFUN(_signal_r, (struct _reent *, int, _sig_func_ptr));
 | 
				
			||||||
 | 
					int	_EXFUN(_raise_r, (struct _reent *, int));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					_sig_func_ptr _EXFUN(signal, (int, _sig_func_ptr));
 | 
				
			||||||
 | 
					int	_EXFUN(raise, (int));
 | 
				
			||||||
 | 
					void	_EXFUN(psignal, (int, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _SIGNAL_H_ */
 | 
				
			||||||
							
								
								
									
										119
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/spawn.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										119
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/spawn.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,119 @@
 | 
				
			|||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 2008 Ed Schouten <ed@FreeBSD.org>
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SPAWN_H_
 | 
				
			||||||
 | 
					#define _SPAWN_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					#define __need_sigset_t
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sched_param;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct __posix_spawnattr		*posix_spawnattr_t;
 | 
				
			||||||
 | 
					typedef struct __posix_spawn_file_actions	*posix_spawn_file_actions_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_RESETIDS		0x01
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_SETPGROUP		0x02
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_SETSCHEDPARAM	0x04
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_SETSCHEDULER	0x08
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_SETSIGDEF		0x10
 | 
				
			||||||
 | 
					#define POSIX_SPAWN_SETSIGMASK		0x20
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Spawn routines
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * XXX both arrays should be __restrict, but this does not work when GCC
 | 
				
			||||||
 | 
					 * is invoked with -std=c99.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn, (pid_t *  __restrict, const char * __restrict,
 | 
				
			||||||
 | 
						const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict,
 | 
				
			||||||
 | 
						char * const [], char * const [])
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnp, (pid_t * __restrict, const char * __restrict,
 | 
				
			||||||
 | 
						const posix_spawn_file_actions_t *, const posix_spawnattr_t * __restrict,
 | 
				
			||||||
 | 
						char * const [], char * const [])
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * File descriptor actions
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn_file_actions_init, (posix_spawn_file_actions_t *));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn_file_actions_destroy, (posix_spawn_file_actions_t *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn_file_actions_addopen,
 | 
				
			||||||
 | 
						(posix_spawn_file_actions_t * __restrict, int, const char * __restrict, int, mode_t)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn_file_actions_adddup2,
 | 
				
			||||||
 | 
						(posix_spawn_file_actions_t *, int, int)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawn_file_actions_addclose,
 | 
				
			||||||
 | 
						(posix_spawn_file_actions_t *, int)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Spawn attributes
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_init, (posix_spawnattr_t *));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_destroy, (posix_spawnattr_t *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getflags,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, short * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getpgroup,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, pid_t * __restrict));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getschedparam,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, struct sched_param * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getschedpolicy,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, int * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getsigdefault,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, sigset_t * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_getsigmask,
 | 
				
			||||||
 | 
						(const posix_spawnattr_t * __restrict, sigset_t * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setflags, (posix_spawnattr_t *, short));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setpgroup, (posix_spawnattr_t *, pid_t));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setschedparam,
 | 
				
			||||||
 | 
						(posix_spawnattr_t * __restrict, const struct sched_param * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setschedpolicy, (posix_spawnattr_t *, int));
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setsigdefault,
 | 
				
			||||||
 | 
						(posix_spawnattr_t * __restrict, const sigset_t * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(posix_spawnattr_setsigmask,
 | 
				
			||||||
 | 
						(posix_spawnattr_t * __restrict, const sigset_t * __restrict)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_SPAWN_H_ */
 | 
				
			||||||
							
								
								
									
										413
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/stdatomic.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										413
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/stdatomic.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,413 @@
 | 
				
			|||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 2011 Ed Schouten <ed@FreeBSD.org>
 | 
				
			||||||
 | 
					 *                    David Chisnall <theraven@FreeBSD.org>
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * $FreeBSD$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STDATOMIC_H_
 | 
				
			||||||
 | 
					#define	_STDATOMIC_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __has_extension(c_atomic) || __has_extension(cxx_atomic)
 | 
				
			||||||
 | 
					#define	__CLANG_ATOMICS
 | 
				
			||||||
 | 
					#elif __GNUC_PREREQ__(4, 7)
 | 
				
			||||||
 | 
					#define	__GNUC_ATOMICS
 | 
				
			||||||
 | 
					#elif defined(__GNUC__)
 | 
				
			||||||
 | 
					#define	__SYNC_ATOMICS
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#error "stdatomic.h does not support your compiler"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.1 Atomic lock-free macros.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_BOOL_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_BOOL_LOCK_FREE		__GCC_ATOMIC_BOOL_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_CHAR_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_CHAR_LOCK_FREE		__GCC_ATOMIC_CHAR_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_CHAR16_T_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_CHAR16_T_LOCK_FREE	__GCC_ATOMIC_CHAR16_T_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_CHAR32_T_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_CHAR32_T_LOCK_FREE	__GCC_ATOMIC_CHAR32_T_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_WCHAR_T_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_WCHAR_T_LOCK_FREE	__GCC_ATOMIC_WCHAR_T_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_SHORT_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_SHORT_LOCK_FREE		__GCC_ATOMIC_SHORT_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_INT_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_INT_LOCK_FREE		__GCC_ATOMIC_INT_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_LONG_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_LONG_LOCK_FREE		__GCC_ATOMIC_LONG_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_LLONG_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_LLONG_LOCK_FREE		__GCC_ATOMIC_LLONG_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __GCC_ATOMIC_POINTER_LOCK_FREE
 | 
				
			||||||
 | 
					#define	ATOMIC_POINTER_LOCK_FREE	__GCC_ATOMIC_POINTER_LOCK_FREE
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.2 Initialization.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CLANG_ATOMICS)
 | 
				
			||||||
 | 
					#define	ATOMIC_VAR_INIT(value)		(value)
 | 
				
			||||||
 | 
					#define	atomic_init(obj, value)		__c11_atomic_init(obj, value)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	ATOMIC_VAR_INIT(value)		{ .__val = (value) }
 | 
				
			||||||
 | 
					#define	atomic_init(obj, value)		((void)((obj)->__val = (value)))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Clang and recent GCC both provide predefined macros for the memory
 | 
				
			||||||
 | 
					 * orderings.  If we are using a compiler that doesn't define them, use the
 | 
				
			||||||
 | 
					 * clang values - these will be ignored in the fallback path.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_RELAXED
 | 
				
			||||||
 | 
					#define __ATOMIC_RELAXED		0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_CONSUME
 | 
				
			||||||
 | 
					#define __ATOMIC_CONSUME		1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_ACQUIRE
 | 
				
			||||||
 | 
					#define __ATOMIC_ACQUIRE		2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_RELEASE
 | 
				
			||||||
 | 
					#define __ATOMIC_RELEASE		3
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_ACQ_REL
 | 
				
			||||||
 | 
					#define __ATOMIC_ACQ_REL		4
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __ATOMIC_SEQ_CST
 | 
				
			||||||
 | 
					#define __ATOMIC_SEQ_CST		5
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.3 Order and consistency.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The memory_order_* constants that denote the barrier behaviour of the
 | 
				
			||||||
 | 
					 * atomic operations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef enum {
 | 
				
			||||||
 | 
						memory_order_relaxed = __ATOMIC_RELAXED,
 | 
				
			||||||
 | 
						memory_order_consume = __ATOMIC_CONSUME,
 | 
				
			||||||
 | 
						memory_order_acquire = __ATOMIC_ACQUIRE,
 | 
				
			||||||
 | 
						memory_order_release = __ATOMIC_RELEASE,
 | 
				
			||||||
 | 
						memory_order_acq_rel = __ATOMIC_ACQ_REL,
 | 
				
			||||||
 | 
						memory_order_seq_cst = __ATOMIC_SEQ_CST
 | 
				
			||||||
 | 
					} memory_order;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.4 Fences.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					atomic_thread_fence(memory_order __order __unused)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CLANG_ATOMICS
 | 
				
			||||||
 | 
						__c11_atomic_thread_fence(__order);
 | 
				
			||||||
 | 
					#elif defined(__GNUC_ATOMICS)
 | 
				
			||||||
 | 
						__atomic_thread_fence(__order);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						__sync_synchronize();
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					atomic_signal_fence(memory_order __order __unused)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CLANG_ATOMICS
 | 
				
			||||||
 | 
						__c11_atomic_signal_fence(__order);
 | 
				
			||||||
 | 
					#elif defined(__GNUC_ATOMICS)
 | 
				
			||||||
 | 
						__atomic_signal_fence(__order);
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
						__asm volatile ("" ::: "memory");
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.5 Lock-free property.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_KERNEL)
 | 
				
			||||||
 | 
					/* Atomics in kernelspace are always lock-free. */
 | 
				
			||||||
 | 
					#define	atomic_is_lock_free(obj) \
 | 
				
			||||||
 | 
						((void)(obj), (_Bool)1)
 | 
				
			||||||
 | 
					#elif defined(__CLANG_ATOMICS)
 | 
				
			||||||
 | 
					#define	atomic_is_lock_free(obj) \
 | 
				
			||||||
 | 
						__atomic_is_lock_free(sizeof(*(obj)), obj)
 | 
				
			||||||
 | 
					#elif defined(__GNUC_ATOMICS)
 | 
				
			||||||
 | 
					#define	atomic_is_lock_free(obj) \
 | 
				
			||||||
 | 
						__atomic_is_lock_free(sizeof((obj)->__val), &(obj)->__val)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	atomic_is_lock_free(obj) \
 | 
				
			||||||
 | 
						((void)(obj), sizeof((obj)->__val) <= sizeof(void *))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.6 Atomic integer types.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef _Atomic(_Bool)			atomic_bool;
 | 
				
			||||||
 | 
					typedef _Atomic(char)			atomic_char;
 | 
				
			||||||
 | 
					typedef _Atomic(signed char)		atomic_schar;
 | 
				
			||||||
 | 
					typedef _Atomic(unsigned char)		atomic_uchar;
 | 
				
			||||||
 | 
					typedef _Atomic(short)			atomic_short;
 | 
				
			||||||
 | 
					typedef _Atomic(unsigned short)		atomic_ushort;
 | 
				
			||||||
 | 
					typedef _Atomic(int)			atomic_int;
 | 
				
			||||||
 | 
					typedef _Atomic(unsigned int)		atomic_uint;
 | 
				
			||||||
 | 
					typedef _Atomic(long)			atomic_long;
 | 
				
			||||||
 | 
					typedef _Atomic(unsigned long)		atomic_ulong;
 | 
				
			||||||
 | 
					typedef _Atomic(long long)		atomic_llong;
 | 
				
			||||||
 | 
					typedef _Atomic(unsigned long long)	atomic_ullong;
 | 
				
			||||||
 | 
					#if 0
 | 
				
			||||||
 | 
					typedef _Atomic(__char16_t)		atomic_char16_t;
 | 
				
			||||||
 | 
					typedef _Atomic(__char32_t)		atomic_char32_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					typedef _Atomic(wchar_t)		atomic_wchar_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_least8_t)		atomic_int_least8_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_least8_t)		atomic_uint_least8_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_least16_t)		atomic_int_least16_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_least16_t)		atomic_uint_least16_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_least32_t)		atomic_int_least32_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_least32_t)		atomic_uint_least32_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_least64_t)		atomic_int_least64_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_least64_t)		atomic_uint_least64_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_fast8_t)		atomic_int_fast8_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_fast8_t)		atomic_uint_fast8_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_fast16_t)		atomic_int_fast16_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_fast16_t)		atomic_uint_fast16_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_fast32_t)		atomic_int_fast32_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_fast32_t)		atomic_uint_fast32_t;
 | 
				
			||||||
 | 
					typedef _Atomic(int_fast64_t)		atomic_int_fast64_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uint_fast64_t)		atomic_uint_fast64_t;
 | 
				
			||||||
 | 
					typedef _Atomic(intptr_t)		atomic_intptr_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uintptr_t)		atomic_uintptr_t;
 | 
				
			||||||
 | 
					typedef _Atomic(size_t)			atomic_size_t;
 | 
				
			||||||
 | 
					typedef _Atomic(ptrdiff_t)		atomic_ptrdiff_t;
 | 
				
			||||||
 | 
					typedef _Atomic(intmax_t)		atomic_intmax_t;
 | 
				
			||||||
 | 
					typedef _Atomic(uintmax_t)		atomic_uintmax_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.7 Operations on atomic types.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Compiler-specific operations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CLANG_ATOMICS)
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_strong_explicit(object, expected,	\
 | 
				
			||||||
 | 
					    desired, success, failure)						\
 | 
				
			||||||
 | 
						__c11_atomic_compare_exchange_strong(object, expected, desired,	\
 | 
				
			||||||
 | 
						    success, failure)
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_weak_explicit(object, expected,		\
 | 
				
			||||||
 | 
					    desired, success, failure)						\
 | 
				
			||||||
 | 
						__c11_atomic_compare_exchange_weak(object, expected, desired,	\
 | 
				
			||||||
 | 
						    success, failure)
 | 
				
			||||||
 | 
					#define	atomic_exchange_explicit(object, desired, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_exchange(object, desired, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_add_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_fetch_add(object, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_and_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_fetch_and(object, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_or_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_fetch_or(object, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_sub_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_fetch_sub(object, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_xor_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__c11_atomic_fetch_xor(object, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_load_explicit(object, order)				\
 | 
				
			||||||
 | 
						__c11_atomic_load(object, order)
 | 
				
			||||||
 | 
					#define	atomic_store_explicit(object, desired, order)			\
 | 
				
			||||||
 | 
						__c11_atomic_store(object, desired, order)
 | 
				
			||||||
 | 
					#elif defined(__GNUC_ATOMICS)
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_strong_explicit(object, expected,	\
 | 
				
			||||||
 | 
					    desired, success, failure)						\
 | 
				
			||||||
 | 
						__atomic_compare_exchange_n(&(object)->__val, expected,		\
 | 
				
			||||||
 | 
						    desired, 0, success, failure)
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_weak_explicit(object, expected,		\
 | 
				
			||||||
 | 
					    desired, success, failure)						\
 | 
				
			||||||
 | 
						__atomic_compare_exchange_n(&(object)->__val, expected,		\
 | 
				
			||||||
 | 
						    desired, 1, success, failure)
 | 
				
			||||||
 | 
					#define	atomic_exchange_explicit(object, desired, order)		\
 | 
				
			||||||
 | 
						__atomic_exchange_n(&(object)->__val, desired, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_add_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__atomic_fetch_add(&(object)->__val, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_and_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__atomic_fetch_and(&(object)->__val, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_or_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__atomic_fetch_or(&(object)->__val, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_sub_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__atomic_fetch_sub(&(object)->__val, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_fetch_xor_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						__atomic_fetch_xor(&(object)->__val, operand, order)
 | 
				
			||||||
 | 
					#define	atomic_load_explicit(object, order)				\
 | 
				
			||||||
 | 
						__atomic_load_n(&(object)->__val, order)
 | 
				
			||||||
 | 
					#define	atomic_store_explicit(object, desired, order)			\
 | 
				
			||||||
 | 
						__atomic_store_n(&(object)->__val, desired, order)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__atomic_apply_stride(object, operand) \
 | 
				
			||||||
 | 
						(((__typeof__((object)->__val))0) + (operand))
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_strong_explicit(object, expected,	\
 | 
				
			||||||
 | 
					    desired, success, failure)	__extension__ ({			\
 | 
				
			||||||
 | 
						__typeof__(expected) __ep = (expected);				\
 | 
				
			||||||
 | 
						__typeof__(*__ep) __e = *__ep;					\
 | 
				
			||||||
 | 
						(void)(success); (void)(failure);				\
 | 
				
			||||||
 | 
						(_Bool)((*__ep = __sync_val_compare_and_swap(&(object)->__val,	\
 | 
				
			||||||
 | 
						    __e, desired)) == __e);					\
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_weak_explicit(object, expected,		\
 | 
				
			||||||
 | 
					    desired, success, failure)						\
 | 
				
			||||||
 | 
						atomic_compare_exchange_strong_explicit(object, expected,	\
 | 
				
			||||||
 | 
							desired, success, failure)
 | 
				
			||||||
 | 
					#if __has_builtin(__sync_swap)
 | 
				
			||||||
 | 
					/* Clang provides a full-barrier atomic exchange - use it if available. */
 | 
				
			||||||
 | 
					#define	atomic_exchange_explicit(object, desired, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_swap(&(object)->__val, desired))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * __sync_lock_test_and_set() is only an acquire barrier in theory (although in
 | 
				
			||||||
 | 
					 * practice it is usually a full barrier) so we need an explicit barrier before
 | 
				
			||||||
 | 
					 * it.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	atomic_exchange_explicit(object, desired, order)		\
 | 
				
			||||||
 | 
					__extension__ ({							\
 | 
				
			||||||
 | 
						__typeof__(object) __o = (object);				\
 | 
				
			||||||
 | 
						__typeof__(desired) __d = (desired);				\
 | 
				
			||||||
 | 
						(void)(order);							\
 | 
				
			||||||
 | 
						__sync_synchronize();						\
 | 
				
			||||||
 | 
						__sync_lock_test_and_set(&(__o)->__val, __d);			\
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	atomic_fetch_add_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_add(&(object)->__val,		\
 | 
				
			||||||
 | 
						    __atomic_apply_stride(object, operand)))
 | 
				
			||||||
 | 
					#define	atomic_fetch_and_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_and(&(object)->__val, operand))
 | 
				
			||||||
 | 
					#define	atomic_fetch_or_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_or(&(object)->__val, operand))
 | 
				
			||||||
 | 
					#define	atomic_fetch_sub_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_sub(&(object)->__val,		\
 | 
				
			||||||
 | 
						    __atomic_apply_stride(object, operand)))
 | 
				
			||||||
 | 
					#define	atomic_fetch_xor_explicit(object, operand, order)		\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_xor(&(object)->__val, operand))
 | 
				
			||||||
 | 
					#define	atomic_load_explicit(object, order)				\
 | 
				
			||||||
 | 
						((void)(order), __sync_fetch_and_add(&(object)->__val, 0))
 | 
				
			||||||
 | 
					#define	atomic_store_explicit(object, desired, order)			\
 | 
				
			||||||
 | 
						((void)atomic_exchange_explicit(object, desired, order))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Convenience functions.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Don't provide these in kernel space. In kernel space, we should be
 | 
				
			||||||
 | 
					 * disciplined enough to always provide explicit barriers.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _KERNEL
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_strong(object, expected, desired)	\
 | 
				
			||||||
 | 
						atomic_compare_exchange_strong_explicit(object, expected,	\
 | 
				
			||||||
 | 
						    desired, memory_order_seq_cst, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_compare_exchange_weak(object, expected, desired)		\
 | 
				
			||||||
 | 
						atomic_compare_exchange_weak_explicit(object, expected,		\
 | 
				
			||||||
 | 
						    desired, memory_order_seq_cst, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_exchange(object, desired)				\
 | 
				
			||||||
 | 
						atomic_exchange_explicit(object, desired, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_fetch_add(object, operand)				\
 | 
				
			||||||
 | 
						atomic_fetch_add_explicit(object, operand, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_fetch_and(object, operand)				\
 | 
				
			||||||
 | 
						atomic_fetch_and_explicit(object, operand, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_fetch_or(object, operand)				\
 | 
				
			||||||
 | 
						atomic_fetch_or_explicit(object, operand, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_fetch_sub(object, operand)				\
 | 
				
			||||||
 | 
						atomic_fetch_sub_explicit(object, operand, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_fetch_xor(object, operand)				\
 | 
				
			||||||
 | 
						atomic_fetch_xor_explicit(object, operand, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_load(object)						\
 | 
				
			||||||
 | 
						atomic_load_explicit(object, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#define	atomic_store(object, desired)					\
 | 
				
			||||||
 | 
						atomic_store_explicit(object, desired, memory_order_seq_cst)
 | 
				
			||||||
 | 
					#endif /* !_KERNEL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * 7.17.8 Atomic flag type and operations.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * XXX: Assume atomic_bool can be used as an atomic_flag. Is there some
 | 
				
			||||||
 | 
					 * kind of compiler built-in type we could use?
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
						atomic_bool	__flag;
 | 
				
			||||||
 | 
					} atomic_flag;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	ATOMIC_FLAG_INIT		{ ATOMIC_VAR_INIT(0) }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline _Bool
 | 
				
			||||||
 | 
					atomic_flag_test_and_set_explicit(volatile atomic_flag *__object,
 | 
				
			||||||
 | 
					    memory_order __order)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						return (atomic_exchange_explicit(&__object->__flag, 1, __order));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					atomic_flag_clear_explicit(volatile atomic_flag *__object, memory_order __order)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						atomic_store_explicit(&__object->__flag, 0, __order);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _KERNEL
 | 
				
			||||||
 | 
					static __inline _Bool
 | 
				
			||||||
 | 
					atomic_flag_test_and_set(volatile atomic_flag *__object)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						return (atomic_flag_test_and_set_explicit(__object,
 | 
				
			||||||
 | 
						    memory_order_seq_cst));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					atomic_flag_clear(volatile atomic_flag *__object)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						atomic_flag_clear_explicit(__object, memory_order_seq_cst);
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif /* !_KERNEL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_STDATOMIC_H_ */
 | 
				
			||||||
							
								
								
									
										511
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/stdint.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										511
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/stdint.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,511 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2004, 2005 by
 | 
				
			||||||
 | 
					 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and distribute this software
 | 
				
			||||||
 | 
					 * is freely granted, provided that this notice is preserved.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STDINT_H
 | 
				
			||||||
 | 
					#define _STDINT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/_default_types.h>
 | 
				
			||||||
 | 
					#include <sys/_intsup.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int8_t_defined
 | 
				
			||||||
 | 
					typedef __int8_t int8_t ;
 | 
				
			||||||
 | 
					typedef __uint8_t uint8_t ;
 | 
				
			||||||
 | 
					#define __int8_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int_least8_t_defined
 | 
				
			||||||
 | 
					typedef __int_least8_t int_least8_t;
 | 
				
			||||||
 | 
					typedef __uint_least8_t uint_least8_t;
 | 
				
			||||||
 | 
					#define __int_least8_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int16_t_defined
 | 
				
			||||||
 | 
					typedef __int16_t int16_t ;
 | 
				
			||||||
 | 
					typedef __uint16_t uint16_t ;
 | 
				
			||||||
 | 
					#define __int16_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int_least16_t_defined
 | 
				
			||||||
 | 
					typedef __int_least16_t int_least16_t;
 | 
				
			||||||
 | 
					typedef __uint_least16_t uint_least16_t;
 | 
				
			||||||
 | 
					#define __int_least16_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int32_t_defined
 | 
				
			||||||
 | 
					typedef __int32_t int32_t ;
 | 
				
			||||||
 | 
					typedef __uint32_t uint32_t ;
 | 
				
			||||||
 | 
					#define __int32_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int_least32_t_defined
 | 
				
			||||||
 | 
					typedef __int_least32_t int_least32_t;
 | 
				
			||||||
 | 
					typedef __uint_least32_t uint_least32_t;
 | 
				
			||||||
 | 
					#define __int_least32_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int64_t_defined
 | 
				
			||||||
 | 
					typedef __int64_t int64_t ;
 | 
				
			||||||
 | 
					typedef __uint64_t uint64_t ;
 | 
				
			||||||
 | 
					#define __int64_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___int_least64_t_defined
 | 
				
			||||||
 | 
					typedef __int_least64_t int_least64_t;
 | 
				
			||||||
 | 
					typedef __uint_least64_t uint_least64_t;
 | 
				
			||||||
 | 
					#define __int_least64_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Fastest minimum-width integer types
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Assume int to be the fastest type for all types with a width 
 | 
				
			||||||
 | 
					 * less than __INT_MAX__ rsp. INT_MAX
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifdef __INT_FAST8_TYPE__
 | 
				
			||||||
 | 
					  typedef __INT_FAST8_TYPE__ int_fast8_t;
 | 
				
			||||||
 | 
					  typedef __UINT_FAST8_TYPE__ uint_fast8_t;
 | 
				
			||||||
 | 
					#define __int_fast8_t_defined 1
 | 
				
			||||||
 | 
					#elif __STDINT_EXP(INT_MAX) >= 0x7f
 | 
				
			||||||
 | 
					  typedef signed int int_fast8_t;
 | 
				
			||||||
 | 
					  typedef unsigned int uint_fast8_t;
 | 
				
			||||||
 | 
					#define __int_fast8_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST16_TYPE__
 | 
				
			||||||
 | 
					  typedef __INT_FAST16_TYPE__ int_fast16_t;
 | 
				
			||||||
 | 
					  typedef __UINT_FAST16_TYPE__ uint_fast16_t;
 | 
				
			||||||
 | 
					#define __int_fast16_t_defined 1
 | 
				
			||||||
 | 
					#elif __STDINT_EXP(INT_MAX) >= 0x7fff
 | 
				
			||||||
 | 
					  typedef signed int int_fast16_t;
 | 
				
			||||||
 | 
					  typedef unsigned int uint_fast16_t;
 | 
				
			||||||
 | 
					#define __int_fast16_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST32_TYPE__
 | 
				
			||||||
 | 
					  typedef __INT_FAST32_TYPE__ int_fast32_t;
 | 
				
			||||||
 | 
					  typedef __UINT_FAST32_TYPE__ uint_fast32_t;
 | 
				
			||||||
 | 
					#define __int_fast32_t_defined 1
 | 
				
			||||||
 | 
					#elif __STDINT_EXP(INT_MAX) >= 0x7fffffff
 | 
				
			||||||
 | 
					  typedef signed int int_fast32_t;
 | 
				
			||||||
 | 
					  typedef unsigned int uint_fast32_t;
 | 
				
			||||||
 | 
					#define __int_fast32_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST64_TYPE__
 | 
				
			||||||
 | 
					  typedef __INT_FAST64_TYPE__ int_fast64_t;
 | 
				
			||||||
 | 
					  typedef __UINT_FAST64_TYPE__ uint_fast64_t;
 | 
				
			||||||
 | 
					#define __int_fast64_t_defined 1
 | 
				
			||||||
 | 
					#elif __STDINT_EXP(INT_MAX) > 0x7fffffff
 | 
				
			||||||
 | 
					  typedef signed int int_fast64_t;
 | 
				
			||||||
 | 
					  typedef unsigned int uint_fast64_t;
 | 
				
			||||||
 | 
					#define __int_fast64_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Fall back to [u]int_least<N>_t for [u]int_fast<N>_t types
 | 
				
			||||||
 | 
					 * not having been defined, yet.
 | 
				
			||||||
 | 
					 * Leave undefined, if [u]int_least<N>_t should not be available.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if !__int_fast8_t_defined
 | 
				
			||||||
 | 
					#if __int_least8_t_defined
 | 
				
			||||||
 | 
					  typedef int_least8_t int_fast8_t;
 | 
				
			||||||
 | 
					  typedef uint_least8_t uint_fast8_t;
 | 
				
			||||||
 | 
					#define __int_fast8_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__int_fast16_t_defined
 | 
				
			||||||
 | 
					#if __int_least16_t_defined
 | 
				
			||||||
 | 
					  typedef int_least16_t int_fast16_t;
 | 
				
			||||||
 | 
					  typedef uint_least16_t uint_fast16_t;
 | 
				
			||||||
 | 
					#define __int_fast16_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__int_fast32_t_defined
 | 
				
			||||||
 | 
					#if __int_least32_t_defined
 | 
				
			||||||
 | 
					  typedef int_least32_t int_fast32_t;
 | 
				
			||||||
 | 
					  typedef uint_least32_t uint_fast32_t;
 | 
				
			||||||
 | 
					#define __int_fast32_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__int_fast64_t_defined
 | 
				
			||||||
 | 
					#if __int_least64_t_defined
 | 
				
			||||||
 | 
					  typedef int_least64_t int_fast64_t;
 | 
				
			||||||
 | 
					  typedef uint_least64_t uint_fast64_t;
 | 
				
			||||||
 | 
					#define __int_fast64_t_defined 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Greatest-width integer types */
 | 
				
			||||||
 | 
					/* Modern GCCs provide __INTMAX_TYPE__ */
 | 
				
			||||||
 | 
					#if defined(__INTMAX_TYPE__)
 | 
				
			||||||
 | 
					  typedef __INTMAX_TYPE__ intmax_t;
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					  typedef signed long long intmax_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  typedef signed long intmax_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Modern GCCs provide __UINTMAX_TYPE__ */
 | 
				
			||||||
 | 
					#if defined(__UINTMAX_TYPE__)
 | 
				
			||||||
 | 
					  typedef __UINTMAX_TYPE__ uintmax_t;
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					  typedef unsigned long long uintmax_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  typedef unsigned long uintmax_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __intptr_t intptr_t;
 | 
				
			||||||
 | 
					typedef __uintptr_t uintptr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INTPTR_TYPE__
 | 
				
			||||||
 | 
					#define INTPTR_MIN (-__INTPTR_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INTPTR_MAX __INTPTR_MAX__
 | 
				
			||||||
 | 
					#define UINTPTR_MAX __UINTPTR_MAX__
 | 
				
			||||||
 | 
					#elif defined(__PTRDIFF_TYPE__)
 | 
				
			||||||
 | 
					#define INTPTR_MAX PTRDIFF_MAX
 | 
				
			||||||
 | 
					#define INTPTR_MIN PTRDIFF_MIN
 | 
				
			||||||
 | 
					#ifdef __UINTPTR_MAX__
 | 
				
			||||||
 | 
					#define UINTPTR_MAX __UINTPTR_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define UINTPTR_MAX (2UL * PTRDIFF_MAX + 1)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Fallback to hardcoded values, 
 | 
				
			||||||
 | 
					 * should be valid on cpu's with 32bit int/32bit void*
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define INTPTR_MAX __STDINT_EXP(LONG_MAX)
 | 
				
			||||||
 | 
					#define INTPTR_MIN (-__STDINT_EXP(LONG_MAX) - 1)
 | 
				
			||||||
 | 
					#define UINTPTR_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Limits of Specified-Width Integer Types */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT8_MAX__
 | 
				
			||||||
 | 
					#define INT8_MIN (-__INT8_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT8_MAX __INT8_MAX__
 | 
				
			||||||
 | 
					#define UINT8_MAX __UINT8_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int8_t_defined)
 | 
				
			||||||
 | 
					#define INT8_MIN 	-128
 | 
				
			||||||
 | 
					#define INT8_MAX 	 127
 | 
				
			||||||
 | 
					#define UINT8_MAX 	 255
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST8_MAX__
 | 
				
			||||||
 | 
					#define INT_LEAST8_MIN (-__INT_LEAST8_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_LEAST8_MAX __INT_LEAST8_MAX__
 | 
				
			||||||
 | 
					#define UINT_LEAST8_MAX __UINT_LEAST8_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_least8_t_defined)
 | 
				
			||||||
 | 
					#define INT_LEAST8_MIN 	-128
 | 
				
			||||||
 | 
					#define INT_LEAST8_MAX 	 127
 | 
				
			||||||
 | 
					#define UINT_LEAST8_MAX	 255
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#error required type int_least8_t missing
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT16_MAX__
 | 
				
			||||||
 | 
					#define INT16_MIN (-__INT16_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT16_MAX __INT16_MAX__
 | 
				
			||||||
 | 
					#define UINT16_MAX __UINT16_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int16_t_defined)
 | 
				
			||||||
 | 
					#define INT16_MIN 	-32768
 | 
				
			||||||
 | 
					#define INT16_MAX 	 32767
 | 
				
			||||||
 | 
					#define UINT16_MAX 	 65535
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST16_MAX__
 | 
				
			||||||
 | 
					#define INT_LEAST16_MIN (-__INT_LEAST16_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_LEAST16_MAX __INT_LEAST16_MAX__
 | 
				
			||||||
 | 
					#define UINT_LEAST16_MAX __UINT_LEAST16_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_least16_t_defined)
 | 
				
			||||||
 | 
					#define INT_LEAST16_MIN	-32768
 | 
				
			||||||
 | 
					#define INT_LEAST16_MAX	 32767
 | 
				
			||||||
 | 
					#define UINT_LEAST16_MAX 65535
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#error required type int_least16_t missing
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT32_MAX__
 | 
				
			||||||
 | 
					#define INT32_MIN (-__INT32_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT32_MAX __INT32_MAX__
 | 
				
			||||||
 | 
					#define UINT32_MAX __UINT32_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int32_t_defined)
 | 
				
			||||||
 | 
					#if __have_long32
 | 
				
			||||||
 | 
					#define INT32_MIN 	 (-2147483647L-1)
 | 
				
			||||||
 | 
					#define INT32_MAX 	 2147483647L
 | 
				
			||||||
 | 
					#define UINT32_MAX       4294967295UL
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT32_MIN 	 (-2147483647-1)
 | 
				
			||||||
 | 
					#define INT32_MAX 	 2147483647
 | 
				
			||||||
 | 
					#define UINT32_MAX       4294967295U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST32_MAX__
 | 
				
			||||||
 | 
					#define INT_LEAST32_MIN (-__INT_LEAST32_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_LEAST32_MAX __INT_LEAST32_MAX__
 | 
				
			||||||
 | 
					#define UINT_LEAST32_MAX __UINT_LEAST32_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_least32_t_defined)
 | 
				
			||||||
 | 
					#if __have_long32
 | 
				
			||||||
 | 
					#define INT_LEAST32_MIN  (-2147483647L-1)
 | 
				
			||||||
 | 
					#define INT_LEAST32_MAX  2147483647L
 | 
				
			||||||
 | 
					#define UINT_LEAST32_MAX 4294967295UL
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT_LEAST32_MIN  (-2147483647-1)
 | 
				
			||||||
 | 
					#define INT_LEAST32_MAX  2147483647
 | 
				
			||||||
 | 
					#define UINT_LEAST32_MAX 4294967295U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#error required type int_least32_t missing
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT64_MAX__
 | 
				
			||||||
 | 
					#define INT64_MIN (-__INT64_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT64_MAX __INT64_MAX__
 | 
				
			||||||
 | 
					#define UINT64_MAX __UINT64_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int64_t_defined)
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define INT64_MIN 	(-9223372036854775807L-1L)
 | 
				
			||||||
 | 
					#define INT64_MAX 	 9223372036854775807L
 | 
				
			||||||
 | 
					#define UINT64_MAX 	18446744073709551615U
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					#define INT64_MIN 	(-9223372036854775807LL-1LL)
 | 
				
			||||||
 | 
					#define INT64_MAX 	 9223372036854775807LL
 | 
				
			||||||
 | 
					#define UINT64_MAX 	18446744073709551615ULL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_LEAST64_MAX__
 | 
				
			||||||
 | 
					#define INT_LEAST64_MIN (-__INT_LEAST64_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_LEAST64_MAX __INT_LEAST64_MAX__
 | 
				
			||||||
 | 
					#define UINT_LEAST64_MAX __UINT_LEAST64_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_least64_t_defined)
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define INT_LEAST64_MIN  (-9223372036854775807L-1L)
 | 
				
			||||||
 | 
					#define INT_LEAST64_MAX  9223372036854775807L
 | 
				
			||||||
 | 
					#define UINT_LEAST64_MAX 18446744073709551615U
 | 
				
			||||||
 | 
					#elif __have_longlong64
 | 
				
			||||||
 | 
					#define INT_LEAST64_MIN  (-9223372036854775807LL-1LL)
 | 
				
			||||||
 | 
					#define INT_LEAST64_MAX  9223372036854775807LL
 | 
				
			||||||
 | 
					#define UINT_LEAST64_MAX 18446744073709551615ULL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST8_MAX__
 | 
				
			||||||
 | 
					#define INT_FAST8_MIN (-__INT_FAST8_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_FAST8_MAX __INT_FAST8_MAX__
 | 
				
			||||||
 | 
					#define UINT_FAST8_MAX __UINT_FAST8_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_fast8_t_defined)
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) >= 0x7f
 | 
				
			||||||
 | 
					#define INT_FAST8_MIN	(-__STDINT_EXP(INT_MAX)-1)
 | 
				
			||||||
 | 
					#define INT_FAST8_MAX	__STDINT_EXP(INT_MAX)
 | 
				
			||||||
 | 
					#define UINT_FAST8_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT_FAST8_MIN	INT_LEAST8_MIN
 | 
				
			||||||
 | 
					#define INT_FAST8_MAX	INT_LEAST8_MAX
 | 
				
			||||||
 | 
					#define UINT_FAST8_MAX	UINT_LEAST8_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST16_MAX__
 | 
				
			||||||
 | 
					#define INT_FAST16_MIN (-__INT_FAST16_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_FAST16_MAX __INT_FAST16_MAX__
 | 
				
			||||||
 | 
					#define UINT_FAST16_MAX __UINT_FAST16_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_fast16_t_defined)
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) >= 0x7fff
 | 
				
			||||||
 | 
					#define INT_FAST16_MIN	(-__STDINT_EXP(INT_MAX)-1)
 | 
				
			||||||
 | 
					#define INT_FAST16_MAX	__STDINT_EXP(INT_MAX)
 | 
				
			||||||
 | 
					#define UINT_FAST16_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT_FAST16_MIN	INT_LEAST16_MIN
 | 
				
			||||||
 | 
					#define INT_FAST16_MAX	INT_LEAST16_MAX
 | 
				
			||||||
 | 
					#define UINT_FAST16_MAX	UINT_LEAST16_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST32_MAX__
 | 
				
			||||||
 | 
					#define INT_FAST32_MIN (-__INT_FAST32_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_FAST32_MAX __INT_FAST32_MAX__
 | 
				
			||||||
 | 
					#define UINT_FAST32_MAX __UINT_FAST32_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_fast32_t_defined)
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) >= 0x7fffffff
 | 
				
			||||||
 | 
					#define INT_FAST32_MIN	(-__STDINT_EXP(INT_MAX)-1)
 | 
				
			||||||
 | 
					#define INT_FAST32_MAX	__STDINT_EXP(INT_MAX)
 | 
				
			||||||
 | 
					#define UINT_FAST32_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT_FAST32_MIN	INT_LEAST32_MIN
 | 
				
			||||||
 | 
					#define INT_FAST32_MAX	INT_LEAST32_MAX
 | 
				
			||||||
 | 
					#define UINT_FAST32_MAX	UINT_LEAST32_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT_FAST64_MAX__
 | 
				
			||||||
 | 
					#define INT_FAST64_MIN (-__INT_FAST64_MAX__ - 1)
 | 
				
			||||||
 | 
					#define INT_FAST64_MAX __INT_FAST64_MAX__
 | 
				
			||||||
 | 
					#define UINT_FAST64_MAX __UINT_FAST64_MAX__
 | 
				
			||||||
 | 
					#elif defined(__int_fast64_t_defined)
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) > 0x7fffffff
 | 
				
			||||||
 | 
					#define INT_FAST64_MIN	(-__STDINT_EXP(INT_MAX)-1)
 | 
				
			||||||
 | 
					#define INT_FAST64_MAX	__STDINT_EXP(INT_MAX)
 | 
				
			||||||
 | 
					#define UINT_FAST64_MAX	(__STDINT_EXP(INT_MAX)*2U+1U)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT_FAST64_MIN	INT_LEAST64_MIN
 | 
				
			||||||
 | 
					#define INT_FAST64_MAX	INT_LEAST64_MAX
 | 
				
			||||||
 | 
					#define UINT_FAST64_MAX	UINT_LEAST64_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INTMAX_MAX__
 | 
				
			||||||
 | 
					#define INTMAX_MAX __INTMAX_MAX__
 | 
				
			||||||
 | 
					#define INTMAX_MIN (-INTMAX_MAX - 1)
 | 
				
			||||||
 | 
					#elif defined(__INTMAX_TYPE__)
 | 
				
			||||||
 | 
					/* All relevant GCC versions prefer long to long long for intmax_t.  */
 | 
				
			||||||
 | 
					#define INTMAX_MAX INT64_MAX
 | 
				
			||||||
 | 
					#define INTMAX_MIN INT64_MIN
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __UINTMAX_MAX__
 | 
				
			||||||
 | 
					#define UINTMAX_MAX __UINTMAX_MAX__
 | 
				
			||||||
 | 
					#elif defined(__UINTMAX_TYPE__)
 | 
				
			||||||
 | 
					/* All relevant GCC versions prefer long to long long for intmax_t.  */
 | 
				
			||||||
 | 
					#define UINTMAX_MAX UINT64_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This must match size_t in stddef.h, currently long unsigned int */
 | 
				
			||||||
 | 
					#ifdef __SIZE_MAX__
 | 
				
			||||||
 | 
					#define SIZE_MAX __SIZE_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define SIZE_MAX (__STDINT_EXP(LONG_MAX) * 2UL + 1)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This must match sig_atomic_t in <signal.h> (currently int) */
 | 
				
			||||||
 | 
					#define SIG_ATOMIC_MIN (-__STDINT_EXP(INT_MAX) - 1)
 | 
				
			||||||
 | 
					#define SIG_ATOMIC_MAX __STDINT_EXP(INT_MAX)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This must match ptrdiff_t  in <stddef.h> (currently long int) */
 | 
				
			||||||
 | 
					#ifdef __PTRDIFF_MAX__
 | 
				
			||||||
 | 
					#define PTRDIFF_MAX __PTRDIFF_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define PTRDIFF_MAX __STDINT_EXP(LONG_MAX)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define PTRDIFF_MIN (-PTRDIFF_MAX - 1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This must match definition in <wchar.h> */
 | 
				
			||||||
 | 
					#ifndef WCHAR_MIN
 | 
				
			||||||
 | 
					#ifdef __WCHAR_MIN__
 | 
				
			||||||
 | 
					#define WCHAR_MIN __WCHAR_MIN__
 | 
				
			||||||
 | 
					#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0)
 | 
				
			||||||
 | 
					#define WCHAR_MIN (0 + L'\0')
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define WCHAR_MIN (-0x7fffffff - 1 + L'\0')
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This must match definition in <wchar.h> */
 | 
				
			||||||
 | 
					#ifndef WCHAR_MAX
 | 
				
			||||||
 | 
					#ifdef __WCHAR_MAX__
 | 
				
			||||||
 | 
					#define WCHAR_MAX __WCHAR_MAX__
 | 
				
			||||||
 | 
					#elif defined(__WCHAR_UNSIGNED__) || (L'\0' - 1 > 0)
 | 
				
			||||||
 | 
					#define WCHAR_MAX (0xffffffffu + L'\0')
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define WCHAR_MAX (0x7fffffff + L'\0')
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* wint_t is unsigned int on almost all GCC targets.  */
 | 
				
			||||||
 | 
					#ifdef __WINT_MAX__
 | 
				
			||||||
 | 
					#define WINT_MAX __WINT_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define WINT_MAX (__STDINT_EXP(INT_MAX) * 2U + 1U)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __WINT_MIN__
 | 
				
			||||||
 | 
					#define WINT_MIN __WINT_MIN__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define WINT_MIN 0U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Macros for minimum-width integer constant expressions */
 | 
				
			||||||
 | 
					#ifdef __INT8_C
 | 
				
			||||||
 | 
					#define INT8_C(x) __INT8_C(x)
 | 
				
			||||||
 | 
					#define UINT8_C(x) __UINT8_C(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT8_C(x)	x
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) > 0x7f
 | 
				
			||||||
 | 
					#define UINT8_C(x)	x
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define UINT8_C(x)	x##U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT16_C
 | 
				
			||||||
 | 
					#define INT16_C(x) __INT16_C(x)
 | 
				
			||||||
 | 
					#define UINT16_C(x) __UINT16_C(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT16_C(x)	x
 | 
				
			||||||
 | 
					#if __STDINT_EXP(INT_MAX) > 0x7fff
 | 
				
			||||||
 | 
					#define UINT16_C(x)	x
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define UINT16_C(x)	x##U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT32_C
 | 
				
			||||||
 | 
					#define INT32_C(x) __INT32_C(x)
 | 
				
			||||||
 | 
					#define UINT32_C(x) __UINT32_C(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if __have_long32
 | 
				
			||||||
 | 
					#define INT32_C(x)	x##L
 | 
				
			||||||
 | 
					#define UINT32_C(x)	x##UL
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT32_C(x)	x
 | 
				
			||||||
 | 
					#define UINT32_C(x)	x##U
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __INT64_C
 | 
				
			||||||
 | 
					#define INT64_C(x) __INT64_C(x)
 | 
				
			||||||
 | 
					#define UINT64_C(x) __UINT64_C(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if __int64_t_defined
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define INT64_C(x)	x##L
 | 
				
			||||||
 | 
					#define UINT64_C(x)	x##UL
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INT64_C(x)	x##LL
 | 
				
			||||||
 | 
					#define UINT64_C(x)	x##ULL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/** Macros for greatest-width integer constant expression */
 | 
				
			||||||
 | 
					#ifdef __INTMAX_C
 | 
				
			||||||
 | 
					#define INTMAX_C(x) __INTMAX_C(x)
 | 
				
			||||||
 | 
					#define UINTMAX_C(x) __UINTMAX_C(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if __have_long64
 | 
				
			||||||
 | 
					#define INTMAX_C(x)	x##L
 | 
				
			||||||
 | 
					#define UINTMAX_C(x)	x##UL
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define INTMAX_C(x)	x##LL
 | 
				
			||||||
 | 
					#define UINTMAX_C(x)	x##ULL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STDINT_H */
 | 
				
			||||||
							
								
								
									
										727
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/stdio.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										727
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/stdio.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,727 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 1990 The Regents of the University of California.
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms are permitted
 | 
				
			||||||
 | 
					 * provided that the above copyright notice and this paragraph are
 | 
				
			||||||
 | 
					 * duplicated in all such forms and that any documentation,
 | 
				
			||||||
 | 
					 * advertising materials, and other materials related to such
 | 
				
			||||||
 | 
					 * distribution and use acknowledge that the software was developed
 | 
				
			||||||
 | 
					 * by the University of California, Berkeley.  The name of the
 | 
				
			||||||
 | 
					 * University may not be used to endorse or promote products derived
 | 
				
			||||||
 | 
					 * from this software without specific prior written permission.
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 | 
				
			||||||
 | 
					 * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)stdio.h	5.3 (Berkeley) 3/15/86
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * NB: to fit things in six character monocase externals, the
 | 
				
			||||||
 | 
					 * stdio code uses the prefix `__s' for stdio objects, typically
 | 
				
			||||||
 | 
					 * followed by a three-character attempt at a mnemonic.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STDIO_H_
 | 
				
			||||||
 | 
					#define	_STDIO_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_FSTDIO			/* ``function stdio'' */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_NULL
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need___va_list
 | 
				
			||||||
 | 
					#include <stdarg.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * <sys/reent.h> defines __FILE, _fpos_t.
 | 
				
			||||||
 | 
					 * They must be defined there because struct _reent needs them (and we don't
 | 
				
			||||||
 | 
					 * want reent.h to include this file.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __FILE FILE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					typedef _fpos64_t fpos_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef _fpos_t fpos_t;
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					typedef _fpos64_t fpos64_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* !__CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	__SLBF	0x0001		/* line buffered */
 | 
				
			||||||
 | 
					#define	__SNBF	0x0002		/* unbuffered */
 | 
				
			||||||
 | 
					#define	__SRD	0x0004		/* OK to read */
 | 
				
			||||||
 | 
					#define	__SWR	0x0008		/* OK to write */
 | 
				
			||||||
 | 
						/* RD and WR are never simultaneously asserted */
 | 
				
			||||||
 | 
					#define	__SRW	0x0010		/* open for reading & writing */
 | 
				
			||||||
 | 
					#define	__SEOF	0x0020		/* found EOF */
 | 
				
			||||||
 | 
					#define	__SERR	0x0040		/* found error */
 | 
				
			||||||
 | 
					#define	__SMBF	0x0080		/* _buf is from malloc */
 | 
				
			||||||
 | 
					#define	__SAPP	0x0100		/* fdopen()ed in append mode - so must  write to end */
 | 
				
			||||||
 | 
					#define	__SSTR	0x0200		/* this is an sprintf/snprintf string */
 | 
				
			||||||
 | 
					#define	__SOPT	0x0400		/* do fseek() optimisation */
 | 
				
			||||||
 | 
					#define	__SNPT	0x0800		/* do not do fseek() optimisation */
 | 
				
			||||||
 | 
					#define	__SOFF	0x1000		/* set iff _offset is in fact correct */
 | 
				
			||||||
 | 
					#define	__SORD	0x2000		/* true => stream orientation (byte/wide) decided */
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#  define __SCLE  0x4000        /* convert line endings CR/LF <-> NL */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	__SL64	0x8000		/* is 64-bit offset large file */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* _flags2 flags */
 | 
				
			||||||
 | 
					#define	__SNLK  0x0001		/* stdio functions do not lock streams themselves */
 | 
				
			||||||
 | 
					#define	__SWID	0x2000		/* true => stream orientation wide, false => byte, only valid if __SORD in _flags is true */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The following three definitions are for ANSI C, which took them
 | 
				
			||||||
 | 
					 * from System V, which stupidly took internal interface macros and
 | 
				
			||||||
 | 
					 * made them official arguments to setvbuf(), without renaming them.
 | 
				
			||||||
 | 
					 * Hence, these ugly _IOxxx names are *supposed* to appear in user code.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Although these happen to match their counterparts above, the
 | 
				
			||||||
 | 
					 * implementation does not rely on that (so these could be renumbered).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	_IOFBF	0		/* setvbuf should set fully buffered */
 | 
				
			||||||
 | 
					#define	_IOLBF	1		/* setvbuf should set line buffered */
 | 
				
			||||||
 | 
					#define	_IONBF	2		/* setvbuf should set unbuffered */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	EOF	(-1)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __BUFSIZ__
 | 
				
			||||||
 | 
					#define	BUFSIZ		__BUFSIZ__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	BUFSIZ		1024
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __FOPEN_MAX__
 | 
				
			||||||
 | 
					#define FOPEN_MAX	__FOPEN_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	FOPEN_MAX	20
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __FILENAME_MAX__
 | 
				
			||||||
 | 
					#define FILENAME_MAX    __FILENAME_MAX__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	FILENAME_MAX	1024
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __L_tmpnam__
 | 
				
			||||||
 | 
					#define L_tmpnam	__L_tmpnam__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	L_tmpnam	FILENAME_MAX
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#define P_tmpdir        "/tmp"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef SEEK_SET
 | 
				
			||||||
 | 
					#define	SEEK_SET	0	/* set file offset to offset */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef SEEK_CUR
 | 
				
			||||||
 | 
					#define	SEEK_CUR	1	/* set file offset to current plus offset */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef SEEK_END
 | 
				
			||||||
 | 
					#define	SEEK_END	2	/* set file offset to EOF plus offset */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TMP_MAX		26
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	stdin	(_REENT->_stdin)
 | 
				
			||||||
 | 
					#define	stdout	(_REENT->_stdout)
 | 
				
			||||||
 | 
					#define	stderr	(_REENT->_stderr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _stdin_r(x)	((x)->_stdin)
 | 
				
			||||||
 | 
					#define _stdout_r(x)	((x)->_stdout)
 | 
				
			||||||
 | 
					#define _stderr_r(x)	((x)->_stderr)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Functions defined in ANSI C standard.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __VALIST
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					#define __VALIST __gnuc_va_list
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __VALIST char*
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILE *	_EXFUN(tmpfile, (void));
 | 
				
			||||||
 | 
					char *	_EXFUN(tmpnam, (char *));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
 | 
				
			||||||
 | 
					char *	_EXFUN(tempnam, (const char *, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(fclose, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fflush, (FILE *));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(freopen, (const char *__restrict, const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					void	_EXFUN(setbuf, (FILE *__restrict, char *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(setvbuf, (FILE *__restrict, char *__restrict, int, size_t));
 | 
				
			||||||
 | 
					int	_EXFUN(fprintf, (FILE *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(fscanf, (FILE *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(printf, (const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 1, 2))));
 | 
				
			||||||
 | 
					int	_EXFUN(scanf, (const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 1, 2))));
 | 
				
			||||||
 | 
					int	_EXFUN(sscanf, (const char *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(vfprintf, (FILE *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vprintf, (const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 1, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsprintf, (char *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(fgetc, (FILE *));
 | 
				
			||||||
 | 
					char *  _EXFUN(fgets, (char *__restrict, int, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(fputc, (int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fputs, (const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(getc, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(getchar, (void));
 | 
				
			||||||
 | 
					char *  _EXFUN(gets, (char *));
 | 
				
			||||||
 | 
					int	_EXFUN(putc, (int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(putchar, (int));
 | 
				
			||||||
 | 
					int	_EXFUN(puts, (const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(ungetc, (int, FILE *));
 | 
				
			||||||
 | 
					size_t	_EXFUN(fread, (_PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					size_t	_EXFUN(fwrite, (const _PTR __restrict , size_t _size, size_t _n, FILE *));
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(fgetpos, (FILE *, _fpos_t *));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					int	_EXFUN(fgetpos, (FILE *__restrict, fpos_t *__restrict));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(fseek, (FILE *, long, int));
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(fsetpos, (FILE *, const _fpos_t *));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					int	_EXFUN(fsetpos, (FILE *, const fpos_t *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					long	_EXFUN(ftell, ( FILE *));
 | 
				
			||||||
 | 
					void	_EXFUN(rewind, (FILE *));
 | 
				
			||||||
 | 
					void	_EXFUN(clearerr, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(feof, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(ferror, (FILE *));
 | 
				
			||||||
 | 
					void    _EXFUN(perror, (const char *));
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					FILE *	_EXFUN(fopen, (const char *__restrict _name, const char *__restrict _type));
 | 
				
			||||||
 | 
					int	_EXFUN(sprintf, (char *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(remove, (const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(rename, (const char *, const char *));
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(_rename, (const char *, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || defined(__USE_XOPEN2K)
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(fseeko, (FILE *, _off_t, int));
 | 
				
			||||||
 | 
					_off_t	_EXFUN(ftello, ( FILE *));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					int	_EXFUN(fseeko, (FILE *, off_t, int));
 | 
				
			||||||
 | 
					off_t	_EXFUN(ftello, ( FILE *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					int	_EXFUN(fcloseall, (_VOID));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L) || (__cplusplus >= 201103L)
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					int	_EXFUN(asiprintf, (char **, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					char *	_EXFUN(asniprintf, (char *, size_t *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					char *	_EXFUN(asnprintf, (char *__restrict, size_t *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(asprintf, (char **__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					#ifndef diprintf
 | 
				
			||||||
 | 
					int	_EXFUN(diprintf, (int, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(fiprintf, (FILE *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(fiscanf, (FILE *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(iprintf, (const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 1, 2))));
 | 
				
			||||||
 | 
					int	_EXFUN(iscanf, (const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 1, 2))));
 | 
				
			||||||
 | 
					int	_EXFUN(siprintf, (char *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(siscanf, (const char *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(snprintf, (char *__restrict, size_t, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(sniprintf, (char *, size_t, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(vasiprintf, (char **, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					char *	_EXFUN(vasniprintf, (char *, size_t *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					char *	_EXFUN(vasnprintf, (char *, size_t *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vasprintf, (char **, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vdiprintf, (int, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vfiprintf, (FILE *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vfiscanf, (FILE *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vfscanf, (FILE *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(viprintf, (const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 1, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(viscanf, (const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 1, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vscanf, (const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 1, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsiprintf, (char *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsiscanf, (const char *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsniprintf, (char *, size_t, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsnprintf, (char *__restrict, size_t, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(vsscanf, (const char *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					#endif /* !_REENT_ONLY */
 | 
				
			||||||
 | 
					#endif /* !__STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Routines in POSIX 1003.1:2001.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					FILE *	_EXFUN(fdopen, (int, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(fileno, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(getw, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(pclose, (FILE *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(popen, (const char *, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(putw, (int, FILE *));
 | 
				
			||||||
 | 
					void    _EXFUN(setbuffer, (FILE *, char *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(setlinebuf, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(getc_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(getchar_unlocked, (void));
 | 
				
			||||||
 | 
					void	_EXFUN(flockfile, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(ftrylockfile, (FILE *));
 | 
				
			||||||
 | 
					void	_EXFUN(funlockfile, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(putc_unlocked, (int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(putchar_unlocked, (int));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Routines in POSIX 1003.1:200x.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					# ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#  ifndef dprintf
 | 
				
			||||||
 | 
					int	_EXFUN(dprintf, (int, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					#  endif
 | 
				
			||||||
 | 
					FILE *	_EXFUN(fmemopen, (void *__restrict, size_t, const char *__restrict));
 | 
				
			||||||
 | 
					/* getdelim - see __getdelim for now */
 | 
				
			||||||
 | 
					/* getline - see __getline for now */
 | 
				
			||||||
 | 
					FILE *	_EXFUN(open_memstream, (char **, size_t *));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809
 | 
				
			||||||
 | 
					int	_EXFUN(renameat, (int, const char *, int, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(vdprintf, (int, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Recursive versions of the above.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(_asiprintf_r, (struct _reent *, char **, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					char *	_EXFUN(_asniprintf_r, (struct _reent *, char *, size_t *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 5))));
 | 
				
			||||||
 | 
					char *	_EXFUN(_asnprintf_r, (struct _reent *, char *__restrict, size_t *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 5))));
 | 
				
			||||||
 | 
					int	_EXFUN(_asprintf_r, (struct _reent *, char **__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_diprintf_r, (struct _reent *, int, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_dprintf_r, (struct _reent *, int, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_fclose_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fcloseall_r, (struct _reent *));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_fdopen_r, (struct _reent *, int, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fflush_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fgetc_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fgetc_unlocked_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					char *  _EXFUN(_fgets_r, (struct _reent *, char *__restrict, int, FILE *__restrict));
 | 
				
			||||||
 | 
					char *  _EXFUN(_fgets_unlocked_r, (struct _reent *, char *__restrict, int, FILE *__restrict));
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(_fgetpos_r, (struct _reent *, FILE *__restrict, _fpos_t *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(_fsetpos_r, (struct _reent *, FILE *, const _fpos_t *));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					int	_EXFUN(_fgetpos_r, (struct _reent *, FILE *, fpos_t *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fsetpos_r, (struct _reent *, FILE *, const fpos_t *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(_fiprintf_r, (struct _reent *, FILE *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_fiscanf_r, (struct _reent *, FILE *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 4))));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_fmemopen_r, (struct _reent *, void *__restrict, size_t, const char *__restrict));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_fopen_r, (struct _reent *, const char *__restrict, const char *__restrict));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_freopen_r, (struct _reent *, const char *__restrict, const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(_fprintf_r, (struct _reent *, FILE *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_fpurge_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fputc_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fputc_unlocked_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_fputs_r, (struct _reent *, const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(_fputs_unlocked_r, (struct _reent *, const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_fread_r, (struct _reent *, _PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_fread_unlocked_r, (struct _reent *, _PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(_fscanf_r, (struct _reent *, FILE *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_fseek_r, (struct _reent *, FILE *, long, int));
 | 
				
			||||||
 | 
					int	_EXFUN(_fseeko_r,(struct _reent *, FILE *, _off_t, int));
 | 
				
			||||||
 | 
					long	_EXFUN(_ftell_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					_off_t	_EXFUN(_ftello_r,(struct _reent *, FILE *));
 | 
				
			||||||
 | 
					void	_EXFUN(_rewind_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_fwrite_r, (struct _reent *, const _PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_fwrite_unlocked_r, (struct _reent *, const _PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(_getc_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_getc_unlocked_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_getchar_r, (struct _reent *));
 | 
				
			||||||
 | 
					int	_EXFUN(_getchar_unlocked_r, (struct _reent *));
 | 
				
			||||||
 | 
					char *	_EXFUN(_gets_r, (struct _reent *, char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_iprintf_r, (struct _reent *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(_iscanf_r, (struct _reent *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_open_memstream_r, (struct _reent *, char **, size_t *));
 | 
				
			||||||
 | 
					void	_EXFUN(_perror_r, (struct _reent *, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_printf_r, (struct _reent *, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(_putc_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_putc_unlocked_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_putchar_unlocked_r, (struct _reent *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(_putchar_r, (struct _reent *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(_puts_r, (struct _reent *, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_remove_r, (struct _reent *, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_rename_r, (struct _reent *,
 | 
				
			||||||
 | 
								   const char *_old, const char *_new));
 | 
				
			||||||
 | 
					int	_EXFUN(_scanf_r, (struct _reent *, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 3))));
 | 
				
			||||||
 | 
					int	_EXFUN(_siprintf_r, (struct _reent *, char *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_siscanf_r, (struct _reent *, const char *, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_sniprintf_r, (struct _reent *, char *, size_t, const char *, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 5))));
 | 
				
			||||||
 | 
					int	_EXFUN(_snprintf_r, (struct _reent *, char *__restrict, size_t, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 5))));
 | 
				
			||||||
 | 
					int	_EXFUN(_sprintf_r, (struct _reent *, char *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 4))));
 | 
				
			||||||
 | 
					int	_EXFUN(_sscanf_r, (struct _reent *, const char *__restrict, const char *__restrict, ...)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 4))));
 | 
				
			||||||
 | 
					char *	_EXFUN(_tempnam_r, (struct _reent *, const char *, const char *));
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_tmpfile_r, (struct _reent *));
 | 
				
			||||||
 | 
					char *	_EXFUN(_tmpnam_r, (struct _reent *, char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_ungetc_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(_vasiprintf_r, (struct _reent *, char **, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					char *	_EXFUN(_vasniprintf_r, (struct _reent*, char *, size_t *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 0))));
 | 
				
			||||||
 | 
					char *	_EXFUN(_vasnprintf_r, (struct _reent*, char *, size_t *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vasprintf_r, (struct _reent *, char **, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vdiprintf_r, (struct _reent *, int, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vdprintf_r, (struct _reent *, int, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vfiprintf_r, (struct _reent *, FILE *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vfiscanf_r, (struct _reent *, FILE *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vfprintf_r, (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vfscanf_r, (struct _reent *, FILE *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_viprintf_r, (struct _reent *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_viscanf_r, (struct _reent *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vprintf_r, (struct _reent *, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vscanf_r, (struct _reent *, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 2, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsiprintf_r, (struct _reent *, char *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsiscanf_r, (struct _reent *, const char *, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsniprintf_r, (struct _reent *, char *, size_t, const char *, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsnprintf_r, (struct _reent *, char *__restrict, size_t, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 4, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsprintf_r, (struct _reent *, char *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__printf__, 3, 0))));
 | 
				
			||||||
 | 
					int	_EXFUN(_vsscanf_r, (struct _reent *, const char *__restrict, const char *__restrict, __VALIST)
 | 
				
			||||||
 | 
					               _ATTRIBUTE ((__format__ (__scanf__, 3, 0))));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Other extensions.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(fpurge, (FILE *));
 | 
				
			||||||
 | 
					ssize_t _EXFUN(__getdelim, (char **, size_t *, int, FILE *));
 | 
				
			||||||
 | 
					ssize_t _EXFUN(__getline, (char **, size_t *, FILE *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					void	_EXFUN(clearerr_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(feof_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(ferror_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fileno_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fflush_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fgetc_unlocked, (FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(fputc_unlocked, (int, FILE *));
 | 
				
			||||||
 | 
					size_t	_EXFUN(fread_unlocked, (_PTR __restrict, size_t _size, size_t _n, FILE *__restrict));
 | 
				
			||||||
 | 
					size_t	_EXFUN(fwrite_unlocked, (const _PTR __restrict , size_t _size, size_t _n, FILE *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					char *  _EXFUN(fgets_unlocked, (char *__restrict, int, FILE *__restrict));
 | 
				
			||||||
 | 
					int	_EXFUN(fputs_unlocked, (const char *__restrict, FILE *__restrict));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					#if !defined(__CYGWIN__) || defined(_COMPILING_NEWLIB)
 | 
				
			||||||
 | 
					FILE *	_EXFUN(fdopen64, (int, const char *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(fopen64, (const char *, const char *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(freopen64, (_CONST char *, _CONST char *, FILE *));
 | 
				
			||||||
 | 
					_off64_t _EXFUN(ftello64, (FILE *));
 | 
				
			||||||
 | 
					_off64_t _EXFUN(fseeko64, (FILE *, _off64_t, int));
 | 
				
			||||||
 | 
					int     _EXFUN(fgetpos64, (FILE *, _fpos64_t *));
 | 
				
			||||||
 | 
					int     _EXFUN(fsetpos64, (FILE *, const _fpos64_t *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(tmpfile64, (void));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					FILE *	_EXFUN(_fdopen64_r, (struct _reent *, int, const char *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(_fopen64_r, (struct _reent *,const char *, const char *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(_freopen64_r, (struct _reent *, _CONST char *, _CONST char *, FILE *));
 | 
				
			||||||
 | 
					_off64_t _EXFUN(_ftello64_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					_off64_t _EXFUN(_fseeko64_r, (struct _reent *, FILE *, _off64_t, int));
 | 
				
			||||||
 | 
					int     _EXFUN(_fgetpos64_r, (struct _reent *, FILE *, _fpos64_t *));
 | 
				
			||||||
 | 
					int     _EXFUN(_fsetpos64_r, (struct _reent *, FILE *, const _fpos64_t *));
 | 
				
			||||||
 | 
					FILE *  _EXFUN(_tmpfile64_r, (struct _reent *));
 | 
				
			||||||
 | 
					#endif /* !__CYGWIN__ */
 | 
				
			||||||
 | 
					#endif /* __LARGE64_FILES */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Routines internal to the implementation.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(__srget_r, (struct _reent *, FILE *));
 | 
				
			||||||
 | 
					int	_EXFUN(__swbuf_r, (struct _reent *, int, FILE *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Stdio function-access interface.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					# ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					FILE	*_EXFUN(funopen,(const _PTR __cookie,
 | 
				
			||||||
 | 
							int (*__readfn)(_PTR __c, char *__buf,
 | 
				
			||||||
 | 
									_READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							int (*__writefn)(_PTR __c, const char *__buf,
 | 
				
			||||||
 | 
									 _READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							_fpos64_t (*__seekfn)(_PTR __c, _fpos64_t __off, int __whence),
 | 
				
			||||||
 | 
							int (*__closefn)(_PTR __c)));
 | 
				
			||||||
 | 
					FILE	*_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie,
 | 
				
			||||||
 | 
							int (*__readfn)(_PTR __c, char *__buf,
 | 
				
			||||||
 | 
									_READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							int (*__writefn)(_PTR __c, const char *__buf,
 | 
				
			||||||
 | 
									 _READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							_fpos64_t (*__seekfn)(_PTR __c, _fpos64_t __off, int __whence),
 | 
				
			||||||
 | 
							int (*__closefn)(_PTR __c)));
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					FILE	*_EXFUN(funopen,(const _PTR __cookie,
 | 
				
			||||||
 | 
							int (*__readfn)(_PTR __cookie, char *__buf,
 | 
				
			||||||
 | 
									_READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							int (*__writefn)(_PTR __cookie, const char *__buf,
 | 
				
			||||||
 | 
									 _READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							fpos_t (*__seekfn)(_PTR __cookie, fpos_t __off, int __whence),
 | 
				
			||||||
 | 
							int (*__closefn)(_PTR __cookie)));
 | 
				
			||||||
 | 
					FILE	*_EXFUN(_funopen_r,(struct _reent *, const _PTR __cookie,
 | 
				
			||||||
 | 
							int (*__readfn)(_PTR __cookie, char *__buf,
 | 
				
			||||||
 | 
									_READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							int (*__writefn)(_PTR __cookie, const char *__buf,
 | 
				
			||||||
 | 
									 _READ_WRITE_BUFSIZE_TYPE __n),
 | 
				
			||||||
 | 
							fpos_t (*__seekfn)(_PTR __cookie, fpos_t __off, int __whence),
 | 
				
			||||||
 | 
							int (*__closefn)(_PTR __cookie)));
 | 
				
			||||||
 | 
					# endif /* !__LARGE64_FILES */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# define	fropen(__cookie, __fn) funopen(__cookie, __fn, (int (*)())0, \
 | 
				
			||||||
 | 
										       (fpos_t (*)())0, (int (*)())0)
 | 
				
			||||||
 | 
					# define	fwopen(__cookie, __fn) funopen(__cookie, (int (*)())0, __fn, \
 | 
				
			||||||
 | 
										       (fpos_t (*)())0, (int (*)())0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef ssize_t cookie_read_function_t(void *__cookie, char *__buf, size_t __n);
 | 
				
			||||||
 | 
					typedef ssize_t cookie_write_function_t(void *__cookie, const char *__buf,
 | 
				
			||||||
 | 
										size_t __n);
 | 
				
			||||||
 | 
					# ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					typedef int cookie_seek_function_t(void *__cookie, _off64_t *__off,
 | 
				
			||||||
 | 
									   int __whence);
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					typedef int cookie_seek_function_t(void *__cookie, off_t *__off, int __whence);
 | 
				
			||||||
 | 
					# endif /* !__LARGE64_FILES */
 | 
				
			||||||
 | 
					typedef int cookie_close_function_t(void *__cookie);
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* These four struct member names are dictated by Linux; hopefully,
 | 
				
			||||||
 | 
					     they don't conflict with any macros.  */
 | 
				
			||||||
 | 
					  cookie_read_function_t  *read;
 | 
				
			||||||
 | 
					  cookie_write_function_t *write;
 | 
				
			||||||
 | 
					  cookie_seek_function_t  *seek;
 | 
				
			||||||
 | 
					  cookie_close_function_t *close;
 | 
				
			||||||
 | 
					} cookie_io_functions_t;
 | 
				
			||||||
 | 
					FILE *_EXFUN(fopencookie,(void *__cookie,
 | 
				
			||||||
 | 
							const char *__mode, cookie_io_functions_t __functions));
 | 
				
			||||||
 | 
					FILE *_EXFUN(_fopencookie_r,(struct _reent *, void *__cookie,
 | 
				
			||||||
 | 
							const char *__mode, cookie_io_functions_t __functions));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CUSTOM_FILE_IO__
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The __sfoo macros are here so that we can 
 | 
				
			||||||
 | 
					 * define function versions in the C library.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define       __sgetc_raw_r(__ptr, __f) (--(__f)->_r < 0 ? __srget_r(__ptr, __f) : (int)(*(__f)->_p++))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __SCLE
 | 
				
			||||||
 | 
					/*  For a platform with CR/LF, additional logic is required by
 | 
				
			||||||
 | 
					  __sgetc_r which would otherwise simply be a macro; therefore we
 | 
				
			||||||
 | 
					  use an inlined function.  The function is only meant to be inlined
 | 
				
			||||||
 | 
					  in place as used and the function body should never be emitted.  
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  There are two possible means to this end when compiling with GCC,
 | 
				
			||||||
 | 
					  one when compiling with a standard C99 compiler, and for other
 | 
				
			||||||
 | 
					  compilers we're just stuck.  At the moment, this issue only
 | 
				
			||||||
 | 
					  affects the Cygwin target, so we'll most likely be using GCC. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int __sgetc_r(struct _reent *__ptr, FILE *__p)
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    int __c = __sgetc_raw_r(__ptr, __p);
 | 
				
			||||||
 | 
					    if ((__p->_flags & __SCLE) && (__c == '\r'))
 | 
				
			||||||
 | 
					      {
 | 
				
			||||||
 | 
					      int __c2 = __sgetc_raw_r(__ptr, __p);
 | 
				
			||||||
 | 
					      if (__c2 == '\n')
 | 
				
			||||||
 | 
					        __c = __c2;
 | 
				
			||||||
 | 
					      else
 | 
				
			||||||
 | 
					        ungetc(__c2, __p);
 | 
				
			||||||
 | 
					      }
 | 
				
			||||||
 | 
					    return __c;
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __sgetc_r(__ptr, __p) __sgetc_raw_r(__ptr, __p)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _never /* __GNUC__ */
 | 
				
			||||||
 | 
					/* If this inline is actually used, then systems using coff debugging
 | 
				
			||||||
 | 
					   info get hopelessly confused.  21sept93 rich@cygnus.com.  */
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int __sputc_r(struct _reent *_ptr, int _c, FILE *_p) {
 | 
				
			||||||
 | 
						if (--_p->_w >= 0 || (_p->_w >= _p->_lbfsize && (char)_c != '\n'))
 | 
				
			||||||
 | 
							return (*_p->_p++ = _c);
 | 
				
			||||||
 | 
						else
 | 
				
			||||||
 | 
							return (__swbuf_r(_ptr, _c, _p));
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This has been tuned to generate reasonable code on the vax using pcc
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define       __sputc_raw_r(__ptr, __c, __p) \
 | 
				
			||||||
 | 
						(--(__p)->_w < 0 ? \
 | 
				
			||||||
 | 
							(__p)->_w >= (__p)->_lbfsize ? \
 | 
				
			||||||
 | 
								(*(__p)->_p = (__c)), *(__p)->_p != '\n' ? \
 | 
				
			||||||
 | 
									(int)*(__p)->_p++ : \
 | 
				
			||||||
 | 
									__swbuf_r(__ptr, '\n', __p) : \
 | 
				
			||||||
 | 
								__swbuf_r(__ptr, (int)(__c), __p) : \
 | 
				
			||||||
 | 
							(*(__p)->_p = (__c), (int)*(__p)->_p++))
 | 
				
			||||||
 | 
					#ifdef __SCLE
 | 
				
			||||||
 | 
					#define __sputc_r(__ptr, __c, __p) \
 | 
				
			||||||
 | 
					        ((((__p)->_flags & __SCLE) && ((__c) == '\n')) \
 | 
				
			||||||
 | 
					          ? __sputc_raw_r(__ptr, '\r', (__p)) : 0 , \
 | 
				
			||||||
 | 
					        __sputc_raw_r((__ptr), (__c), (__p)))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __sputc_r(__ptr, __c, __p) __sputc_raw_r(__ptr, __c, __p)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	__sfeof(p)	((int)(((p)->_flags & __SEOF) != 0))
 | 
				
			||||||
 | 
					#define	__sferror(p)	((int)(((p)->_flags & __SERR) != 0))
 | 
				
			||||||
 | 
					#define	__sclearerr(p)	((void)((p)->_flags &= ~(__SERR|__SEOF)))
 | 
				
			||||||
 | 
					#define	__sfileno(p)	((p)->_file)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					#define	feof(p)		__sfeof(p)
 | 
				
			||||||
 | 
					#define	ferror(p)	__sferror(p)
 | 
				
			||||||
 | 
					#define	clearerr(p)	__sclearerr(p)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					#define	feof_unlocked(p)	__sfeof(p)
 | 
				
			||||||
 | 
					#define	ferror_unlocked(p)	__sferror(p)
 | 
				
			||||||
 | 
					#define	clearerr_unlocked(p)	__sclearerr(p)
 | 
				
			||||||
 | 
					#endif /* __BSD_VISIBLE */
 | 
				
			||||||
 | 
					#endif /* _REENT_SMALL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if 0 /*ndef __STRICT_ANSI__ - FIXME: must initialize stdio first, use fn */
 | 
				
			||||||
 | 
					#define	fileno(p)	__sfileno(p)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					#ifndef lint
 | 
				
			||||||
 | 
					#define	getc(fp)	__sgetc_r(_REENT, fp)
 | 
				
			||||||
 | 
					#define putc(x, fp)	__sputc_r(_REENT, x, fp)
 | 
				
			||||||
 | 
					#endif /* lint */
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					/* fast always-buffered version, true iff error */
 | 
				
			||||||
 | 
					#define	fast_putc(x,p) (--(p)->_w < 0 ? \
 | 
				
			||||||
 | 
						__swbuf_r(_REENT, (int)(x), p) == EOF : (*(p)->_p = (x), (p)->_p++, 0))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	L_cuserid	9		/* posix says it goes in stdio.h :( */
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#define L_ctermid       16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !__CUSTOM_FILE_IO__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	getchar()	getc(stdin)
 | 
				
			||||||
 | 
					#define	putchar(x)	putc(x, stdout)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#define	getchar_unlocked()	getc_unlocked(stdin)
 | 
				
			||||||
 | 
					#define	putchar_unlocked(x)	putc_unlocked(x, stdout)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STDIO_H_ */
 | 
				
			||||||
							
								
								
									
										79
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/stdio_ext.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										79
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/stdio_ext.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,79 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * stdio_ext.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Definitions for I/O internal operations, originally from Solaris.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STDIO_EXT_H_
 | 
				
			||||||
 | 
					#define _STDIO_EXT_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __rtems__
 | 
				
			||||||
 | 
					#error "<stdio_ext.h> not supported"
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <stdio.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	FSETLOCKING_QUERY	0
 | 
				
			||||||
 | 
					#define	FSETLOCKING_INTERNAL	1
 | 
				
			||||||
 | 
					#define	FSETLOCKING_BYCALLER	2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	 _EXFUN(__fpurge,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__fsetlocking,(FILE *, int));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* TODO:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   void _flushlbf (void);
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef  __GNUC__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE size_t
 | 
				
			||||||
 | 
					__fbufsize (FILE *__fp) { return (size_t) __fp->_bf._size; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int
 | 
				
			||||||
 | 
					__freading (FILE *__fp) { return (__fp->_flags & __SRD) != 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int
 | 
				
			||||||
 | 
					__fwriting (FILE *__fp) { return (__fp->_flags & __SWR) != 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int
 | 
				
			||||||
 | 
					__freadable (FILE *__fp) { return (__fp->_flags & (__SRD | __SRW)) != 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int
 | 
				
			||||||
 | 
					__fwritable (FILE *__fp) { return (__fp->_flags & (__SWR | __SRW)) != 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE int
 | 
				
			||||||
 | 
					__flbf (FILE *__fp) { return (__fp->_flags & __SLBF) != 0; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_ELIDABLE_INLINE size_t
 | 
				
			||||||
 | 
					__fpending (FILE *__fp) { return __fp->_p - __fp->_bf._base; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					size_t	 _EXFUN(__fbufsize,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__freading,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__fwriting,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__freadable,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__fwritable,(FILE *));
 | 
				
			||||||
 | 
					int	 _EXFUN(__flbf,(FILE *));
 | 
				
			||||||
 | 
					size_t	 _EXFUN(__fpending,(FILE *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __cplusplus
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __fbufsize(__fp) ((size_t) (__fp)->_bf._size)
 | 
				
			||||||
 | 
					#define __freading(__fp) (((__fp)->_flags & __SRD) != 0)
 | 
				
			||||||
 | 
					#define __fwriting(__fp) (((__fp)->_flags & __SWR) != 0)
 | 
				
			||||||
 | 
					#define __freadable(__fp) (((__fp)->_flags & (__SRD | __SRW)) != 0)
 | 
				
			||||||
 | 
					#define __fwritable(__fp) (((__fp)->_flags & (__SWR | __SRW)) != 0)
 | 
				
			||||||
 | 
					#define __flbf(__fp) (((__fp)->_flags & __SLBF) != 0)
 | 
				
			||||||
 | 
					#define __fpending(__fp) ((size_t) ((__fp)->_p - (__fp)->_bf._base))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __cplusplus */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __GNUC__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STDIO_EXT_H_ */
 | 
				
			||||||
							
								
								
									
										297
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										297
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/stdlib.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,297 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * stdlib.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Definitions for common types, variables, and functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STDLIB_H_
 | 
				
			||||||
 | 
					#define _STDLIB_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/ieeefp.h>
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_wchar_t
 | 
				
			||||||
 | 
					#define __need_NULL
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <machine/stdlib.h>
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#include <alloca.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <cygwin/stdlib.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int quot; /* quotient */
 | 
				
			||||||
 | 
					  int rem; /* remainder */
 | 
				
			||||||
 | 
					} div_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  long quot; /* quotient */
 | 
				
			||||||
 | 
					  long rem; /* remainder */
 | 
				
			||||||
 | 
					} ldiv_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  long long int quot; /* quotient */
 | 
				
			||||||
 | 
					  long long int rem; /* remainder */
 | 
				
			||||||
 | 
					} lldiv_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __compar_fn_t_defined
 | 
				
			||||||
 | 
					#define __compar_fn_t_defined
 | 
				
			||||||
 | 
					typedef int (*__compar_fn_t) (const _PTR, const _PTR);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef NULL
 | 
				
			||||||
 | 
					#define NULL 0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define EXIT_FAILURE 1
 | 
				
			||||||
 | 
					#define EXIT_SUCCESS 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define RAND_MAX __RAND_MAX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(__locale_mb_cur_max,(_VOID));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MB_CUR_MAX __locale_mb_cur_max()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_VOID	_EXFUN(abort,(_VOID) _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					int	_EXFUN(abs,(int));
 | 
				
			||||||
 | 
					int	_EXFUN(atexit,(_VOID (*__func)(_VOID)));
 | 
				
			||||||
 | 
					double	_EXFUN(atof,(const char *__nptr));
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					float	_EXFUN(atoff,(const char *__nptr));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(atoi,(const char *__nptr));
 | 
				
			||||||
 | 
					int	_EXFUN(_atoi_r,(struct _reent *, const char *__nptr));
 | 
				
			||||||
 | 
					long	_EXFUN(atol,(const char *__nptr));
 | 
				
			||||||
 | 
					long	_EXFUN(_atol_r,(struct _reent *, const char *__nptr));
 | 
				
			||||||
 | 
					_PTR	_EXFUN(bsearch,(const _PTR __key,
 | 
				
			||||||
 | 
							       const _PTR __base,
 | 
				
			||||||
 | 
							       size_t __nmemb,
 | 
				
			||||||
 | 
							       size_t __size,
 | 
				
			||||||
 | 
							       __compar_fn_t _compar));
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(calloc,(size_t __nmemb, size_t __size));
 | 
				
			||||||
 | 
					div_t	_EXFUN(div,(int __numer, int __denom));
 | 
				
			||||||
 | 
					_VOID	_EXFUN(exit,(int __status) _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					_VOID	_EXFUN_NOTHROW(free,(_PTR));
 | 
				
			||||||
 | 
					char *  _EXFUN(getenv,(const char *__string));
 | 
				
			||||||
 | 
					char *	_EXFUN(_getenv_r,(struct _reent *, const char *__string));
 | 
				
			||||||
 | 
					char *	_EXFUN(_findenv,(_CONST char *, int *));
 | 
				
			||||||
 | 
					char *	_EXFUN(_findenv_r,(struct _reent *, _CONST char *, int *));
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					extern char *suboptarg;			/* getsubopt(3) external variable */
 | 
				
			||||||
 | 
					int	_EXFUN(getsubopt,(char **, char * const *, char **));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					long	_EXFUN(labs,(long));
 | 
				
			||||||
 | 
					ldiv_t	_EXFUN(ldiv,(long __numer, long __denom));
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(malloc,(size_t __size));
 | 
				
			||||||
 | 
					int	_EXFUN(mblen,(const char *, size_t));
 | 
				
			||||||
 | 
					int	_EXFUN(_mblen_r,(struct _reent *, const char *, size_t, _mbstate_t *));
 | 
				
			||||||
 | 
					int	_EXFUN(mbtowc,(wchar_t *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					int	_EXFUN(_mbtowc_r,(struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *));
 | 
				
			||||||
 | 
					int	_EXFUN(wctomb,(char *, wchar_t));
 | 
				
			||||||
 | 
					int	_EXFUN(_wctomb_r,(struct _reent *, char *, wchar_t, _mbstate_t *));
 | 
				
			||||||
 | 
					size_t	_EXFUN(mbstowcs,(wchar_t *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_mbstowcs_r,(struct _reent *, wchar_t *__restrict, const char *__restrict, size_t, _mbstate_t *));
 | 
				
			||||||
 | 
					size_t	_EXFUN(wcstombs,(char *__restrict, const wchar_t *__restrict, size_t));
 | 
				
			||||||
 | 
					size_t	_EXFUN(_wcstombs_r,(struct _reent *, char *__restrict, const wchar_t *__restrict, size_t, _mbstate_t *));
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					char *	_EXFUN(mkdtemp,(char *));
 | 
				
			||||||
 | 
					int	_EXFUN(mkostemp,(char *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(mkostemps,(char *, int, int));
 | 
				
			||||||
 | 
					int	_EXFUN(mkstemp,(char *));
 | 
				
			||||||
 | 
					int	_EXFUN(mkstemps,(char *, int));
 | 
				
			||||||
 | 
					#if (__GNUC__ < 4) || defined(__XTENSA__)
 | 
				
			||||||
 | 
					char *	_EXFUN(mktemp,(char *));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					char *	_EXFUN(mktemp,(char *) _ATTRIBUTE ((__warning__ ("the use of `mktemp' is dangerous; use `mkstemp' instead"))));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *	_EXFUN(_mkdtemp_r, (struct _reent *, char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_mkostemp_r, (struct _reent *, char *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(_mkostemps_r, (struct _reent *, char *, int, int));
 | 
				
			||||||
 | 
					int	_EXFUN(_mkstemp_r, (struct _reent *, char *));
 | 
				
			||||||
 | 
					int	_EXFUN(_mkstemps_r, (struct _reent *, char *, int));
 | 
				
			||||||
 | 
					#if (__GNUC__ < 4) || defined(__XTENSA__)
 | 
				
			||||||
 | 
					char *	_EXFUN(_mktemp_r, (struct _reent *, char *)); 
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					char *	_EXFUN(_mktemp_r, (struct _reent *, char *) _ATTRIBUTE ((__warning__ ("the use of `mktemp' is dangerous; use `mkstemp' instead"))));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					_VOID	_EXFUN(qsort,(_PTR __base, size_t __nmemb, size_t __size, __compar_fn_t _compar));
 | 
				
			||||||
 | 
					int	_EXFUN(rand,(_VOID));
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(realloc,(_PTR __r, size_t __size));
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					_PTR	_EXFUN(reallocf,(_PTR __r, size_t __size));
 | 
				
			||||||
 | 
					char *	_EXFUN(realpath, (const char *__restrict path, char *__restrict resolved_path));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					_VOID	_EXFUN(srand,(unsigned __seed));
 | 
				
			||||||
 | 
					double	_EXFUN(strtod,(const char *__restrict __n, char **__restrict __end_PTR));
 | 
				
			||||||
 | 
					double	_EXFUN(_strtod_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR));
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					float	_EXFUN(strtof,(const char *__restrict __n, char **__restrict __end_PTR));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					/* the following strtodf interface is deprecated...use strtof instead */
 | 
				
			||||||
 | 
					# ifndef strtodf 
 | 
				
			||||||
 | 
					#  define strtodf strtof
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					long	_EXFUN(strtol,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					long	_EXFUN(_strtol_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					unsigned long _EXFUN(strtoul,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					unsigned long _EXFUN(_strtoul_r,(struct _reent *,const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(system,(const char *__string));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					long    _EXFUN(a64l,(const char *__input));
 | 
				
			||||||
 | 
					char *  _EXFUN(l64a,(long __input));
 | 
				
			||||||
 | 
					char *  _EXFUN(_l64a_r,(struct _reent *,long __input));
 | 
				
			||||||
 | 
					int	_EXFUN(on_exit,(_VOID (*__func)(int, _PTR),_PTR __arg));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					_VOID	_EXFUN(_Exit,(int __status) _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					int	_EXFUN(putenv,(char *__string));
 | 
				
			||||||
 | 
					int	_EXFUN(_putenv_r,(struct _reent *, char *__string));
 | 
				
			||||||
 | 
					_PTR	_EXFUN(_reallocf_r,(struct _reent *, _PTR, size_t));
 | 
				
			||||||
 | 
					int	_EXFUN(setenv,(const char *__string, const char *__value, int __overwrite));
 | 
				
			||||||
 | 
					int	_EXFUN(_setenv_r,(struct _reent *, const char *__string, const char *__value, int __overwrite));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char *	_EXFUN(gcvt,(double,int,char *));
 | 
				
			||||||
 | 
					char *	_EXFUN(gcvtf,(float,int,char *));
 | 
				
			||||||
 | 
					char *	_EXFUN(fcvt,(double,int,int *,int *));
 | 
				
			||||||
 | 
					char *	_EXFUN(fcvtf,(float,int,int *,int *));
 | 
				
			||||||
 | 
					char *	_EXFUN(ecvt,(double,int,int *,int *));
 | 
				
			||||||
 | 
					char *	_EXFUN(ecvtbuf,(double, int, int*, int*, char *));
 | 
				
			||||||
 | 
					char *	_EXFUN(fcvtbuf,(double, int, int*, int*, char *));
 | 
				
			||||||
 | 
					char *	_EXFUN(ecvtf,(float,int,int *,int *));
 | 
				
			||||||
 | 
					char *	_EXFUN(dtoa,(double, int, int, int *, int*, char**));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *	_EXFUN(__itoa,(int, char *, int));
 | 
				
			||||||
 | 
					char *	_EXFUN(__utoa,(unsigned, char *, int));
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					char *	_EXFUN(itoa,(int, char *, int));
 | 
				
			||||||
 | 
					char *	_EXFUN(utoa,(unsigned, char *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(rand_r,(unsigned *__seed));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					double _EXFUN(drand48,(_VOID));
 | 
				
			||||||
 | 
					double _EXFUN(_drand48_r,(struct _reent *));
 | 
				
			||||||
 | 
					double _EXFUN(erand48,(unsigned short [3]));
 | 
				
			||||||
 | 
					double _EXFUN(_erand48_r,(struct _reent *, unsigned short [3]));
 | 
				
			||||||
 | 
					long   _EXFUN(jrand48,(unsigned short [3]));
 | 
				
			||||||
 | 
					long   _EXFUN(_jrand48_r,(struct _reent *, unsigned short [3]));
 | 
				
			||||||
 | 
					_VOID  _EXFUN(lcong48,(unsigned short [7]));
 | 
				
			||||||
 | 
					_VOID  _EXFUN(_lcong48_r,(struct _reent *, unsigned short [7]));
 | 
				
			||||||
 | 
					long   _EXFUN(lrand48,(_VOID));
 | 
				
			||||||
 | 
					long   _EXFUN(_lrand48_r,(struct _reent *));
 | 
				
			||||||
 | 
					long   _EXFUN(mrand48,(_VOID));
 | 
				
			||||||
 | 
					long   _EXFUN(_mrand48_r,(struct _reent *));
 | 
				
			||||||
 | 
					long   _EXFUN(nrand48,(unsigned short [3]));
 | 
				
			||||||
 | 
					long   _EXFUN(_nrand48_r,(struct _reent *, unsigned short [3]));
 | 
				
			||||||
 | 
					unsigned short *
 | 
				
			||||||
 | 
					       _EXFUN(seed48,(unsigned short [3]));
 | 
				
			||||||
 | 
					unsigned short *
 | 
				
			||||||
 | 
					       _EXFUN(_seed48_r,(struct _reent *, unsigned short [3]));
 | 
				
			||||||
 | 
					_VOID  _EXFUN(srand48,(long));
 | 
				
			||||||
 | 
					_VOID  _EXFUN(_srand48_r,(struct _reent *, long));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					long long _EXFUN(atoll,(const char *__nptr));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					long long _EXFUN(_atoll_r,(struct _reent *, const char *__nptr));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					long long _EXFUN(llabs,(long long));
 | 
				
			||||||
 | 
					lldiv_t	_EXFUN(lldiv,(long long __numer, long long __denom));
 | 
				
			||||||
 | 
					long long _EXFUN(strtoll,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					long long _EXFUN(_strtoll_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					unsigned long long _EXFUN(strtoull,(const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					unsigned long long _EXFUN(_strtoull_r,(struct _reent *, const char *__restrict __n, char **__restrict __end_PTR, int __base));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					_VOID	_EXFUN(cfree,(_PTR));
 | 
				
			||||||
 | 
					int	_EXFUN(unsetenv,(const char *__string));
 | 
				
			||||||
 | 
					int	_EXFUN(_unsetenv_r,(struct _reent *, const char *__string));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __rtems__
 | 
				
			||||||
 | 
					int _EXFUN(posix_memalign,(void **, size_t, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char *	_EXFUN(_dtoa_r,(struct _reent *, double, int, int, int *, int*, char**));
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(_malloc_r,(struct _reent *, size_t));
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(_calloc_r,(struct _reent *, size_t, size_t));
 | 
				
			||||||
 | 
					_VOID	_EXFUN_NOTHROW(_free_r,(struct _reent *, _PTR));
 | 
				
			||||||
 | 
					_PTR	_EXFUN_NOTHROW(_realloc_r,(struct _reent *, _PTR, size_t));
 | 
				
			||||||
 | 
					_VOID	_EXFUN(_mstats_r,(struct _reent *, char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(_system_r,(struct _reent *, const char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_VOID	_EXFUN(__eprintf,(const char *, const char *, unsigned int, const char *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* There are two common qsort_r variants.  If you request
 | 
				
			||||||
 | 
					   _BSD_SOURCE, you get the BSD version; otherwise you get the GNU
 | 
				
			||||||
 | 
					   version.  We want that #undef qsort_r will still let you
 | 
				
			||||||
 | 
					   invoke the underlying function, but that requires gcc support. */
 | 
				
			||||||
 | 
					#ifdef _BSD_SOURCE
 | 
				
			||||||
 | 
					# ifdef __GNUC__
 | 
				
			||||||
 | 
					_VOID	_EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR)))
 | 
				
			||||||
 | 
					             __asm__ (__ASMNAME ("__bsd_qsort_r"));
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					_VOID	_EXFUN(__bsd_qsort_r,(_PTR __base, size_t __nmemb, size_t __size, _PTR __thunk, int (*_compar)(_PTR, const _PTR, const _PTR)));
 | 
				
			||||||
 | 
					#  define qsort_r __bsd_qsort_r
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#elif __GNU_VISIBLE
 | 
				
			||||||
 | 
					_VOID	_EXFUN(qsort_r,(_PTR __base, size_t __nmemb, size_t __size, int (*_compar)(const _PTR, const _PTR, _PTR), _PTR __thunk));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* On platforms where long double equals double.  */
 | 
				
			||||||
 | 
					#ifdef _HAVE_LONG_DOUBLE
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || \
 | 
				
			||||||
 | 
					  (defined(__STDC_VERSION__) && __STDC_VERSION__ >= 199901L) || \
 | 
				
			||||||
 | 
					  (defined(__cplusplus) && __cplusplus >= 201103L)
 | 
				
			||||||
 | 
					extern long double strtold (const char *__restrict, char **__restrict);
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _HAVE_LONG_DOUBLE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STDLIB_H_ */
 | 
				
			||||||
							
								
								
									
										167
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/string.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										167
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/string.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,167 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * string.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Definitions for memory and string functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STRING_H_
 | 
				
			||||||
 | 
					#define	_STRING_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_NULL
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_PTR 	 _EXFUN(memchr,(const _PTR, int, size_t));
 | 
				
			||||||
 | 
					int 	 _EXFUN(memcmp,(const _PTR, const _PTR, size_t));
 | 
				
			||||||
 | 
					_PTR 	 _EXFUN(memcpy,(_PTR __restrict, const _PTR __restrict, size_t));
 | 
				
			||||||
 | 
					_PTR	 _EXFUN(memmove,(_PTR, const _PTR, size_t));
 | 
				
			||||||
 | 
					_PTR	 _EXFUN(memset,(_PTR, int, size_t));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strcat,(char *__restrict, const char *__restrict));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strchr,(const char *, int));
 | 
				
			||||||
 | 
					int	 _EXFUN(strcmp,(const char *, const char *));
 | 
				
			||||||
 | 
					int	 _EXFUN(strcoll,(const char *, const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strcpy,(char *__restrict, const char *__restrict));
 | 
				
			||||||
 | 
					size_t	 _EXFUN(strcspn,(const char *, const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strerror,(int));
 | 
				
			||||||
 | 
					size_t	 _EXFUN(strlen,(const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strncat,(char *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					int	 _EXFUN(strncmp,(const char *, const char *, size_t));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strncpy,(char *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strpbrk,(const char *, const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strrchr,(const char *, int));
 | 
				
			||||||
 | 
					size_t	 _EXFUN(strspn,(const char *, const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strstr,(const char *, const char *));
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					char 	*_EXFUN(strtok,(char *__restrict, const char *__restrict));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					size_t	 _EXFUN(strxfrm,(char *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE
 | 
				
			||||||
 | 
					char 	*_EXFUN(strtok_r,(char *__restrict, const char *__restrict, char **__restrict));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					int	 _EXFUN(bcmp,(const void *, const void *, size_t));
 | 
				
			||||||
 | 
					void	 _EXFUN(bcopy,(const void *, void *, size_t));
 | 
				
			||||||
 | 
					void	 _EXFUN(bzero,(void *, size_t));
 | 
				
			||||||
 | 
					int	 _EXFUN(ffs,(int));
 | 
				
			||||||
 | 
					char 	*_EXFUN(index,(const char *, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __XSI_VISIBLE
 | 
				
			||||||
 | 
					_PTR	 _EXFUN(memccpy,(_PTR __restrict, const _PTR __restrict, int, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					_PTR	 _EXFUN(mempcpy,(_PTR, const _PTR, size_t));
 | 
				
			||||||
 | 
					_PTR	 _EXFUN(memmem, (const _PTR, size_t, const _PTR, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					_PTR 	 _EXFUN(memrchr,(const _PTR, int, size_t));
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					_PTR 	 _EXFUN(rawmemchr,(const _PTR, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					char 	*_EXFUN(rindex,(const char *, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char 	*_EXFUN(stpcpy,(char *__restrict, const char *__restrict));
 | 
				
			||||||
 | 
					char 	*_EXFUN(stpncpy,(char *__restrict, const char *__restrict, size_t));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __POSIX_VISIBLE
 | 
				
			||||||
 | 
					int	 _EXFUN(strcasecmp,(const char *, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					char	*_EXFUN(strcasestr,(const char *, const char *));
 | 
				
			||||||
 | 
					char 	*_EXFUN(strchrnul,(const char *, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __XSI_VISIBLE >= 500
 | 
				
			||||||
 | 
					char 	*_EXFUN(strdup,(const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					char 	*_EXFUN(_strdup_r,(struct _reent *, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __XSI_VISIBLE >= 700
 | 
				
			||||||
 | 
					char 	*_EXFUN(strndup,(const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __STRICT_ANSI__
 | 
				
			||||||
 | 
					char 	*_EXFUN(_strndup_r,(struct _reent *, const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					int	 _EXFUN(ffsl,(long));
 | 
				
			||||||
 | 
					int	 _EXFUN(ffsll, (long long));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* There are two common strerror_r variants.  If you request
 | 
				
			||||||
 | 
					   _GNU_SOURCE, you get the GNU version; otherwise you get the POSIX
 | 
				
			||||||
 | 
					   version.  POSIX requires that #undef strerror_r will still let you
 | 
				
			||||||
 | 
					   invoke the underlying function, but that requires gcc support.  */
 | 
				
			||||||
 | 
					#if __GNU_VISIBLE
 | 
				
			||||||
 | 
					char	*_EXFUN(strerror_r,(int, char *, size_t));
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# ifdef __GNUC__
 | 
				
			||||||
 | 
					int	_EXFUN(strerror_r,(int, char *, size_t))
 | 
				
			||||||
 | 
					             __asm__ (__ASMNAME ("__xpg_strerror_r"));
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					int	_EXFUN(__xpg_strerror_r,(int, char *, size_t));
 | 
				
			||||||
 | 
					#  define strerror_r __xpg_strerror_r
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Reentrant version of strerror.  */
 | 
				
			||||||
 | 
					char *	_EXFUN(_strerror_r, (struct _reent *, int, int, int *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					size_t	_EXFUN(strlcat,(char *, const char *, size_t));
 | 
				
			||||||
 | 
					size_t	_EXFUN(strlcpy,(char *, const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __POSIX_VISIBLE
 | 
				
			||||||
 | 
					int	_EXFUN(strncasecmp,(const char *, const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || __POSIX_VISIBLE >= 200809 || \
 | 
				
			||||||
 | 
					    __XSI_VISIBLE >= 700
 | 
				
			||||||
 | 
					size_t	 _EXFUN(strnlen,(const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					char 	*_EXFUN(strsep,(char **, const char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The origin of these is unknown to me so I am conditionalizing them
 | 
				
			||||||
 | 
					 * on __STRICT_ANSI__. Finetuning this is definitely needed. --joel
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__)
 | 
				
			||||||
 | 
					char	*_EXFUN(strlwr,(char *));
 | 
				
			||||||
 | 
					char	*_EXFUN(strupr,(char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef DEFS_H	/* Kludge to work around problem compiling in gdb */
 | 
				
			||||||
 | 
					char	*_EXFUN(strsignal, (int __signo));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					int	_EXFUN(strtosigno, (const char *__name));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined _GNU_SOURCE && defined __GNUC__
 | 
				
			||||||
 | 
					#define strdupa(__s) \
 | 
				
			||||||
 | 
						(__extension__ ({const char *__in = (__s); \
 | 
				
			||||||
 | 
								 size_t __len = strlen (__in) + 1; \
 | 
				
			||||||
 | 
								 char * __out = (char *) __builtin_alloca (__len); \
 | 
				
			||||||
 | 
								 (char *) memcpy (__out, __in, __len);}))
 | 
				
			||||||
 | 
					#define strndupa(__s, __n) \
 | 
				
			||||||
 | 
						(__extension__ ({const char *__in = (__s); \
 | 
				
			||||||
 | 
								 size_t __len = strnlen (__in, (__n)) + 1; \
 | 
				
			||||||
 | 
								 char *__out = (char *) __builtin_alloca (__len); \
 | 
				
			||||||
 | 
								 __out[__len-1] = '\0'; \
 | 
				
			||||||
 | 
								 (char *) memcpy (__out, __in, __len-1);}))
 | 
				
			||||||
 | 
					#endif /* _GNU_SOURCE && __GNUC__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/string.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STRING_H_ */
 | 
				
			||||||
							
								
								
									
										35
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/strings.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										35
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/strings.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,35 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * strings.h
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Definitions for string operations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _STRINGS_H_
 | 
				
			||||||
 | 
					#define _STRINGS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/types.h> /* for size_t */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_BEGIN_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined __STRICT_ANSI__ && _POSIX_VERSION < 200809L
 | 
				
			||||||
 | 
					/* 
 | 
				
			||||||
 | 
					 * Marked LEGACY in Open Group Base Specifications Issue 6/IEEE Std 1003.1-2004
 | 
				
			||||||
 | 
					 * Removed from Open Group Base Specifications Issue 7/IEEE Std 1003.1-2008
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					int	 _EXFUN(bcmp,(const void *, const void *, size_t));
 | 
				
			||||||
 | 
					void	 _EXFUN(bcopy,(const void *, void *, size_t));
 | 
				
			||||||
 | 
					void	 _EXFUN(bzero,(void *, size_t));
 | 
				
			||||||
 | 
					char 	*_EXFUN(index,(const char *, int));
 | 
				
			||||||
 | 
					char 	*_EXFUN(rindex,(const char *, int));
 | 
				
			||||||
 | 
					#endif /* ! __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	 _EXFUN(ffs,(int));
 | 
				
			||||||
 | 
					int	 _EXFUN(strcasecmp,(const char *, const char *));
 | 
				
			||||||
 | 
					int	 _EXFUN(strncasecmp,(const char *, const char *, size_t));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_END_STD_C
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _STRINGS_H_ */
 | 
				
			||||||
							
								
								
									
										213
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										213
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/_default_fcntl.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,213 @@
 | 
				
			|||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_SYS__DEFAULT_FCNTL_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	_SYS__DEFAULT_FCNTL_H_
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#define	_FOPEN		(-1)	/* from sys/file.h, kernel use only */
 | 
				
			||||||
 | 
					#define	_FREAD		0x0001	/* read enabled */
 | 
				
			||||||
 | 
					#define	_FWRITE		0x0002	/* write enabled */
 | 
				
			||||||
 | 
					#define	_FAPPEND	0x0008	/* append (writes guaranteed at the end) */
 | 
				
			||||||
 | 
					#define	_FMARK		0x0010	/* internal; mark during gc() */
 | 
				
			||||||
 | 
					#define	_FDEFER		0x0020	/* internal; defer for next gc pass */
 | 
				
			||||||
 | 
					#define	_FASYNC		0x0040	/* signal pgrp when data ready */
 | 
				
			||||||
 | 
					#define	_FSHLOCK	0x0080	/* BSD flock() shared lock present */
 | 
				
			||||||
 | 
					#define	_FEXLOCK	0x0100	/* BSD flock() exclusive lock present */
 | 
				
			||||||
 | 
					#define	_FCREAT		0x0200	/* open with file create */
 | 
				
			||||||
 | 
					#define	_FTRUNC		0x0400	/* open with truncation */
 | 
				
			||||||
 | 
					#define	_FEXCL		0x0800	/* error on open if file exists */
 | 
				
			||||||
 | 
					#define	_FNBIO		0x1000	/* non blocking I/O (sys5 style) */
 | 
				
			||||||
 | 
					#define	_FSYNC		0x2000	/* do all writes synchronously */
 | 
				
			||||||
 | 
					#define	_FNONBLOCK	0x4000	/* non blocking I/O (POSIX style) */
 | 
				
			||||||
 | 
					#define	_FNDELAY	_FNONBLOCK	/* non blocking I/O (4.2 style) */
 | 
				
			||||||
 | 
					#define	_FNOCTTY	0x8000	/* don't assign a ctty on this open */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	O_ACCMODE	(O_RDONLY|O_WRONLY|O_RDWR)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Flag values for open(2) and fcntl(2)
 | 
				
			||||||
 | 
					 * The kernel adds 1 to the open modes to turn it into some
 | 
				
			||||||
 | 
					 * combination of FREAD and FWRITE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	O_RDONLY	0		/* +1 == FREAD */
 | 
				
			||||||
 | 
					#define	O_WRONLY	1		/* +1 == FWRITE */
 | 
				
			||||||
 | 
					#define	O_RDWR		2		/* +1 == FREAD|FWRITE */
 | 
				
			||||||
 | 
					#define	O_APPEND	_FAPPEND
 | 
				
			||||||
 | 
					#define	O_CREAT		_FCREAT
 | 
				
			||||||
 | 
					#define	O_TRUNC		_FTRUNC
 | 
				
			||||||
 | 
					#define	O_EXCL		_FEXCL
 | 
				
			||||||
 | 
					#define O_SYNC		_FSYNC
 | 
				
			||||||
 | 
					/*	O_NDELAY	_FNDELAY 	set in include/fcntl.h */
 | 
				
			||||||
 | 
					/*	O_NDELAY	_FNBIO 		set in include/fcntl.h */
 | 
				
			||||||
 | 
					#define	O_NONBLOCK	_FNONBLOCK
 | 
				
			||||||
 | 
					#define	O_NOCTTY	_FNOCTTY
 | 
				
			||||||
 | 
					/* For machines which care - */
 | 
				
			||||||
 | 
					#if defined (__CYGWIN__)
 | 
				
			||||||
 | 
					#define _FBINARY        0x10000
 | 
				
			||||||
 | 
					#define _FTEXT          0x20000
 | 
				
			||||||
 | 
					#define _FNOINHERIT	0x40000
 | 
				
			||||||
 | 
					#define _FDIRECT        0x80000
 | 
				
			||||||
 | 
					#define _FNOFOLLOW      0x100000
 | 
				
			||||||
 | 
					#define _FDIRECTORY     0x200000
 | 
				
			||||||
 | 
					#define _FEXECSRCH      0x400000
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define O_BINARY	_FBINARY
 | 
				
			||||||
 | 
					#define O_TEXT		_FTEXT
 | 
				
			||||||
 | 
					#define O_CLOEXEC	_FNOINHERIT
 | 
				
			||||||
 | 
					#define O_DIRECT        _FDIRECT
 | 
				
			||||||
 | 
					#define O_NOFOLLOW      _FNOFOLLOW
 | 
				
			||||||
 | 
					#define O_DSYNC         _FSYNC
 | 
				
			||||||
 | 
					#define O_RSYNC         _FSYNC
 | 
				
			||||||
 | 
					#define O_DIRECTORY     _FDIRECTORY
 | 
				
			||||||
 | 
					#define O_EXEC          _FEXECSRCH
 | 
				
			||||||
 | 
					#define O_SEARCH        _FEXECSRCH
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Flags that work for fcntl(fd, F_SETFL, FXXXX)
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	FAPPEND		_FAPPEND
 | 
				
			||||||
 | 
					#define	FSYNC		_FSYNC
 | 
				
			||||||
 | 
					#define	FASYNC		_FASYNC
 | 
				
			||||||
 | 
					#define	FNBIO		_FNBIO
 | 
				
			||||||
 | 
					#define	FNONBIO		_FNONBLOCK	/* XXX fix to be NONBLOCK everywhere */
 | 
				
			||||||
 | 
					#define	FNDELAY		_FNDELAY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Flags that are disallowed for fcntl's (FCNTLCANT);
 | 
				
			||||||
 | 
					 * used for opens, internal state, or locking.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	FREAD		_FREAD
 | 
				
			||||||
 | 
					#define	FWRITE		_FWRITE
 | 
				
			||||||
 | 
					#define	FMARK		_FMARK
 | 
				
			||||||
 | 
					#define	FDEFER		_FDEFER
 | 
				
			||||||
 | 
					#define	FSHLOCK		_FSHLOCK
 | 
				
			||||||
 | 
					#define	FEXLOCK		_FEXLOCK
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The rest of the flags, used only for opens
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	FOPEN		_FOPEN
 | 
				
			||||||
 | 
					#define	FCREAT		_FCREAT
 | 
				
			||||||
 | 
					#define	FTRUNC		_FTRUNC
 | 
				
			||||||
 | 
					#define	FEXCL		_FEXCL
 | 
				
			||||||
 | 
					#define	FNOCTTY		_FNOCTTY
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* XXX close on exec request; must match UF_EXCLOSE in user.h */
 | 
				
			||||||
 | 
					#define	FD_CLOEXEC	1	/* posix */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* fcntl(2) requests */
 | 
				
			||||||
 | 
					#define	F_DUPFD		0	/* Duplicate fildes */
 | 
				
			||||||
 | 
					#define	F_GETFD		1	/* Get fildes flags (close on exec) */
 | 
				
			||||||
 | 
					#define	F_SETFD		2	/* Set fildes flags (close on exec) */
 | 
				
			||||||
 | 
					#define	F_GETFL		3	/* Get file flags */
 | 
				
			||||||
 | 
					#define	F_SETFL		4	/* Set file flags */
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					#define	F_GETOWN 	5	/* Get owner - for ASYNC */
 | 
				
			||||||
 | 
					#define	F_SETOWN 	6	/* Set owner - for ASYNC */
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					#define	F_GETLK  	7	/* Get record-locking information */
 | 
				
			||||||
 | 
					#define	F_SETLK  	8	/* Set or Clear a record-lock (Non-Blocking) */
 | 
				
			||||||
 | 
					#define	F_SETLKW 	9	/* Set or Clear a record-lock (Blocking) */
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					#define	F_RGETLK 	10	/* Test a remote lock to see if it is blocked */
 | 
				
			||||||
 | 
					#define	F_RSETLK 	11	/* Set or unlock a remote lock */
 | 
				
			||||||
 | 
					#define	F_CNVT 		12	/* Convert a fhandle to an open fd */
 | 
				
			||||||
 | 
					#define	F_RSETLKW 	13	/* Set or Clear remote record-lock(Blocking) */
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#define	F_DUPFD_CLOEXEC	14	/* As F_DUPFD, but set close-on-exec flag */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* fcntl(2) flags (l_type field of flock structure) */
 | 
				
			||||||
 | 
					#define	F_RDLCK		1	/* read lock */
 | 
				
			||||||
 | 
					#define	F_WRLCK		2	/* write lock */
 | 
				
			||||||
 | 
					#define	F_UNLCK		3	/* remove lock(s) */
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					#define	F_UNLKSYS	4	/* remove remote locks for a given system */
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					/* Special descriptor value to denote the cwd in calls to openat(2) etc. */
 | 
				
			||||||
 | 
					#define AT_FDCWD -2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Flag values for faccessat2) et al. */
 | 
				
			||||||
 | 
					#define AT_EACCESS              1
 | 
				
			||||||
 | 
					#define AT_SYMLINK_NOFOLLOW     2
 | 
				
			||||||
 | 
					#define AT_SYMLINK_FOLLOW       4
 | 
				
			||||||
 | 
					#define AT_REMOVEDIR            8
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					/* lock operations for flock(2) */
 | 
				
			||||||
 | 
					#define	LOCK_SH		0x01		/* shared file lock */
 | 
				
			||||||
 | 
					#define	LOCK_EX		0x02		/* exclusive file lock */
 | 
				
			||||||
 | 
					#define	LOCK_NB		0x04		/* don't block when locking */
 | 
				
			||||||
 | 
					#define	LOCK_UN		0x08		/* unlock file */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*#include <sys/stdtypes.h>*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					/* file segment locking set data type - information passed to system by user */
 | 
				
			||||||
 | 
					struct flock {
 | 
				
			||||||
 | 
						short	l_type;		/* F_RDLCK, F_WRLCK, or F_UNLCK */
 | 
				
			||||||
 | 
						short	l_whence;	/* flag to choose starting offset */
 | 
				
			||||||
 | 
						long	l_start;	/* relative offset, in bytes */
 | 
				
			||||||
 | 
						long	l_len;		/* length, in bytes; 0 means lock to EOF */
 | 
				
			||||||
 | 
						short	l_pid;		/* returned with F_GETLK */
 | 
				
			||||||
 | 
						short	l_xxx;		/* reserved for future use */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					/* extended file segment locking set data type */
 | 
				
			||||||
 | 
					struct eflock {
 | 
				
			||||||
 | 
						short	l_type;		/* F_RDLCK, F_WRLCK, or F_UNLCK */
 | 
				
			||||||
 | 
						short	l_whence;	/* flag to choose starting offset */
 | 
				
			||||||
 | 
						long	l_start;	/* relative offset, in bytes */
 | 
				
			||||||
 | 
						long	l_len;		/* length, in bytes; 0 means lock to EOF */
 | 
				
			||||||
 | 
						short	l_pid;		/* returned with F_GETLK */
 | 
				
			||||||
 | 
						short	l_xxx;		/* reserved for future use */
 | 
				
			||||||
 | 
						long	l_rpid;		/* Remote process id wanting this lock */
 | 
				
			||||||
 | 
						long	l_rsys;		/* Remote system id wanting this lock */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/stat.h>		/* sigh. for the mode bits for open/creat */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int open _PARAMS ((const char *, int, ...));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					extern int openat _PARAMS ((int, const char *, int, ...));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					extern int creat _PARAMS ((const char *, mode_t));
 | 
				
			||||||
 | 
					extern int fcntl _PARAMS ((int, int, ...));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					extern int flock _PARAMS ((int, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <sys/time.h>
 | 
				
			||||||
 | 
					extern int futimesat _PARAMS ((int, const char *, const struct timeval *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Provide _<systemcall> prototypes for functions provided by some versions
 | 
				
			||||||
 | 
					   of newlib.  */
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					extern int _open _PARAMS ((const char *, int, ...));
 | 
				
			||||||
 | 
					extern int _fcntl _PARAMS ((int, int, ...));
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					extern int _open64 _PARAMS ((const char *, int, ...));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif	/* !_SYS__DEFAULT_FCNTL_H_ */
 | 
				
			||||||
							
								
								
									
										20
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/_intsup.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										20
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/_intsup.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,20 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2004, 2005 by
 | 
				
			||||||
 | 
					 * Ralf Corsepius, Ulm/Germany. All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Permission to use, copy, modify, and distribute this software
 | 
				
			||||||
 | 
					 * is freely granted, provided that this notice is preserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Modified for xtensa arch & non-long int32_t, removes automatic setting of __have_long32.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS__INTSUP_H
 | 
				
			||||||
 | 
					#define _SYS__INTSUP_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __STDINT_EXP(x) __##x##__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __have_longlong64 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _SYS__INTSUP_H */
 | 
				
			||||||
							
								
								
									
										91
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/_types.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/_types.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
				
			|||||||
 | 
					/* ANSI C namespace clean utility typedefs */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This file defines various typedefs needed by the system calls that support
 | 
				
			||||||
 | 
					   the C library.  Basically, they're just the POSIX versions with an '_'
 | 
				
			||||||
 | 
					   prepended.  This file lives in the `sys' directory so targets can provide
 | 
				
			||||||
 | 
					   their own if desired (or they can put target dependant conditionals here).
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_SYS__TYPES_H
 | 
				
			||||||
 | 
					#define _SYS__TYPES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/_types.h>
 | 
				
			||||||
 | 
					#include <sys/lock.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __off_t_defined
 | 
				
			||||||
 | 
					typedef long _off_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __dev_t_defined
 | 
				
			||||||
 | 
					typedef short __dev_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __uid_t_defined
 | 
				
			||||||
 | 
					typedef unsigned short __uid_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __gid_t_defined
 | 
				
			||||||
 | 
					typedef unsigned short __gid_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __off64_t_defined
 | 
				
			||||||
 | 
					__extension__ typedef long long _off64_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * We need fpos_t for the following, but it doesn't have a leading "_",
 | 
				
			||||||
 | 
					 * so we use _fpos_t instead.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef __fpos_t_defined
 | 
				
			||||||
 | 
					typedef long _fpos_t;		/* XXX must match off_t in <sys/types.h> */
 | 
				
			||||||
 | 
									/* (and must be `long' for now) */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					#ifndef __fpos64_t_defined
 | 
				
			||||||
 | 
					typedef _off64_t _fpos64_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ssize_t_defined
 | 
				
			||||||
 | 
					#ifdef __SIZE_TYPE__
 | 
				
			||||||
 | 
					/* If __SIZE_TYPE__ is defined (gcc) we define ssize_t based on size_t.
 | 
				
			||||||
 | 
					   We simply change "unsigned" to "signed" for this single definition
 | 
				
			||||||
 | 
					   to make sure ssize_t and size_t only differ by their signedness. */
 | 
				
			||||||
 | 
					#define unsigned signed
 | 
				
			||||||
 | 
					typedef __SIZE_TYPE__ _ssize_t;
 | 
				
			||||||
 | 
					#undef unsigned
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if defined(__INT_MAX__) && __INT_MAX__ == 2147483647
 | 
				
			||||||
 | 
					typedef int _ssize_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef long _ssize_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __need_wint_t
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __mbstate_t_defined
 | 
				
			||||||
 | 
					/* Conversion state information.  */
 | 
				
			||||||
 | 
					typedef struct
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int __count;
 | 
				
			||||||
 | 
					  union
 | 
				
			||||||
 | 
					  {
 | 
				
			||||||
 | 
					    wint_t __wch;
 | 
				
			||||||
 | 
					    unsigned char __wchb[4];
 | 
				
			||||||
 | 
					  } __value;		/* Value so far.  */
 | 
				
			||||||
 | 
					} _mbstate_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __flock_t_defined
 | 
				
			||||||
 | 
					typedef _LOCK_RECURSIVE_T _flock_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __iconv_t_defined
 | 
				
			||||||
 | 
					/* Iconv descriptor type */
 | 
				
			||||||
 | 
					typedef void *_iconv_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _SYS__TYPES_H */
 | 
				
			||||||
							
								
								
									
										710
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/cdefs.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										710
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/cdefs.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,710 @@
 | 
				
			|||||||
 | 
					/* libc/sys/linux/sys/cdefs.h - Helper macros for K&R vs. ANSI C compat. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Written 2000 by Werner Almesberger */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1991, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This code is derived from software contributed to Berkeley by
 | 
				
			||||||
 | 
					 * Berkeley Software Design, Inc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)cdefs.h	8.8 (Berkeley) 1/9/95
 | 
				
			||||||
 | 
					 * $FreeBSD$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	_SYS_CDEFS_H_
 | 
				
			||||||
 | 
					#define	_SYS_CDEFS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/_default_types.h>
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __PMT(args)	args
 | 
				
			||||||
 | 
					#define __DOTS    	, ...
 | 
				
			||||||
 | 
					#define __THROW
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					# define __ASMNAME(cname)  __XSTRING (__USER_LABEL_PREFIX__) cname
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __ptr_t void *
 | 
				
			||||||
 | 
					#define __long_double_t  long double
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __attribute_malloc__
 | 
				
			||||||
 | 
					#define __attribute_pure__
 | 
				
			||||||
 | 
					#define __attribute_format_strfmon__(a,b)
 | 
				
			||||||
 | 
					#define __flexarr      [0]
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __BOUNDED_POINTERS__
 | 
				
			||||||
 | 
					# define __bounded      /* nothing */
 | 
				
			||||||
 | 
					# define __unbounded    /* nothing */
 | 
				
			||||||
 | 
					# define __ptrvalue     /* nothing */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Testing against Clang-specific extensions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__has_extension
 | 
				
			||||||
 | 
					#define	__has_extension		__has_feature
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef	__has_feature
 | 
				
			||||||
 | 
					#define	__has_feature(x)	0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef	__has_include
 | 
				
			||||||
 | 
					#define	__has_include(x)	0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef	__has_builtin
 | 
				
			||||||
 | 
					#define	__has_builtin(x)	0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__cplusplus)
 | 
				
			||||||
 | 
					#define	__BEGIN_DECLS	extern "C" {
 | 
				
			||||||
 | 
					#define	__END_DECLS	}
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__BEGIN_DECLS
 | 
				
			||||||
 | 
					#define	__END_DECLS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This code has been put in place to help reduce the addition of
 | 
				
			||||||
 | 
					 * compiler specific defines in FreeBSD code.  It helps to aid in
 | 
				
			||||||
 | 
					 * having a compiler-agnostic source tree.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__) || defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC__ >= 3 || defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define __GNUCLIKE_ASM 3
 | 
				
			||||||
 | 
					#define __GNUCLIKE_MATH_BUILTIN_CONSTANTS
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __GNUCLIKE_ASM 2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define __GNUCLIKE___TYPEOF 1
 | 
				
			||||||
 | 
					#define __GNUCLIKE___OFFSETOF 1
 | 
				
			||||||
 | 
					#define __GNUCLIKE___SECTION 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __INTEL_COMPILER
 | 
				
			||||||
 | 
					# define __GNUCLIKE_CTOR_SECTION_HANDLING 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __GNUCLIKE_BUILTIN_CONSTANT_P 1
 | 
				
			||||||
 | 
					# if defined(__INTEL_COMPILER) && defined(__cplusplus) \
 | 
				
			||||||
 | 
					    && __INTEL_COMPILER < 800
 | 
				
			||||||
 | 
					#  undef __GNUCLIKE_BUILTIN_CONSTANT_P
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (__GNUC_MINOR__ > 95 || __GNUC__ >= 3) && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					# define __GNUCLIKE_BUILTIN_VARARGS 1
 | 
				
			||||||
 | 
					# define __GNUCLIKE_BUILTIN_STDARG 1
 | 
				
			||||||
 | 
					# define __GNUCLIKE_BUILTIN_VAALIST 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__)
 | 
				
			||||||
 | 
					# define __GNUC_VA_LIST_COMPATIBILITY 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Compiler memory barriers, specific to gcc and clang.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(__GNUC__)
 | 
				
			||||||
 | 
					#define	__compiler_membar()	__asm __volatile(" " : : : "memory")
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __INTEL_COMPILER
 | 
				
			||||||
 | 
					# define __GNUCLIKE_BUILTIN_NEXT_ARG 1
 | 
				
			||||||
 | 
					# define __GNUCLIKE_MATH_BUILTIN_RELOPS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __GNUCLIKE_BUILTIN_MEMCPY 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* XXX: if __GNUC__ >= 2: not tested everywhere originally, where replaced */
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS_INLINE 1
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS___INLINE 1
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS___INLINE__ 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS___FUNC__ 1
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS_WARNING 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS_VARADIC_XXX 1 /* see varargs.h */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __CC_SUPPORTS_DYNAMIC_ARRAY_INIT 1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __GNUC__ || __INTEL_COMPILER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * The __CONCAT macro is used to concatenate parts of symbol names, e.g.
 | 
				
			||||||
 | 
					 * with "#define OLD(foo) __CONCAT(old,foo)", OLD(foo) produces oldfoo.
 | 
				
			||||||
 | 
					 * The __CONCAT macro is a bit tricky to use if it must work in non-ANSI
 | 
				
			||||||
 | 
					 * mode -- there must be no spaces between its arguments, and for nested
 | 
				
			||||||
 | 
					 * __CONCAT's, all the __CONCAT's must be at the left.  __CONCAT can also
 | 
				
			||||||
 | 
					 * concatenate double-quoted strings produced by the __STRING macro, but
 | 
				
			||||||
 | 
					 * this only works with ANSI C.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * __XSTRING is like __STRING, but it expands any macros in its argument
 | 
				
			||||||
 | 
					 * first.  It is only available with ANSI C.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(__STDC__) || defined(__cplusplus)
 | 
				
			||||||
 | 
					#define	__P(protos)	protos		/* full-blown ANSI C */
 | 
				
			||||||
 | 
					#define	__CONCAT1(x,y)	x ## y
 | 
				
			||||||
 | 
					#define	__CONCAT(x,y)	__CONCAT1(x,y)
 | 
				
			||||||
 | 
					#define	__STRING(x)	#x		/* stringify without expanding x */
 | 
				
			||||||
 | 
					#define	__XSTRING(x)	__STRING(x)	/* expand x, then stringify */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	__const		const		/* define reserved names to standard */
 | 
				
			||||||
 | 
					#define	__signed	signed
 | 
				
			||||||
 | 
					#define	__volatile	volatile
 | 
				
			||||||
 | 
					#if defined(__cplusplus)
 | 
				
			||||||
 | 
					#define	__inline	inline		/* convert to C++ keyword */
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if !(defined(__CC_SUPPORTS___INLINE))
 | 
				
			||||||
 | 
					#define	__inline			/* delete GCC keyword */
 | 
				
			||||||
 | 
					#endif /* ! __CC_SUPPORTS___INLINE */
 | 
				
			||||||
 | 
					#endif /* !__cplusplus */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else	/* !(__STDC__ || __cplusplus) */
 | 
				
			||||||
 | 
					#define	__P(protos)	()		/* traditional C preprocessor */
 | 
				
			||||||
 | 
					#define	__CONCAT(x,y)	x/**/y
 | 
				
			||||||
 | 
					#define	__STRING(x)	"x"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__CC_SUPPORTS___INLINE)
 | 
				
			||||||
 | 
					#define	__const				/* delete pseudo-ANSI C keywords */
 | 
				
			||||||
 | 
					#define	__inline
 | 
				
			||||||
 | 
					#define	__signed
 | 
				
			||||||
 | 
					#define	__volatile
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * In non-ANSI C environments, new programs will want ANSI-only C keywords
 | 
				
			||||||
 | 
					 * deleted from the program and old programs will want them left alone.
 | 
				
			||||||
 | 
					 * When using a compiler other than gcc, programs using the ANSI C keywords
 | 
				
			||||||
 | 
					 * const, inline etc. as normal identifiers should define -DNO_ANSI_KEYWORDS.
 | 
				
			||||||
 | 
					 * When using "gcc -traditional", we assume that this is the intent; if
 | 
				
			||||||
 | 
					 * __GNUC__ is defined but __STDC__ is not, we leave the new keywords alone.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef	NO_ANSI_KEYWORDS
 | 
				
			||||||
 | 
					#define	const				/* delete ANSI C keywords */
 | 
				
			||||||
 | 
					#define	inline
 | 
				
			||||||
 | 
					#define	signed
 | 
				
			||||||
 | 
					#define	volatile
 | 
				
			||||||
 | 
					#endif	/* !NO_ANSI_KEYWORDS */
 | 
				
			||||||
 | 
					#endif	/* !__CC_SUPPORTS___INLINE */
 | 
				
			||||||
 | 
					#endif	/* !(__STDC__ || __cplusplus) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Compiler-dependent macros to help declare dead (non-returning) and
 | 
				
			||||||
 | 
					 * pure (no side effects) functions, and unused variables.  They are
 | 
				
			||||||
 | 
					 * null except for versions of gcc that are known to support the features
 | 
				
			||||||
 | 
					 * properly (old versions of gcc-2 supported the dead and pure features
 | 
				
			||||||
 | 
					 * in a different (wrong) way).  If we do not provide an implementation
 | 
				
			||||||
 | 
					 * for a given compiler, let the compile fail if it is told to use
 | 
				
			||||||
 | 
					 * a feature that we cannot live without.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifdef lint
 | 
				
			||||||
 | 
					#define	__dead2
 | 
				
			||||||
 | 
					#define	__pure2
 | 
				
			||||||
 | 
					#define	__unused
 | 
				
			||||||
 | 
					#define	__packed
 | 
				
			||||||
 | 
					#define	__aligned(x)
 | 
				
			||||||
 | 
					#define	__section(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if !__GNUC_PREREQ__(2, 5) && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define	__dead2
 | 
				
			||||||
 | 
					#define	__pure2
 | 
				
			||||||
 | 
					#define	__unused
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNUC__ == 2 && __GNUC_MINOR__ >= 5 && __GNUC_MINOR__ < 7 && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define	__dead2		__attribute__((__noreturn__))
 | 
				
			||||||
 | 
					#define	__pure2		__attribute__((__const__))
 | 
				
			||||||
 | 
					#define	__unused
 | 
				
			||||||
 | 
					/* XXX Find out what to do for __packed, __aligned and __section */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(2, 7)
 | 
				
			||||||
 | 
					#define	__dead2		__attribute__((__noreturn__))
 | 
				
			||||||
 | 
					#define	__pure2		__attribute__((__const__))
 | 
				
			||||||
 | 
					#define	__unused	__attribute__((__unused__))
 | 
				
			||||||
 | 
					#define	__used		__attribute__((__used__))
 | 
				
			||||||
 | 
					#define	__packed	__attribute__((__packed__))
 | 
				
			||||||
 | 
					#define	__aligned(x)	__attribute__((__aligned__(x)))
 | 
				
			||||||
 | 
					#define	__section(x)	__attribute__((__section__(x)))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define __dead2		__attribute__((__noreturn__))
 | 
				
			||||||
 | 
					#define __pure2		__attribute__((__const__))
 | 
				
			||||||
 | 
					#define __unused	__attribute__((__unused__))
 | 
				
			||||||
 | 
					#define __used		__attribute__((__used__))
 | 
				
			||||||
 | 
					#define __packed	__attribute__((__packed__))
 | 
				
			||||||
 | 
					#define __aligned(x)	__attribute__((__aligned__(x)))
 | 
				
			||||||
 | 
					#define __section(x)	__attribute__((__section__(x)))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__GNUC_PREREQ__(2, 95)
 | 
				
			||||||
 | 
					#define	__alignof(x)	__offsetof(struct { char __a; x __b; }, __b)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Keywords added in C11.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 201112L
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__has_extension(c_alignas)
 | 
				
			||||||
 | 
					#if (defined(__cplusplus) && __cplusplus >= 201103L) || \
 | 
				
			||||||
 | 
					    __has_extension(cxx_alignas)
 | 
				
			||||||
 | 
					#define	_Alignas(x)		alignas(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/* XXX: Only emulates _Alignas(constant-expression); not _Alignas(type-name). */
 | 
				
			||||||
 | 
					#define	_Alignas(x)		__aligned(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__cplusplus) && __cplusplus >= 201103L
 | 
				
			||||||
 | 
					#define	_Alignof(x)		alignof(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	_Alignof(x)		__alignof(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__has_extension(c_atomic) && !__has_extension(cxx_atomic)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * No native support for _Atomic(). Place object in structure to prevent
 | 
				
			||||||
 | 
					 * most forms of direct non-atomic access.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	_Atomic(T)		struct { T volatile __val; }
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__cplusplus) && __cplusplus >= 201103L
 | 
				
			||||||
 | 
					#define	_Noreturn		[[noreturn]]
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	_Noreturn		__dead2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(4, 6) && !defined(__cplusplus)
 | 
				
			||||||
 | 
					/*  Do nothing: _Static_assert() works as per C11 */
 | 
				
			||||||
 | 
					#elif !__has_extension(c_static_assert)
 | 
				
			||||||
 | 
					#if (defined(__cplusplus) && __cplusplus >= 201103L) || \
 | 
				
			||||||
 | 
					    __has_extension(cxx_static_assert)
 | 
				
			||||||
 | 
					#define	_Static_assert(x, y)	static_assert(x, y)
 | 
				
			||||||
 | 
					#elif defined(__COUNTER__)
 | 
				
			||||||
 | 
					#define	_Static_assert(x, y)	__Static_assert(x, __COUNTER__)
 | 
				
			||||||
 | 
					#define	__Static_assert(x, y)	___Static_assert(x, y)
 | 
				
			||||||
 | 
					#define	___Static_assert(x, y)	typedef char __assert_ ## y[(x) ? 1 : -1]
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	_Static_assert(x, y)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !__has_extension(c_thread_local)
 | 
				
			||||||
 | 
					/* XXX: Change this to test against C++11 when clang in base supports it. */
 | 
				
			||||||
 | 
					#if /* (defined(__cplusplus) && __cplusplus >= 201103L) || */ \
 | 
				
			||||||
 | 
					    __has_extension(cxx_thread_local)
 | 
				
			||||||
 | 
					#define	_Thread_local		thread_local
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	_Thread_local		__thread
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __STDC_VERSION__ || __STDC_VERSION__ < 201112L */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Emulation of C11 _Generic().  Unlike the previously defined C11
 | 
				
			||||||
 | 
					 * keywords, it is not possible to implement this using exactly the same
 | 
				
			||||||
 | 
					 * syntax.  Therefore implement something similar under the name
 | 
				
			||||||
 | 
					 * __generic().  Unlike _Generic(), this macro can only distinguish
 | 
				
			||||||
 | 
					 * between a single type, so it requires nested invocations to
 | 
				
			||||||
 | 
					 * distinguish multiple cases.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__STDC_VERSION__) && __STDC_VERSION__ >= 201112L
 | 
				
			||||||
 | 
					#define	__generic(expr, t, yes, no)					\
 | 
				
			||||||
 | 
						_Generic(expr, t: yes, default: no)
 | 
				
			||||||
 | 
					#elif __GNUC_PREREQ__(3, 1) && !defined(__cplusplus)
 | 
				
			||||||
 | 
					#define	__generic(expr, t, yes, no)					\
 | 
				
			||||||
 | 
						__builtin_choose_expr(						\
 | 
				
			||||||
 | 
						    __builtin_types_compatible_p(__typeof(expr), t), yes, no)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(2, 96)
 | 
				
			||||||
 | 
					#define	__malloc_like	__attribute__((__malloc__))
 | 
				
			||||||
 | 
					#define	__pure		__attribute__((__pure__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__malloc_like
 | 
				
			||||||
 | 
					#define	__pure
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(3, 1) || (defined(__INTEL_COMPILER) && __INTEL_COMPILER >= 800)
 | 
				
			||||||
 | 
					#define	__always_inline	__attribute__((__always_inline__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__always_inline
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(3, 1)
 | 
				
			||||||
 | 
					#define	__noinline	__attribute__ ((__noinline__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__noinline
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(3, 3)
 | 
				
			||||||
 | 
					#define __nonnull(x)	__attribute__((__nonnull__(x)))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __nonnull(x)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(3, 4)
 | 
				
			||||||
 | 
					#define	__fastcall	__attribute__((__fastcall__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__fastcall
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(4, 1)
 | 
				
			||||||
 | 
					#define	__returns_twice	__attribute__((__returns_twice__))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__returns_twice
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* XXX: should use `#if __STDC_VERSION__ < 199901'. */
 | 
				
			||||||
 | 
					#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define	__func__	NULL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * GCC 2.95 provides `__restrict' as an extension to C90 to support the
 | 
				
			||||||
 | 
					 * C99-specific `restrict' type qualifier.  We happen to use `__restrict' as
 | 
				
			||||||
 | 
					 * a way to define the `restrict' type qualifier without disturbing older
 | 
				
			||||||
 | 
					 * software that is unaware of C99 keywords.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if !(__GNUC__ == 2 && __GNUC_MINOR__ == 95)
 | 
				
			||||||
 | 
					#if !defined(__STDC_VERSION__) || __STDC_VERSION__ < 199901 || defined(lint)
 | 
				
			||||||
 | 
					#define	__restrict
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__restrict	restrict
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * GNU C version 2.96 adds explicit branch prediction so that
 | 
				
			||||||
 | 
					 * the CPU back-end can hint the processor and also so that
 | 
				
			||||||
 | 
					 * code blocks can be reordered such that the predicted path
 | 
				
			||||||
 | 
					 * sees a more linear flow, thus improving cache behavior, etc.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The following two macros provide us with a way to utilize this
 | 
				
			||||||
 | 
					 * compiler feature.  Use __predict_true() if you expect the expression
 | 
				
			||||||
 | 
					 * to evaluate to true, and __predict_false() if you expect the
 | 
				
			||||||
 | 
					 * expression to evaluate to false.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A few notes about usage:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	* Generally, __predict_false() error condition checks (unless
 | 
				
			||||||
 | 
					 *	  you have some _strong_ reason to do otherwise, in which case
 | 
				
			||||||
 | 
					 *	  document it), and/or __predict_true() `no-error' condition
 | 
				
			||||||
 | 
					 *	  checks, assuming you want to optimize for the no-error case.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	* Other than that, if you don't know the likelihood of a test
 | 
				
			||||||
 | 
					 *	  succeeding from empirical or other `hard' evidence, don't
 | 
				
			||||||
 | 
					 *	  make predictions.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	* These are meant to be used in places that are run `a lot'.
 | 
				
			||||||
 | 
					 *	  It is wasteful to make predictions in code that is run
 | 
				
			||||||
 | 
					 *	  seldomly (e.g. at subsystem initialization time) as the
 | 
				
			||||||
 | 
					 *	  basic block reordering that this affects can often generate
 | 
				
			||||||
 | 
					 *	  larger code.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(2, 96)
 | 
				
			||||||
 | 
					#define __predict_true(exp)     __builtin_expect((exp), 1)
 | 
				
			||||||
 | 
					#define __predict_false(exp)    __builtin_expect((exp), 0)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __predict_true(exp)     (exp)
 | 
				
			||||||
 | 
					#define __predict_false(exp)    (exp)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(4, 2)
 | 
				
			||||||
 | 
					#define	__hidden	__attribute__((__visibility__("hidden")))
 | 
				
			||||||
 | 
					#define	__exported	__attribute__((__visibility__("default")))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__hidden
 | 
				
			||||||
 | 
					#define	__exported
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __offsetof(type, field)	offsetof(type, field)
 | 
				
			||||||
 | 
					#define	__rangeof(type, start, end) \
 | 
				
			||||||
 | 
						(__offsetof(type, end) - __offsetof(type, start))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Given the pointer x to the member m of the struct s, return
 | 
				
			||||||
 | 
					 * a pointer to the containing structure.  When using GCC, we first
 | 
				
			||||||
 | 
					 * assign pointer x to a local variable, to check that its type is
 | 
				
			||||||
 | 
					 * compatible with member m.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if __GNUC_PREREQ__(3, 1)
 | 
				
			||||||
 | 
					#define	__containerof(x, s, m) ({					\
 | 
				
			||||||
 | 
						const volatile __typeof__(((s *)0)->m) *__x = (x);		\
 | 
				
			||||||
 | 
						__DEQUALIFY(s *, (const volatile char *)__x - __offsetof(s, m));\
 | 
				
			||||||
 | 
					})
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__containerof(x, s, m)						\
 | 
				
			||||||
 | 
						__DEQUALIFY(s *, (const volatile char *)(x) - __offsetof(s, m))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Compiler-dependent macros to declare that functions take printf-like
 | 
				
			||||||
 | 
					 * or scanf-like arguments.  They are null except for versions of gcc
 | 
				
			||||||
 | 
					 * that are known to support the features properly (old versions of gcc-2
 | 
				
			||||||
 | 
					 * didn't permit keeping the keywords out of the application namespace).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if !__GNUC_PREREQ__(2, 7) && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define	__printflike(fmtarg, firstvararg)
 | 
				
			||||||
 | 
					#define	__scanflike(fmtarg, firstvararg)
 | 
				
			||||||
 | 
					#define	__format_arg(fmtarg)
 | 
				
			||||||
 | 
					#define	__strfmonlike(fmtarg, firstvararg)
 | 
				
			||||||
 | 
					#define	__strftimelike(fmtarg, firstvararg)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__printflike(fmtarg, firstvararg) \
 | 
				
			||||||
 | 
						    __attribute__((__format__ (__printf__, fmtarg, firstvararg)))
 | 
				
			||||||
 | 
					#define	__scanflike(fmtarg, firstvararg) \
 | 
				
			||||||
 | 
						    __attribute__((__format__ (__scanf__, fmtarg, firstvararg)))
 | 
				
			||||||
 | 
					#define	__format_arg(fmtarg)	__attribute__((__format_arg__ (fmtarg)))
 | 
				
			||||||
 | 
					#define	__strfmonlike(fmtarg, firstvararg) \
 | 
				
			||||||
 | 
						    __attribute__((__format__ (__strfmon__, fmtarg, firstvararg)))
 | 
				
			||||||
 | 
					#define	__strftimelike(fmtarg, firstvararg) \
 | 
				
			||||||
 | 
						    __attribute__((__format__ (__strftime__, fmtarg, firstvararg)))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Compiler-dependent macros that rely on FreeBSD-specific extensions. */
 | 
				
			||||||
 | 
					#if defined(__FreeBSD_cc_version) && __FreeBSD_cc_version >= 300001 && \
 | 
				
			||||||
 | 
					    defined(__GNUC__) && !defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#define	__printf0like(fmtarg, firstvararg) \
 | 
				
			||||||
 | 
						    __attribute__((__format__ (__printf0__, fmtarg, firstvararg)))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__printf0like(fmtarg, firstvararg)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__GNUC__) || defined(__INTEL_COMPILER)
 | 
				
			||||||
 | 
					#ifndef __INTEL_COMPILER
 | 
				
			||||||
 | 
					#define	__strong_reference(sym,aliassym)	\
 | 
				
			||||||
 | 
						extern __typeof (sym) aliassym __attribute__ ((__alias__ (#sym)))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __ELF__
 | 
				
			||||||
 | 
					#ifdef __STDC__
 | 
				
			||||||
 | 
					#define	__weak_reference(sym,alias)	\
 | 
				
			||||||
 | 
						__asm__(".weak " #alias);	\
 | 
				
			||||||
 | 
						__asm__(".equ "  #alias ", " #sym)
 | 
				
			||||||
 | 
					#define	__warn_references(sym,msg)	\
 | 
				
			||||||
 | 
						__asm__(".section .gnu.warning." #sym);	\
 | 
				
			||||||
 | 
						__asm__(".asciz \"" msg "\"");	\
 | 
				
			||||||
 | 
						__asm__(".previous")
 | 
				
			||||||
 | 
					#define	__sym_compat(sym,impl,verid)	\
 | 
				
			||||||
 | 
						__asm__(".symver " #impl ", " #sym "@" #verid)
 | 
				
			||||||
 | 
					#define	__sym_default(sym,impl,verid)	\
 | 
				
			||||||
 | 
						__asm__(".symver " #impl ", " #sym "@@" #verid)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__weak_reference(sym,alias)	\
 | 
				
			||||||
 | 
						__asm__(".weak alias");		\
 | 
				
			||||||
 | 
						__asm__(".equ alias, sym")
 | 
				
			||||||
 | 
					#define	__warn_references(sym,msg)	\
 | 
				
			||||||
 | 
						__asm__(".section .gnu.warning.sym"); \
 | 
				
			||||||
 | 
						__asm__(".asciz \"msg\"");	\
 | 
				
			||||||
 | 
						__asm__(".previous")
 | 
				
			||||||
 | 
					#define	__sym_compat(sym,impl,verid)	\
 | 
				
			||||||
 | 
						__asm__(".symver impl, sym@verid")
 | 
				
			||||||
 | 
					#define	__sym_default(impl,sym,verid)	\
 | 
				
			||||||
 | 
						__asm__(".symver impl, sym@@verid")
 | 
				
			||||||
 | 
					#endif	/* __STDC__ */
 | 
				
			||||||
 | 
					#else	/* !__ELF__ */
 | 
				
			||||||
 | 
					#ifdef __STDC__
 | 
				
			||||||
 | 
					#define	__weak_reference(sym,alias)	\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_" #alias "\",11,0,0,0");	\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_" #sym "\",1,0,0,0")
 | 
				
			||||||
 | 
					#define	__warn_references(sym,msg)	\
 | 
				
			||||||
 | 
						__asm__(".stabs \"" msg "\",30,0,0,0");		\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_" #sym "\",1,0,0,0")
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__weak_reference(sym,alias)	\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_/**/alias\",11,0,0,0");	\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_/**/sym\",1,0,0,0")
 | 
				
			||||||
 | 
					#define	__warn_references(sym,msg)	\
 | 
				
			||||||
 | 
						__asm__(".stabs msg,30,0,0,0");			\
 | 
				
			||||||
 | 
						__asm__(".stabs \"_/**/sym\",1,0,0,0")
 | 
				
			||||||
 | 
					#endif	/* __STDC__ */
 | 
				
			||||||
 | 
					#endif	/* __ELF__ */
 | 
				
			||||||
 | 
					#endif	/* __GNUC__ || __INTEL_COMPILER */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__FBSDID
 | 
				
			||||||
 | 
					#define	__FBSDID(s)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__RCSID
 | 
				
			||||||
 | 
					#define	__RCSID(s)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__RCSID_SOURCE
 | 
				
			||||||
 | 
					#define	__RCSID_SOURCE(s)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__SCCSID
 | 
				
			||||||
 | 
					#define	__SCCSID(s)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__COPYRIGHT
 | 
				
			||||||
 | 
					#define	__COPYRIGHT(s)	struct __hack
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__DECONST
 | 
				
			||||||
 | 
					#define	__DECONST(type, var)	((type)(__uintptr_t)(const void *)(var))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__DEVOLATILE
 | 
				
			||||||
 | 
					#define	__DEVOLATILE(type, var)	((type)(__uintptr_t)(volatile void *)(var))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef	__DEQUALIFY
 | 
				
			||||||
 | 
					#define	__DEQUALIFY(type, var)	((type)(__uintptr_t)(const volatile void *)(var))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * The following definitions are an extension of the behavior originally
 | 
				
			||||||
 | 
					 * implemented in <sys/_posix.h>, but with a different level of granularity.
 | 
				
			||||||
 | 
					 * POSIX.1 requires that the macros we test be defined before any standard
 | 
				
			||||||
 | 
					 * header file is included.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Here's a quick run-down of the versions:
 | 
				
			||||||
 | 
					 *  defined(_POSIX_SOURCE)		1003.1-1988
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 1		1003.1-1990
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 2		1003.2-1992 C Language Binding Option
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 199309		1003.1b-1993
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 199506		1003.1c-1995, 1003.1i-1995,
 | 
				
			||||||
 | 
					 *					and the omnibus ISO/IEC 9945-1: 1996
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 200112		1003.1-2001
 | 
				
			||||||
 | 
					 *  _POSIX_C_SOURCE == 200809		1003.1-2008
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * In addition, the X/Open Portability Guide, which is now the Single UNIX
 | 
				
			||||||
 | 
					 * Specification, defines a feature-test macro which indicates the version of
 | 
				
			||||||
 | 
					 * that specification, and which subsumes _POSIX_C_SOURCE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Our macros begin with two underscores to avoid namespace screwage.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Deal with IEEE Std. 1003.1-1990, in which _POSIX_C_SOURCE == 1. */
 | 
				
			||||||
 | 
					#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 1
 | 
				
			||||||
 | 
					#undef _POSIX_C_SOURCE		/* Probably illegal, but beyond caring now. */
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		199009
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Deal with IEEE Std. 1003.2-1992, in which _POSIX_C_SOURCE == 2. */
 | 
				
			||||||
 | 
					#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE == 2
 | 
				
			||||||
 | 
					#undef _POSIX_C_SOURCE
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		199209
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Deal with various X/Open Portability Guides and Single UNIX Spec. */
 | 
				
			||||||
 | 
					#ifdef _XOPEN_SOURCE
 | 
				
			||||||
 | 
					#if _XOPEN_SOURCE - 0 >= 700
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		700
 | 
				
			||||||
 | 
					#undef _POSIX_C_SOURCE
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		200809
 | 
				
			||||||
 | 
					#elif _XOPEN_SOURCE - 0 >= 600
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		600
 | 
				
			||||||
 | 
					#undef _POSIX_C_SOURCE
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		200112
 | 
				
			||||||
 | 
					#elif _XOPEN_SOURCE - 0 >= 500
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		500
 | 
				
			||||||
 | 
					#undef _POSIX_C_SOURCE
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		199506
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Deal with all versions of POSIX.  The ordering relative to the tests above is
 | 
				
			||||||
 | 
					 * important.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(_POSIX_SOURCE) && !defined(_POSIX_C_SOURCE)
 | 
				
			||||||
 | 
					#define	_POSIX_C_SOURCE		198808
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef _POSIX_C_SOURCE
 | 
				
			||||||
 | 
					#if _POSIX_C_SOURCE >= 200809
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		200809
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1999
 | 
				
			||||||
 | 
					#elif _POSIX_C_SOURCE >= 200112
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		200112
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1999
 | 
				
			||||||
 | 
					#elif _POSIX_C_SOURCE >= 199506
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		199506
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1990
 | 
				
			||||||
 | 
					#elif _POSIX_C_SOURCE >= 199309
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		199309
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1990
 | 
				
			||||||
 | 
					#elif _POSIX_C_SOURCE >= 199209
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		199209
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1990
 | 
				
			||||||
 | 
					#elif _POSIX_C_SOURCE >= 199009
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		199009
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1990
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		198808
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		0
 | 
				
			||||||
 | 
					#endif /* _POSIX_C_SOURCE */
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Deal with _ANSI_SOURCE:
 | 
				
			||||||
 | 
					 * If it is defined, and no other compilation environment is explicitly
 | 
				
			||||||
 | 
					 * requested, then define our internal feature-test macros to zero.  This
 | 
				
			||||||
 | 
					 * makes no difference to the preprocessor (undefined symbols in preprocessing
 | 
				
			||||||
 | 
					 * expressions are defined to have value zero), but makes it more convenient for
 | 
				
			||||||
 | 
					 * a test program to print out the values.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * If a program mistakenly defines _ANSI_SOURCE and some other macro such as
 | 
				
			||||||
 | 
					 * _POSIX_C_SOURCE, we will assume that it wants the broader compilation
 | 
				
			||||||
 | 
					 * environment (and in fact we will never get here).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(_ANSI_SOURCE)	/* Hide almost everything. */
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__BSD_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1990
 | 
				
			||||||
 | 
					#elif defined(_C99_SOURCE)	/* Localism to specify strict C99 env. */
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__BSD_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		1999
 | 
				
			||||||
 | 
					#elif defined(_C11_SOURCE)	/* Localism to specify strict C11 env. */
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__BSD_VISIBLE		0
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		2011
 | 
				
			||||||
 | 
					#elif defined(_GNU_SOURCE)	/* Everything and the kitchen sink. */
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		200809
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		700
 | 
				
			||||||
 | 
					#define	__BSD_VISIBLE		1
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		2011
 | 
				
			||||||
 | 
					#define	__GNU_VISIBLE		1
 | 
				
			||||||
 | 
					#else				/* Default: everything except __GNU_VISIBLE. */
 | 
				
			||||||
 | 
					#define	__POSIX_VISIBLE		200809
 | 
				
			||||||
 | 
					#define	__XSI_VISIBLE		700
 | 
				
			||||||
 | 
					#define	__BSD_VISIBLE		1
 | 
				
			||||||
 | 
					#define	__ISO_C_VISIBLE		2011
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_SYS_CDEFS_H_ */
 | 
				
			||||||
							
								
								
									
										293
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/config.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										293
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/config.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,293 @@
 | 
				
			|||||||
 | 
					#ifndef __SYS_CONFIG_H__
 | 
				
			||||||
 | 
					#define __SYS_CONFIG_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/ieeefp.h>  /* floating point macros */
 | 
				
			||||||
 | 
					#include <sys/features.h>	/* POSIX defs */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __aarch64__
 | 
				
			||||||
 | 
					#define MALLOC_ALIGNMENT 16
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* exceptions first */
 | 
				
			||||||
 | 
					#if defined(__H8500__) || defined(__W65__)
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					/* ???  This conditional is true for the h8500 and the w65, defining H8300
 | 
				
			||||||
 | 
					   in those cases probably isn't the right thing to do.  */
 | 
				
			||||||
 | 
					#define H8300 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 16 bit integer machines */
 | 
				
			||||||
 | 
					#if defined(__Z8001__) || defined(__Z8002__) || defined(__H8500__) || defined(__W65__) || defined (__mn10200__) || defined (__AVR__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX 32767
 | 
				
			||||||
 | 
					#define UINT_MAX 65535
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__H8300__) || defined (__H8300H__) || defined(__H8300S__) || defined (__H8300SX__)
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#define H8300 1
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(__CR16__) || defined(__CR16C__) ||defined(__CR16CP__))
 | 
				
			||||||
 | 
					#ifndef __INT32__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS      
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX 32767
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#else /* INT32 */
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX 2147483647
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#endif /* INT32 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* CR16C */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__xc16x__) || defined (__xc16xL__) || defined (__xc16xS__)
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __W65__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__D10V__)
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#define _POINTER_INT short
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__mc68hc11__) || defined(__mc68hc12__) || defined(__mc68hc1x__)
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#define _POINTER_INT short
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__m68k__) || defined(__mc68000__)
 | 
				
			||||||
 | 
					#define _READ_WRITE_RETURN_TYPE _ssize_t
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef ___AM29K__
 | 
				
			||||||
 | 
					#define _FLOAT_RET double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i386__
 | 
				
			||||||
 | 
					#ifndef __unix__
 | 
				
			||||||
 | 
					/* in other words, go32 */
 | 
				
			||||||
 | 
					#define _FLOAT_RET double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__linux__) || defined(__RDOS__)
 | 
				
			||||||
 | 
					/* we want the reentrancy structure to be returned by a function */
 | 
				
			||||||
 | 
					#define __DYNAMIC_REENT__
 | 
				
			||||||
 | 
					#define HAVE_GETDATE
 | 
				
			||||||
 | 
					#define _HAVE_SYSTYPES
 | 
				
			||||||
 | 
					#define _READ_WRITE_RETURN_TYPE _ssize_t
 | 
				
			||||||
 | 
					#define __LARGE64_FILES 1
 | 
				
			||||||
 | 
					/* we use some glibc header files so turn on glibc large file feature */
 | 
				
			||||||
 | 
					#define _LARGEFILE64_SOURCE 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __mn10200__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __AVR__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#define _POINTER_INT short
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __v850
 | 
				
			||||||
 | 
					#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__sda__))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* For the PowerPC eabi, force the _impure_ptr to be in .sdata */
 | 
				
			||||||
 | 
					#if defined(__PPC__)
 | 
				
			||||||
 | 
					#if defined(_CALL_SYSV)
 | 
				
			||||||
 | 
					#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __SPE__
 | 
				
			||||||
 | 
					#define _LONG_DOUBLE double
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Configure small REENT structure for Xilinx MicroBlaze platforms */
 | 
				
			||||||
 | 
					#if defined (__MICROBLAZE__)
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* Xilinx XMK uses Unix98 mutex */
 | 
				
			||||||
 | 
					#ifdef __XMK__
 | 
				
			||||||
 | 
					#define _UNIX98_THREAD_MUTEX_ATTRIBUTES
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__mips__) && !defined(__rtems__)
 | 
				
			||||||
 | 
					#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __xstormy16__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#define MALLOC_ALIGNMENT 8
 | 
				
			||||||
 | 
					#define _POINTER_INT short
 | 
				
			||||||
 | 
					#define __BUFSIZ__ 16
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined __MSP430__
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MSP430X_LARGE__
 | 
				
			||||||
 | 
					#define _POINTER_INT long
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _POINTER_INT int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __m32c__
 | 
				
			||||||
 | 
					#define __SMALL_BITFIELDS
 | 
				
			||||||
 | 
					#undef INT_MAX
 | 
				
			||||||
 | 
					#undef UINT_MAX
 | 
				
			||||||
 | 
					#define INT_MAX __INT_MAX__
 | 
				
			||||||
 | 
					#define UINT_MAX (__INT_MAX__ * 2U + 1)
 | 
				
			||||||
 | 
					#define MALLOC_ALIGNMENT 8
 | 
				
			||||||
 | 
					#if defined(__r8c_cpu__) || defined(__m16c_cpu__)
 | 
				
			||||||
 | 
					#define _POINTER_INT short
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _POINTER_INT long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define __BUFSIZ__ 16
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif /* __m32c__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __SPU__
 | 
				
			||||||
 | 
					#define MALLOC_ALIGNMENT 16
 | 
				
			||||||
 | 
					#define __CUSTOM_FILE_IO__
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __XTENSA__
 | 
				
			||||||
 | 
					#include <xtensa/config/core-isa.h>
 | 
				
			||||||
 | 
					#define MALLOC_ALIGNMENT ((XCHAL_DATA_WIDTH) < 16 ? 16 : (XCHAL_DATA_WIDTH))
 | 
				
			||||||
 | 
					/* esp8266-specific: shrink the default fd buffer size */
 | 
				
			||||||
 | 
					#define __BUFSIZ__ 128
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This block should be kept in sync with GCC's limits.h.  The point
 | 
				
			||||||
 | 
					   of having these definitions here is to not include limits.h, which
 | 
				
			||||||
 | 
					   would pollute the user namespace, while still using types of the
 | 
				
			||||||
 | 
					   the correct widths when deciding how to define __int32_t and
 | 
				
			||||||
 | 
					   __int64_t.  */
 | 
				
			||||||
 | 
					#ifndef __INT_MAX__
 | 
				
			||||||
 | 
					# ifdef INT_MAX
 | 
				
			||||||
 | 
					#  define __INT_MAX__ INT_MAX
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define __INT_MAX__ 2147483647
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __LONG_MAX__
 | 
				
			||||||
 | 
					# ifdef LONG_MAX
 | 
				
			||||||
 | 
					#  define __LONG_MAX__ LONG_MAX
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  if defined (__alpha__) || (defined (__sparc__) && defined(__arch64__)) \
 | 
				
			||||||
 | 
					      || defined (__sparcv9)
 | 
				
			||||||
 | 
					#   define __LONG_MAX__ 9223372036854775807L
 | 
				
			||||||
 | 
					#  else
 | 
				
			||||||
 | 
					#   define __LONG_MAX__ 2147483647L
 | 
				
			||||||
 | 
					#  endif /* __alpha__ || sparc64 */
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* End of block that should be kept in sync with GCC's limits.h.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _POINTER_INT
 | 
				
			||||||
 | 
					#define _POINTER_INT long
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __frv__
 | 
				
			||||||
 | 
					#define __ATTRIBUTE_IMPURE_PTR__ __attribute__((__section__(".sdata")))
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#undef __RAND_MAX
 | 
				
			||||||
 | 
					#if __INT_MAX__ == 32767
 | 
				
			||||||
 | 
					#define __RAND_MAX 32767
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __RAND_MAX 0x7fffffff
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#include <cygwin/config.h>
 | 
				
			||||||
 | 
					#if !defined (__STRICT_ANSI__) || (__STDC_VERSION__ >= 199901L)
 | 
				
			||||||
 | 
					#define __USE_XOPEN2K 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					#define __FILENAME_MAX__ 255
 | 
				
			||||||
 | 
					#define _READ_WRITE_RETURN_TYPE _ssize_t
 | 
				
			||||||
 | 
					#define __DYNAMIC_REENT__
 | 
				
			||||||
 | 
					#define _REENT_GLOBAL_ATEXIT
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __EXPORT
 | 
				
			||||||
 | 
					#define __EXPORT
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __IMPORT
 | 
				
			||||||
 | 
					#define __IMPORT
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Define return type of read/write routines.  In POSIX, the return type
 | 
				
			||||||
 | 
					   for read()/write() is "ssize_t" but legacy newlib code has been using
 | 
				
			||||||
 | 
					   "int" for some time.  If not specified, "int" is defaulted.  */
 | 
				
			||||||
 | 
					#ifndef _READ_WRITE_RETURN_TYPE
 | 
				
			||||||
 | 
					#define _READ_WRITE_RETURN_TYPE int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* Define `count' parameter of read/write routines.  In POSIX, the `count'
 | 
				
			||||||
 | 
					   parameter is "size_t" but legacy newlib code has been using "int" for some
 | 
				
			||||||
 | 
					   time.  If not specified, "int" is defaulted.  */
 | 
				
			||||||
 | 
					#ifndef _READ_WRITE_BUFSIZE_TYPE
 | 
				
			||||||
 | 
					#define _READ_WRITE_BUFSIZE_TYPE int
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __WCHAR_MAX__
 | 
				
			||||||
 | 
					#if __INT_MAX__ == 32767 || defined (_WIN32)
 | 
				
			||||||
 | 
					#define __WCHAR_MAX__ 0xffffu
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* See if small reent asked for at configuration time and
 | 
				
			||||||
 | 
					   is not chosen by the platform by default.  */
 | 
				
			||||||
 | 
					#ifdef _WANT_REENT_SMALL
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					#define _REENT_SMALL
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* If _MB_EXTENDED_CHARSETS_ALL is set, we want all of the extended
 | 
				
			||||||
 | 
					   charsets.  The extended charsets add a few functions and a couple
 | 
				
			||||||
 | 
					   of tables of a few K each. */
 | 
				
			||||||
 | 
					#ifdef _MB_EXTENDED_CHARSETS_ALL
 | 
				
			||||||
 | 
					#define _MB_EXTENDED_CHARSETS_ISO 1
 | 
				
			||||||
 | 
					#define _MB_EXTENDED_CHARSETS_WINDOWS 1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __SYS_CONFIG_H__ */
 | 
				
			||||||
@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					#error System-specific custom_file.h is missing.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										10
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/dir.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										10
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/dir.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,10 @@
 | 
				
			|||||||
 | 
					/* BSD predecessor of POSIX.1 <dirent.h> and struct dirent */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_DIR_H_
 | 
				
			||||||
 | 
					#define _SYS_DIR_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <dirent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define direct dirent
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /*_SYS_DIR_H_*/
 | 
				
			||||||
							
								
								
									
										13
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/dirent.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/dirent.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,13 @@
 | 
				
			|||||||
 | 
					/* <dirent.h> includes <sys/dirent.h>, which is this file.  On a
 | 
				
			||||||
 | 
					   system which supports <dirent.h>, this file is overridden by
 | 
				
			||||||
 | 
					   dirent.h in the libc/sys/.../sys directory.  On a system which does
 | 
				
			||||||
 | 
					   not support <dirent.h>, we will get this file which uses #error to force
 | 
				
			||||||
 | 
					   an error.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#error "<dirent.h> not supported"
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										192
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/errno.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										192
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/errno.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,192 @@
 | 
				
			|||||||
 | 
					/* errno is not a global variable, because that would make using it
 | 
				
			||||||
 | 
					   non-reentrant.  Instead, its address is returned by the function
 | 
				
			||||||
 | 
					   __errno.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_ERRNO_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _SYS_ERRNO_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_ONLY
 | 
				
			||||||
 | 
					#define errno (*__errno())
 | 
				
			||||||
 | 
					extern int *__errno _PARAMS ((void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Please don't use these variables directly.
 | 
				
			||||||
 | 
					   Use strerror instead. */
 | 
				
			||||||
 | 
					extern __IMPORT _CONST char * _CONST _sys_errlist[];
 | 
				
			||||||
 | 
					extern __IMPORT int _sys_nerr;
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					extern __IMPORT const char * const sys_errlist[];
 | 
				
			||||||
 | 
					extern __IMPORT int sys_nerr;
 | 
				
			||||||
 | 
					extern __IMPORT char *program_invocation_name;
 | 
				
			||||||
 | 
					extern __IMPORT char *program_invocation_short_name;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __errno_r(ptr) ((ptr)->_errno)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	EPERM 1		/* Not owner */
 | 
				
			||||||
 | 
					#define	ENOENT 2	/* No such file or directory */
 | 
				
			||||||
 | 
					#define	ESRCH 3		/* No such process */
 | 
				
			||||||
 | 
					#define	EINTR 4		/* Interrupted system call */
 | 
				
			||||||
 | 
					#define	EIO 5		/* I/O error */
 | 
				
			||||||
 | 
					#define	ENXIO 6		/* No such device or address */
 | 
				
			||||||
 | 
					#define	E2BIG 7		/* Arg list too long */
 | 
				
			||||||
 | 
					#define	ENOEXEC 8	/* Exec format error */
 | 
				
			||||||
 | 
					#define	EBADF 9		/* Bad file number */
 | 
				
			||||||
 | 
					#define	ECHILD 10	/* No children */
 | 
				
			||||||
 | 
					#define	EAGAIN 11	/* No more processes */
 | 
				
			||||||
 | 
					#define	ENOMEM 12	/* Not enough space */
 | 
				
			||||||
 | 
					#define	EACCES 13	/* Permission denied */
 | 
				
			||||||
 | 
					#define	EFAULT 14	/* Bad address */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define	ENOTBLK 15	/* Block device required */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	EBUSY 16	/* Device or resource busy */
 | 
				
			||||||
 | 
					#define	EEXIST 17	/* File exists */
 | 
				
			||||||
 | 
					#define	EXDEV 18	/* Cross-device link */
 | 
				
			||||||
 | 
					#define	ENODEV 19	/* No such device */
 | 
				
			||||||
 | 
					#define	ENOTDIR 20	/* Not a directory */
 | 
				
			||||||
 | 
					#define	EISDIR 21	/* Is a directory */
 | 
				
			||||||
 | 
					#define	EINVAL 22	/* Invalid argument */
 | 
				
			||||||
 | 
					#define	ENFILE 23	/* Too many open files in system */
 | 
				
			||||||
 | 
					#define	EMFILE 24	/* File descriptor value too large */
 | 
				
			||||||
 | 
					#define	ENOTTY 25	/* Not a character device */
 | 
				
			||||||
 | 
					#define	ETXTBSY 26	/* Text file busy */
 | 
				
			||||||
 | 
					#define	EFBIG 27	/* File too large */
 | 
				
			||||||
 | 
					#define	ENOSPC 28	/* No space left on device */
 | 
				
			||||||
 | 
					#define	ESPIPE 29	/* Illegal seek */
 | 
				
			||||||
 | 
					#define	EROFS 30	/* Read-only file system */
 | 
				
			||||||
 | 
					#define	EMLINK 31	/* Too many links */
 | 
				
			||||||
 | 
					#define	EPIPE 32	/* Broken pipe */
 | 
				
			||||||
 | 
					#define	EDOM 33		/* Mathematics argument out of domain of function */
 | 
				
			||||||
 | 
					#define	ERANGE 34	/* Result too large */
 | 
				
			||||||
 | 
					#define	ENOMSG 35	/* No message of desired type */
 | 
				
			||||||
 | 
					#define	EIDRM 36	/* Identifier removed */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define	ECHRNG 37	/* Channel number out of range */
 | 
				
			||||||
 | 
					#define	EL2NSYNC 38	/* Level 2 not synchronized */
 | 
				
			||||||
 | 
					#define	EL3HLT 39	/* Level 3 halted */
 | 
				
			||||||
 | 
					#define	EL3RST 40	/* Level 3 reset */
 | 
				
			||||||
 | 
					#define	ELNRNG 41	/* Link number out of range */
 | 
				
			||||||
 | 
					#define	EUNATCH 42	/* Protocol driver not attached */
 | 
				
			||||||
 | 
					#define	ENOCSI 43	/* No CSI structure available */
 | 
				
			||||||
 | 
					#define	EL2HLT 44	/* Level 2 halted */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	EDEADLK 45	/* Deadlock */
 | 
				
			||||||
 | 
					#define	ENOLCK 46	/* No lock */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define EBADE 50	/* Invalid exchange */
 | 
				
			||||||
 | 
					#define EBADR 51	/* Invalid request descriptor */
 | 
				
			||||||
 | 
					#define EXFULL 52	/* Exchange full */
 | 
				
			||||||
 | 
					#define ENOANO 53	/* No anode */
 | 
				
			||||||
 | 
					#define EBADRQC 54	/* Invalid request code */
 | 
				
			||||||
 | 
					#define EBADSLT 55	/* Invalid slot */
 | 
				
			||||||
 | 
					#define EDEADLOCK 56	/* File locking deadlock error */
 | 
				
			||||||
 | 
					#define EBFONT 57	/* Bad font file fmt */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ENOSTR 60	/* Not a stream */
 | 
				
			||||||
 | 
					#define ENODATA 61	/* No data (for no delay io) */
 | 
				
			||||||
 | 
					#define ETIME 62	/* Stream ioctl timeout */
 | 
				
			||||||
 | 
					#define ENOSR 63	/* No stream resources */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ENONET 64	/* Machine is not on the network */
 | 
				
			||||||
 | 
					#define ENOPKG 65	/* Package not installed */
 | 
				
			||||||
 | 
					#define EREMOTE 66	/* The object is remote */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ENOLINK 67	/* Virtual circuit is gone */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define EADV 68		/* Advertise error */
 | 
				
			||||||
 | 
					#define ESRMNT 69	/* Srmount error */
 | 
				
			||||||
 | 
					#define	ECOMM 70	/* Communication error on send */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EPROTO 71	/* Protocol error */
 | 
				
			||||||
 | 
					#define	EMULTIHOP 74	/* Multihop attempted */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define	ELBIN 75	/* Inode is remote (not really error) */
 | 
				
			||||||
 | 
					#define	EDOTDOT 76	/* Cross mount point (not really error) */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EBADMSG 77	/* Bad message */
 | 
				
			||||||
 | 
					#define EFTYPE 79	/* Inappropriate file type or format */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ENOTUNIQ 80	/* Given log. name not unique */
 | 
				
			||||||
 | 
					#define EBADFD 81	/* f.d. invalid for this operation */
 | 
				
			||||||
 | 
					#define EREMCHG 82	/* Remote address changed */
 | 
				
			||||||
 | 
					#define ELIBACC 83	/* Can't access a needed shared lib */
 | 
				
			||||||
 | 
					#define ELIBBAD 84	/* Accessing a corrupted shared lib */
 | 
				
			||||||
 | 
					#define ELIBSCN 85	/* .lib section in a.out corrupted */
 | 
				
			||||||
 | 
					#define ELIBMAX 86	/* Attempting to link in too many libs */
 | 
				
			||||||
 | 
					#define ELIBEXEC 87	/* Attempting to exec a shared library */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ENOSYS 88	/* Function not implemented */
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#define ENMFILE 89      /* No more files */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ENOTEMPTY 90	/* Directory not empty */
 | 
				
			||||||
 | 
					#define ENAMETOOLONG 91	/* File or path name too long */
 | 
				
			||||||
 | 
					#define ELOOP 92	/* Too many symbolic links */
 | 
				
			||||||
 | 
					#define EOPNOTSUPP 95	/* Operation not supported on socket */
 | 
				
			||||||
 | 
					#define EPFNOSUPPORT 96 /* Protocol family not supported */
 | 
				
			||||||
 | 
					#define ECONNRESET 104  /* Connection reset by peer */
 | 
				
			||||||
 | 
					#define ENOBUFS 105	/* No buffer space available */
 | 
				
			||||||
 | 
					#define EAFNOSUPPORT 106 /* Address family not supported by protocol family */
 | 
				
			||||||
 | 
					#define EPROTOTYPE 107	/* Protocol wrong type for socket */
 | 
				
			||||||
 | 
					#define ENOTSOCK 108	/* Socket operation on non-socket */
 | 
				
			||||||
 | 
					#define ENOPROTOOPT 109	/* Protocol not available */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ESHUTDOWN 110	/* Can't send after socket shutdown */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define ECONNREFUSED 111	/* Connection refused */
 | 
				
			||||||
 | 
					#define EADDRINUSE 112		/* Address already in use */
 | 
				
			||||||
 | 
					#define ECONNABORTED 113	/* Software caused connection abort */
 | 
				
			||||||
 | 
					#define ENETUNREACH 114		/* Network is unreachable */
 | 
				
			||||||
 | 
					#define ENETDOWN 115		/* Network interface is not configured */
 | 
				
			||||||
 | 
					#define ETIMEDOUT 116		/* Connection timed out */
 | 
				
			||||||
 | 
					#define EHOSTDOWN 117		/* Host is down */
 | 
				
			||||||
 | 
					#define EHOSTUNREACH 118	/* Host is unreachable */
 | 
				
			||||||
 | 
					#define EINPROGRESS 119		/* Connection already in progress */
 | 
				
			||||||
 | 
					#define EALREADY 120		/* Socket already connected */
 | 
				
			||||||
 | 
					#define EDESTADDRREQ 121	/* Destination address required */
 | 
				
			||||||
 | 
					#define EMSGSIZE 122		/* Message too long */
 | 
				
			||||||
 | 
					#define EPROTONOSUPPORT 123	/* Unknown protocol */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ESOCKTNOSUPPORT 124	/* Socket type not supported */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EADDRNOTAVAIL 125	/* Address not available */
 | 
				
			||||||
 | 
					#define ENETRESET 126		/* Connection aborted by network */
 | 
				
			||||||
 | 
					#define EISCONN 127		/* Socket is already connected */
 | 
				
			||||||
 | 
					#define ENOTCONN 128		/* Socket is not connected */
 | 
				
			||||||
 | 
					#define ETOOMANYREFS 129
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define EPROCLIM 130
 | 
				
			||||||
 | 
					#define EUSERS 131
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EDQUOT 132
 | 
				
			||||||
 | 
					#define ESTALE 133
 | 
				
			||||||
 | 
					#define ENOTSUP 134		/* Not supported */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ENOMEDIUM 135   /* No medium (in tape drive) */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#define ENOSHARE 136    /* No such host or network path */
 | 
				
			||||||
 | 
					#define ECASECLASH 137  /* Filename exists with different case */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EILSEQ 138		/* Illegal byte sequence */
 | 
				
			||||||
 | 
					#define EOVERFLOW 139	/* Value too large for defined data type */
 | 
				
			||||||
 | 
					#define ECANCELED 140	/* Operation canceled */
 | 
				
			||||||
 | 
					#define ENOTRECOVERABLE 141	/* State not recoverable */
 | 
				
			||||||
 | 
					#define EOWNERDEAD 142	/* Previous owner died */
 | 
				
			||||||
 | 
					#ifdef __LINUX_ERRNO_EXTENSIONS__
 | 
				
			||||||
 | 
					#define ESTRPIPE 143	/* Streams pipe error */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define EWOULDBLOCK EAGAIN	/* Operation would block */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __ELASTERROR 2000	/* Users can add values starting here */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_ERRNO_H */
 | 
				
			||||||
							
								
								
									
										4
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/fcntl.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/fcntl.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,4 @@
 | 
				
			|||||||
 | 
					#ifndef _SYS_FCNTL_H_
 | 
				
			||||||
 | 
					#define _SYS_FCNTL_H_
 | 
				
			||||||
 | 
					#include <sys/_default_fcntl.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										235
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/features.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										235
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/features.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,235 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Written by Joel Sherrill <joel@OARcorp.com>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  COPYRIGHT (c) 1989-2000.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  On-Line Applications Research Corporation (OAR).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Permission to use, copy, modify, and distribute this software for any
 | 
				
			||||||
 | 
					 *  purpose without fee is hereby granted, provided that this entire notice
 | 
				
			||||||
 | 
					 *  is included in all copies of any software which is or includes a copy
 | 
				
			||||||
 | 
					 *  or modification of this software.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 | 
				
			||||||
 | 
					 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 | 
				
			||||||
 | 
					 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 | 
				
			||||||
 | 
					 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_FEATURES_H
 | 
				
			||||||
 | 
					#define _SYS_FEATURES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macros to determine that newlib is being used.  Put in this header to 
 | 
				
			||||||
 | 
					 * be similar to where glibc stores its version of these macros.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define __NEWLIB__  		2
 | 
				
			||||||
 | 
					#define __NEWLIB_MINOR__  	1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Macro to test version of GCC.  Returns 0 for non-GCC or too old GCC. */
 | 
				
			||||||
 | 
					#ifndef __GNUC_PREREQ
 | 
				
			||||||
 | 
					# if defined __GNUC__ && defined __GNUC_MINOR__
 | 
				
			||||||
 | 
					#  define __GNUC_PREREQ(maj, min) \
 | 
				
			||||||
 | 
						((__GNUC__ << 16) + __GNUC_MINOR__ >= ((maj) << 16) + (min))
 | 
				
			||||||
 | 
					# else
 | 
				
			||||||
 | 
					#  define __GNUC_PREREQ(maj, min) 0
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					#endif /* __GNUC_PREREQ */
 | 
				
			||||||
 | 
					/* Version with trailing underscores for BSD compatibility. */
 | 
				
			||||||
 | 
					#define	__GNUC_PREREQ__(ma, mi)	__GNUC_PREREQ(ma, mi)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* RTEMS adheres to POSIX -- 1003.1b with some features from annexes.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __rtems__
 | 
				
			||||||
 | 
					#define _POSIX_JOB_CONTROL     		1
 | 
				
			||||||
 | 
					#define _POSIX_SAVED_IDS       		1
 | 
				
			||||||
 | 
					#define _POSIX_VERSION			199309L
 | 
				
			||||||
 | 
					#define _POSIX_ASYNCHRONOUS_IO		1
 | 
				
			||||||
 | 
					#define _POSIX_FSYNC			1
 | 
				
			||||||
 | 
					#define _POSIX_MAPPED_FILES		1
 | 
				
			||||||
 | 
					#define _POSIX_MEMLOCK			1
 | 
				
			||||||
 | 
					#define _POSIX_MEMLOCK_RANGE		1
 | 
				
			||||||
 | 
					#define _POSIX_MEMORY_PROTECTION	1
 | 
				
			||||||
 | 
					#define _POSIX_MESSAGE_PASSING		1
 | 
				
			||||||
 | 
					#define _POSIX_MONOTONIC_CLOCK		200112L
 | 
				
			||||||
 | 
					#define _POSIX_PRIORITIZED_IO		1
 | 
				
			||||||
 | 
					#define _POSIX_PRIORITY_SCHEDULING	1
 | 
				
			||||||
 | 
					#define _POSIX_REALTIME_SIGNALS		1
 | 
				
			||||||
 | 
					#define _POSIX_SEMAPHORES		1
 | 
				
			||||||
 | 
					/* #define _POSIX_SHARED_MEMORY_OBJECTS	1 */
 | 
				
			||||||
 | 
					#define _POSIX_SYNCHRONIZED_IO		1
 | 
				
			||||||
 | 
					#define _POSIX_TIMERS			1
 | 
				
			||||||
 | 
					#define _POSIX_BARRIERS                 200112L
 | 
				
			||||||
 | 
					#define _POSIX_READER_WRITER_LOCKS      200112L
 | 
				
			||||||
 | 
					#define _POSIX_SPIN_LOCKS               200112L
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* In P1003.1b but defined by drafts at least as early as P1003.1c/D10  */
 | 
				
			||||||
 | 
					#define _POSIX_THREADS				1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_ATTR_STACKADDR		1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_ATTR_STACKSIZE		1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PRIORITY_SCHEDULING	1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PRIO_INHERIT		1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PRIO_PROTECT		1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PROCESS_SHARED		1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_SAFE_FUNCTIONS		1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* P1003.4b/D8 defines the constants below this comment. */
 | 
				
			||||||
 | 
					#define _POSIX_SPAWN				1
 | 
				
			||||||
 | 
					#define _POSIX_TIMEOUTS				1
 | 
				
			||||||
 | 
					#define _POSIX_CPUTIME				1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_CPUTIME			1
 | 
				
			||||||
 | 
					#define _POSIX_SPORADIC_SERVER			1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_SPORADIC_SERVER		1
 | 
				
			||||||
 | 
					#define _POSIX_DEVICE_CONTROL			1
 | 
				
			||||||
 | 
					#define _POSIX_DEVCTL_DIRECTION			1
 | 
				
			||||||
 | 
					#define _POSIX_INTERRUPT_CONTROL		1
 | 
				
			||||||
 | 
					#define _POSIX_ADVISORY_INFO			1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* UNIX98 added some new pthread mutex attributes */
 | 
				
			||||||
 | 
					#define _UNIX98_THREAD_MUTEX_ATTRIBUTES         1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* XMK loosely adheres to POSIX -- 1003.1 */
 | 
				
			||||||
 | 
					#ifdef __XMK__
 | 
				
			||||||
 | 
					#define _POSIX_THREADS				1
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PRIORITY_SCHEDULING	1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __svr4__
 | 
				
			||||||
 | 
					# define _POSIX_JOB_CONTROL     1
 | 
				
			||||||
 | 
					# define _POSIX_SAVED_IDS       1
 | 
				
			||||||
 | 
					# define _POSIX_VERSION 199009L
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__STRICT_ANSI__) || defined(__cplusplus) || __STDC_VERSION__ >= 199901L
 | 
				
			||||||
 | 
					#define _POSIX_VERSION				200112L
 | 
				
			||||||
 | 
					#define _POSIX2_VERSION				200112L
 | 
				
			||||||
 | 
					#define _XOPEN_VERSION				   600
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _POSIX_ADVISORY_INFO			200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_ASYNCHRONOUS_IO		    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_BARRIERS			    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_CHOWN_RESTRICTED			     1
 | 
				
			||||||
 | 
					#define _POSIX_CLOCK_SELECTION			200112L
 | 
				
			||||||
 | 
					#define _POSIX_CPUTIME			    	200112L
 | 
				
			||||||
 | 
					#define _POSIX_FSYNC				200112L
 | 
				
			||||||
 | 
					#define _POSIX_IPV6				200112L
 | 
				
			||||||
 | 
					#define _POSIX_JOB_CONTROL			     1
 | 
				
			||||||
 | 
					#define _POSIX_MAPPED_FILES			200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_MEMLOCK			    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_MEMLOCK_RANGE			200112L
 | 
				
			||||||
 | 
					#define _POSIX_MEMORY_PROTECTION		200112L
 | 
				
			||||||
 | 
					#define _POSIX_MESSAGE_PASSING			200112L
 | 
				
			||||||
 | 
					#define _POSIX_MONOTONIC_CLOCK			200112L
 | 
				
			||||||
 | 
					#define _POSIX_NO_TRUNC				     1
 | 
				
			||||||
 | 
					/* #define _POSIX_PRIORITIZED_IO		    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_PRIORITY_SCHEDULING		200112L
 | 
				
			||||||
 | 
					#define _POSIX_RAW_SOCKETS			200112L
 | 
				
			||||||
 | 
					#define _POSIX_READER_WRITER_LOCKS		200112L
 | 
				
			||||||
 | 
					#define _POSIX_REALTIME_SIGNALS			200112L
 | 
				
			||||||
 | 
					#define _POSIX_REGEXP				     1
 | 
				
			||||||
 | 
					#define _POSIX_SAVED_IDS			     1
 | 
				
			||||||
 | 
					#define _POSIX_SEMAPHORES			200112L
 | 
				
			||||||
 | 
					#define _POSIX_SHARED_MEMORY_OBJECTS		200112L 
 | 
				
			||||||
 | 
					#define _POSIX_SHELL				     1
 | 
				
			||||||
 | 
					/* #define _POSIX_SPAWN				    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_SPIN_LOCKS			    200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_SPORADIC_SERVER		    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_SYNCHRONIZED_IO			200112L
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_ATTR_STACKADDR		200112L
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_ATTR_STACKSIZE		200112L
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_CPUTIME			200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_THREAD_PRIO_INHERIT		    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_THREAD_PRIO_PROTECT		    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PRIORITY_SCHEDULING	200112L
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_PROCESS_SHARED		200112L
 | 
				
			||||||
 | 
					#define _POSIX_THREAD_SAFE_FUNCTIONS		200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_THREAD_SPORADIC_SERVER	    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_THREADS				200112L
 | 
				
			||||||
 | 
					/* #define _POSIX_TIMEOUTS			    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_TIMERS				     1
 | 
				
			||||||
 | 
					/* #define _POSIX_TRACE				    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_TRACE_EVENT_FILTER		    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_TRACE_INHERIT			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_TRACE_LOG			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX_TYPED_MEMORY_OBJECTS		    -1 */
 | 
				
			||||||
 | 
					#define _POSIX_VDISABLE				   '\0'
 | 
				
			||||||
 | 
					#define _POSIX2_C_BIND				200112L
 | 
				
			||||||
 | 
					#define _POSIX2_C_DEV				200112L
 | 
				
			||||||
 | 
					#define _POSIX2_CHAR_TERM			200112L
 | 
				
			||||||
 | 
					/* #define _POSIX2_FORT_DEV			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_FORT_RUN			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_LOCALEDEF			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS				    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS_ACCOUNTING		    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS_CHECKPOINT		    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS_LOCATE			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS_MESSAGE			    -1 */
 | 
				
			||||||
 | 
					/* #define _POSIX2_PBS_TRACK			    -1 */
 | 
				
			||||||
 | 
					#define _POSIX2_SW_DEV				200112L
 | 
				
			||||||
 | 
					#define _POSIX2_UPE				200112L
 | 
				
			||||||
 | 
					#define _POSIX_V6_ILP32_OFF32			    -1
 | 
				
			||||||
 | 
					#ifdef __LP64__
 | 
				
			||||||
 | 
					#define _POSIX_V6_ILP32_OFFBIG			    -1
 | 
				
			||||||
 | 
					#define _POSIX_V6_LP64_OFF64			     1
 | 
				
			||||||
 | 
					#define _POSIX_V6_LPBIG_OFFBIG			     1
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _POSIX_V6_ILP32_OFFBIG			     1
 | 
				
			||||||
 | 
					#define _POSIX_V6_LP64_OFF64			    -1
 | 
				
			||||||
 | 
					#define _POSIX_V6_LPBIG_OFFBIG			    -1
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _XBS5_ILP32_OFF32			_POSIX_V6_ILP32_OFF32
 | 
				
			||||||
 | 
					#define _XBS5_ILP32_OFFBIG			_POSIX_V6_ILP32_OFFBIG
 | 
				
			||||||
 | 
					#define _XBS5_LP64_OFF64			_POSIX_V6_LP64_OFF64
 | 
				
			||||||
 | 
					#define _XBS5_LPBIG_OFFBIG			_POSIX_V6_LPBIG_OFFBIG
 | 
				
			||||||
 | 
					#define _XOPEN_CRYPT				     1
 | 
				
			||||||
 | 
					#define _XOPEN_ENH_I18N				     1
 | 
				
			||||||
 | 
					/* #define _XOPEN_LEGACY			    -1 */
 | 
				
			||||||
 | 
					/* #define _XOPEN_REALTIME			    -1 */
 | 
				
			||||||
 | 
					/* #define _XOPEN_REALTIME_THREADS		    -1 */
 | 
				
			||||||
 | 
					#define _XOPEN_SHM				     1
 | 
				
			||||||
 | 
					/* #define _XOPEN_STREAMS			    -1 */
 | 
				
			||||||
 | 
					/* #define _XOPEN_UNIX				    -1 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !__STRICT_ANSI__ || __cplusplus || __STDC_VERSION__ >= 199901L */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The value corresponds to UNICODE version 4.0, which is the version
 | 
				
			||||||
 | 
					   supported by XP.  Newlib supports 5.2 (2011) but so far Cygwin needs
 | 
				
			||||||
 | 
					   the MS conversions for double-byte charsets. */
 | 
				
			||||||
 | 
					#define __STDC_ISO_10646__ 200305L
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Per the permission given in POSIX.1-2008 section 2.2.1, define
 | 
				
			||||||
 | 
					 * _POSIX_C_SOURCE if _XOPEN_SOURCE is defined and _POSIX_C_SOURCE is not.
 | 
				
			||||||
 | 
					 * (_XOPEN_SOURCE indicates that XSI extensions are desired by an application.)
 | 
				
			||||||
 | 
					 * This permission is first granted in 2008, but use it for older ones, also.
 | 
				
			||||||
 | 
					 * Allow for _XOPEN_SOURCE to be empty (from the earliest form of it, before it
 | 
				
			||||||
 | 
					 * was required to have specific values).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if !defined(_POSIX_C_SOURCE)  &&  defined(_XOPEN_SOURCE) 
 | 
				
			||||||
 | 
					  #if (_XOPEN_SOURCE - 0) == 700	/* POSIX.1-2008 */
 | 
				
			||||||
 | 
					    #define _POSIX_C_SOURCE       200809L
 | 
				
			||||||
 | 
					   #elif (_XOPEN_SOURCE - 0) == 600	/* POSIX.1-2001 or 2004 */
 | 
				
			||||||
 | 
					    #define _POSIX_C_SOURCE       200112L
 | 
				
			||||||
 | 
					   #elif (_XOPEN_SOURCE - 0) == 500	/* POSIX.1-1995 */
 | 
				
			||||||
 | 
					    #define _POSIX_C_SOURCE       199506L
 | 
				
			||||||
 | 
					   #elif (_XOPEN_SOURCE - 0) < 500	/* really old */
 | 
				
			||||||
 | 
					    #define _POSIX_C_SOURCE       2
 | 
				
			||||||
 | 
					  #endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_FEATURES_H */
 | 
				
			||||||
							
								
								
									
										33
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/file.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										33
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/file.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,33 @@
 | 
				
			|||||||
 | 
					/* Copyright (c) 2005-2006 Tensilica Inc.  ALL RIGHTS RESERVED.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Redistribution and use in source and binary forms, with or without 
 | 
				
			||||||
 | 
					   modification, are permitted provided that the following conditions are met: 
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   1. Redistributions of source code must retain the above copyright 
 | 
				
			||||||
 | 
					      notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					      notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					      documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS
 | 
				
			||||||
 | 
					   IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
 | 
				
			||||||
 | 
					   TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A
 | 
				
			||||||
 | 
					   PARTICULAR PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL TENSILICA
 | 
				
			||||||
 | 
					   INCORPORATED BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
 | 
				
			||||||
 | 
					   EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO,
 | 
				
			||||||
 | 
					   PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
 | 
				
			||||||
 | 
					   PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
 | 
				
			||||||
 | 
					   LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
 | 
				
			||||||
 | 
					   NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
 | 
				
			||||||
 | 
					   SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/fcntl.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Alternate names for values for the WHENCE argument to `lseek'.
 | 
				
			||||||
 | 
					   These are the same as SEEK_SET, SEEK_CUR, and SEEK_END, respectively. */
 | 
				
			||||||
 | 
					#ifndef L_SET
 | 
				
			||||||
 | 
					#define L_SET   0       /* Seek from beginning of file.  */
 | 
				
			||||||
 | 
					#define L_INCR  1       /* Seek from current position.  */
 | 
				
			||||||
 | 
					#define L_XTND  2       /* Seek from end of file.  */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										77
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/iconvnls.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										77
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/iconvnls.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,77 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 2003-2004, Artem B. Bityuckiy.
 | 
				
			||||||
 | 
					 * Rights transferred to Franklin Electronic Publishers.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Funtions, macros, etc implimented in iconv library but used by other
 | 
				
			||||||
 | 
					 * NLS-related subsystems too.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef __SYS_ICONVNLS_H__
 | 
				
			||||||
 | 
					#define __SYS_ICONVNLS_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <reent.h>
 | 
				
			||||||
 | 
					#include <wchar.h>
 | 
				
			||||||
 | 
					#include <iconv.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Iconv data path environment variable name */
 | 
				
			||||||
 | 
					#define NLS_ENVVAR_NAME  "NLSPATH"
 | 
				
			||||||
 | 
					/* Default NLSPATH value */
 | 
				
			||||||
 | 
					#define ICONV_DEFAULT_NLSPATH "/usr/locale"
 | 
				
			||||||
 | 
					/* Direction markers */
 | 
				
			||||||
 | 
					#define ICONV_NLS_FROM 0
 | 
				
			||||||
 | 
					#define ICONV_NLS_TO   1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_VOID
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_get_state, (iconv_t cd, mbstate_t *ps, int direction));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_set_state, (iconv_t cd, mbstate_t *ps, int direction));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_is_stateful, (iconv_t cd, int direction));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_get_mb_cur_max, (iconv_t cd, int direction));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					size_t
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_conv, (struct _reent *rptr, iconv_t cd,
 | 
				
			||||||
 | 
					                        _CONST char **inbuf, size_t *inbytesleft,
 | 
				
			||||||
 | 
					                        char **outbuf, size_t *outbytesleft));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					_CONST char *
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_construct_filename, (struct _reent *rptr, _CONST char *file,
 | 
				
			||||||
 | 
					                                      _CONST char *dir, _CONST char *ext));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int
 | 
				
			||||||
 | 
					_EXFUN(_iconv_nls_open, (struct _reent *rptr, _CONST char *encoding,
 | 
				
			||||||
 | 
					                        iconv_t *towc, iconv_t *fromwc, int flag));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					char *
 | 
				
			||||||
 | 
					_EXFUN(_iconv_resolve_encoding_name, (struct _reent *rptr, _CONST char *ca));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __SYS_ICONVNLS_H__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										50
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/lock.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										50
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/lock.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,50 @@
 | 
				
			|||||||
 | 
					#ifndef _XTENSA_LOCK_H__
 | 
				
			||||||
 | 
					#define _XTENSA_LOCK_H__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* generic lock implementation.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Weak linked stub _lock functions in lock.c, can be
 | 
				
			||||||
 | 
					   replaced with a lock implementation at link time.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef int _lock_t;
 | 
				
			||||||
 | 
					typedef _lock_t _LOCK_RECURSIVE_T;
 | 
				
			||||||
 | 
					typedef _lock_t _LOCK_T;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* NOTE: some parts of newlib statically initialise locks via
 | 
				
			||||||
 | 
					   __LOCK_INIT, some initialise at runtime via __lock_init. So need to
 | 
				
			||||||
 | 
					   support possibility that a _lock_t is null during first call to
 | 
				
			||||||
 | 
					   _lock_acquire or _lock_try_acquire.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   Lock functions all take a pointer to the _lock_t entry, so the
 | 
				
			||||||
 | 
					   value stored there can be manipulated.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					#define __LOCK_INIT(CLASS,NAME) CLASS _lock_t NAME = 0;
 | 
				
			||||||
 | 
					#define __LOCK_INIT_RECURSIVE(CLASS,NAME) CLASS _lock_t NAME = 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void _lock_init(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_init_recursive(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_close(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_close_recursive(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_acquire(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_acquire_recursive(_lock_t *lock);
 | 
				
			||||||
 | 
					int _lock_try_acquire(_lock_t *lock);
 | 
				
			||||||
 | 
					int _lock_try_acquire_recursive(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_release(_lock_t *lock);
 | 
				
			||||||
 | 
					void _lock_release_recursive(_lock_t *lock);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __lock_init(lock) _lock_init(&(lock))
 | 
				
			||||||
 | 
					#define __lock_init_recursive(lock) _lock_init_recursive(&(lock))
 | 
				
			||||||
 | 
					#define __lock_close(lock) _lock_close(&(lock))
 | 
				
			||||||
 | 
					#define __lock_close_recursive(lock) _lock_close_recursive(&(lock))
 | 
				
			||||||
 | 
					#define __lock_acquire(lock) _lock_acquire(&(lock))
 | 
				
			||||||
 | 
					#define __lock_acquire_recursive(lock) _lock_acquire_recursive(&(lock))
 | 
				
			||||||
 | 
					#define __lock_try_acquire(lock) _lock_try_acquire(&(lock))
 | 
				
			||||||
 | 
					#define __lock_try_acquire_recursive(lock) _lock_try_acquire_recursive(&(lock))
 | 
				
			||||||
 | 
					#define __lock_release(lock) _lock_release(&(lock))
 | 
				
			||||||
 | 
					#define __lock_release_recursive(lock) _lock_release_recursive(&(lock))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _XTENSA_LOCK_H__ */
 | 
				
			||||||
							
								
								
									
										28
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/param.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/param.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
				
			|||||||
 | 
					/* This is a dummy <sys/param.h> file, not customized for any
 | 
				
			||||||
 | 
					   particular system.  If there is a param.h in libc/sys/SYSDIR/sys,
 | 
				
			||||||
 | 
					   it will override this one.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_PARAM_H
 | 
				
			||||||
 | 
					# define _SYS_PARAM_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/config.h>
 | 
				
			||||||
 | 
					#include <sys/syslimits.h>
 | 
				
			||||||
 | 
					#include <machine/endian.h>
 | 
				
			||||||
 | 
					#include <machine/param.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef HZ
 | 
				
			||||||
 | 
					# define HZ (60)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef NOFILE
 | 
				
			||||||
 | 
					# define NOFILE	(60)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef PATHSIZE
 | 
				
			||||||
 | 
					# define PATHSIZE (1024)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAXPATHLEN PATH_MAX
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define MAX(a,b) ((a) > (b) ? (a) : (b))
 | 
				
			||||||
 | 
					#define MIN(a,b) ((a) < (b) ? (a) : (b))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										691
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/queue.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										691
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/queue.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,691 @@
 | 
				
			|||||||
 | 
					/*-
 | 
				
			||||||
 | 
					 * Copyright (c) 1991, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)queue.h	8.5 (Berkeley) 8/20/94
 | 
				
			||||||
 | 
					 * $FreeBSD$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_QUEUE_H_
 | 
				
			||||||
 | 
					#define	_SYS_QUEUE_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This file defines four types of data structures: singly-linked lists,
 | 
				
			||||||
 | 
					 * singly-linked tail queues, lists and tail queues.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A singly-linked list is headed by a single forward pointer. The elements
 | 
				
			||||||
 | 
					 * are singly linked for minimum space and pointer manipulation overhead at
 | 
				
			||||||
 | 
					 * the expense of O(n) removal for arbitrary elements. New elements can be
 | 
				
			||||||
 | 
					 * added to the list after an existing element or at the head of the list.
 | 
				
			||||||
 | 
					 * Elements being removed from the head of the list should use the explicit
 | 
				
			||||||
 | 
					 * macro for this purpose for optimum efficiency. A singly-linked list may
 | 
				
			||||||
 | 
					 * only be traversed in the forward direction.  Singly-linked lists are ideal
 | 
				
			||||||
 | 
					 * for applications with large datasets and few or no removals or for
 | 
				
			||||||
 | 
					 * implementing a LIFO queue.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A singly-linked tail queue is headed by a pair of pointers, one to the
 | 
				
			||||||
 | 
					 * head of the list and the other to the tail of the list. The elements are
 | 
				
			||||||
 | 
					 * singly linked for minimum space and pointer manipulation overhead at the
 | 
				
			||||||
 | 
					 * expense of O(n) removal for arbitrary elements. New elements can be added
 | 
				
			||||||
 | 
					 * to the list after an existing element, at the head of the list, or at the
 | 
				
			||||||
 | 
					 * end of the list. Elements being removed from the head of the tail queue
 | 
				
			||||||
 | 
					 * should use the explicit macro for this purpose for optimum efficiency.
 | 
				
			||||||
 | 
					 * A singly-linked tail queue may only be traversed in the forward direction.
 | 
				
			||||||
 | 
					 * Singly-linked tail queues are ideal for applications with large datasets
 | 
				
			||||||
 | 
					 * and few or no removals or for implementing a FIFO queue.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A list is headed by a single forward pointer (or an array of forward
 | 
				
			||||||
 | 
					 * pointers for a hash table header). The elements are doubly linked
 | 
				
			||||||
 | 
					 * so that an arbitrary element can be removed without a need to
 | 
				
			||||||
 | 
					 * traverse the list. New elements can be added to the list before
 | 
				
			||||||
 | 
					 * or after an existing element or at the head of the list. A list
 | 
				
			||||||
 | 
					 * may be traversed in either direction.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * A tail queue is headed by a pair of pointers, one to the head of the
 | 
				
			||||||
 | 
					 * list and the other to the tail of the list. The elements are doubly
 | 
				
			||||||
 | 
					 * linked so that an arbitrary element can be removed without a need to
 | 
				
			||||||
 | 
					 * traverse the list. New elements can be added to the list before or
 | 
				
			||||||
 | 
					 * after an existing element, at the head of the list, or at the end of
 | 
				
			||||||
 | 
					 * the list. A tail queue may be traversed in either direction.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * For details on the use of these macros, see the queue(3) manual page.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *				SLIST	LIST	STAILQ	TAILQ
 | 
				
			||||||
 | 
					 * _HEAD			+	+	+	+
 | 
				
			||||||
 | 
					 * _HEAD_INITIALIZER		+	+	+	+
 | 
				
			||||||
 | 
					 * _ENTRY			+	+	+	+
 | 
				
			||||||
 | 
					 * _INIT			+	+	+	+
 | 
				
			||||||
 | 
					 * _EMPTY			+	+	+	+
 | 
				
			||||||
 | 
					 * _FIRST			+	+	+	+
 | 
				
			||||||
 | 
					 * _NEXT			+	+	+	+
 | 
				
			||||||
 | 
					 * _PREV			-	+	-	+
 | 
				
			||||||
 | 
					 * _LAST			-	-	+	+
 | 
				
			||||||
 | 
					 * _FOREACH			+	+	+	+
 | 
				
			||||||
 | 
					 * _FOREACH_SAFE		+	+	+	+
 | 
				
			||||||
 | 
					 * _FOREACH_REVERSE		-	-	-	+
 | 
				
			||||||
 | 
					 * _FOREACH_REVERSE_SAFE	-	-	-	+
 | 
				
			||||||
 | 
					 * _INSERT_HEAD			+	+	+	+
 | 
				
			||||||
 | 
					 * _INSERT_BEFORE		-	+	-	+
 | 
				
			||||||
 | 
					 * _INSERT_AFTER		+	+	+	+
 | 
				
			||||||
 | 
					 * _INSERT_TAIL			-	-	+	+
 | 
				
			||||||
 | 
					 * _CONCAT			-	-	+	+
 | 
				
			||||||
 | 
					 * _REMOVE_AFTER		+	-	+	-
 | 
				
			||||||
 | 
					 * _REMOVE_HEAD			+	-	+	-
 | 
				
			||||||
 | 
					 * _REMOVE			+	+	+	+
 | 
				
			||||||
 | 
					 * _SWAP			+	+	+	+
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifdef QUEUE_MACRO_DEBUG
 | 
				
			||||||
 | 
					/* Store the last 2 places the queue element or head was altered */
 | 
				
			||||||
 | 
					struct qm_trace {
 | 
				
			||||||
 | 
						unsigned long	 lastline;
 | 
				
			||||||
 | 
						unsigned long	 prevline;
 | 
				
			||||||
 | 
						const char	*lastfile;
 | 
				
			||||||
 | 
						const char	*prevfile;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TRACEBUF	struct qm_trace trace;
 | 
				
			||||||
 | 
					#define	TRACEBUF_INITIALIZER	{ __FILE__, __LINE__, NULL, 0 } ,
 | 
				
			||||||
 | 
					#define	TRASHIT(x)	do {(x) = (void *)-1;} while (0)
 | 
				
			||||||
 | 
					#define	QMD_SAVELINK(name, link)	void **name = (void *)&(link)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_TRACE_HEAD(head) do {					\
 | 
				
			||||||
 | 
						(head)->trace.prevline = (head)->trace.lastline;		\
 | 
				
			||||||
 | 
						(head)->trace.prevfile = (head)->trace.lastfile;		\
 | 
				
			||||||
 | 
						(head)->trace.lastline = __LINE__;				\
 | 
				
			||||||
 | 
						(head)->trace.lastfile = __FILE__;				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_TRACE_ELEM(elem) do {					\
 | 
				
			||||||
 | 
						(elem)->trace.prevline = (elem)->trace.lastline;		\
 | 
				
			||||||
 | 
						(elem)->trace.prevfile = (elem)->trace.lastfile;		\
 | 
				
			||||||
 | 
						(elem)->trace.lastline = __LINE__;				\
 | 
				
			||||||
 | 
						(elem)->trace.lastfile = __FILE__;				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	QMD_TRACE_ELEM(elem)
 | 
				
			||||||
 | 
					#define	QMD_TRACE_HEAD(head)
 | 
				
			||||||
 | 
					#define	QMD_SAVELINK(name, link)
 | 
				
			||||||
 | 
					#define	TRACEBUF
 | 
				
			||||||
 | 
					#define	TRACEBUF_INITIALIZER
 | 
				
			||||||
 | 
					#define	TRASHIT(x)
 | 
				
			||||||
 | 
					#endif	/* QUEUE_MACRO_DEBUG */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Singly-linked List declarations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	SLIST_HEAD(name, type)						\
 | 
				
			||||||
 | 
					struct name {								\
 | 
				
			||||||
 | 
						struct type *slh_first;	/* first element */			\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_HEAD_INITIALIZER(head)					\
 | 
				
			||||||
 | 
						{ NULL }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_ENTRY(type)						\
 | 
				
			||||||
 | 
					struct {								\
 | 
				
			||||||
 | 
						struct type *sle_next;	/* next element */			\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Singly-linked List functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	SLIST_EMPTY(head)	((head)->slh_first == NULL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_FIRST(head)	((head)->slh_first)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_FOREACH(var, head, field)					\
 | 
				
			||||||
 | 
						for ((var) = SLIST_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var);							\
 | 
				
			||||||
 | 
						    (var) = SLIST_NEXT((var), field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_FOREACH_SAFE(var, head, field, tvar)			\
 | 
				
			||||||
 | 
						for ((var) = SLIST_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var) && ((tvar) = SLIST_NEXT((var), field), 1);		\
 | 
				
			||||||
 | 
						    (var) = (tvar))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_FOREACH_PREVPTR(var, varp, head, field)			\
 | 
				
			||||||
 | 
						for ((varp) = &SLIST_FIRST((head));				\
 | 
				
			||||||
 | 
						    ((var) = *(varp)) != NULL;					\
 | 
				
			||||||
 | 
						    (varp) = &SLIST_NEXT((var), field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_INIT(head) do {						\
 | 
				
			||||||
 | 
						SLIST_FIRST((head)) = NULL;					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_INSERT_AFTER(slistelm, elm, field) do {			\
 | 
				
			||||||
 | 
						SLIST_NEXT((elm), field) = SLIST_NEXT((slistelm), field);	\
 | 
				
			||||||
 | 
						SLIST_NEXT((slistelm), field) = (elm);				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_INSERT_HEAD(head, elm, field) do {			\
 | 
				
			||||||
 | 
						SLIST_NEXT((elm), field) = SLIST_FIRST((head));			\
 | 
				
			||||||
 | 
						SLIST_FIRST((head)) = (elm);					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_NEXT(elm, field)	((elm)->field.sle_next)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_REMOVE(head, elm, type, field) do {			\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldnext, (elm)->field.sle_next);			\
 | 
				
			||||||
 | 
						if (SLIST_FIRST((head)) == (elm)) {				\
 | 
				
			||||||
 | 
							SLIST_REMOVE_HEAD((head), field);			\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						else {								\
 | 
				
			||||||
 | 
							struct type *curelm = SLIST_FIRST((head));		\
 | 
				
			||||||
 | 
							while (SLIST_NEXT(curelm, field) != (elm))		\
 | 
				
			||||||
 | 
								curelm = SLIST_NEXT(curelm, field);		\
 | 
				
			||||||
 | 
							SLIST_REMOVE_AFTER(curelm, field);			\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						TRASHIT(*oldnext);						\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SLIST_REMOVE_AFTER(elm, field) do {				\
 | 
				
			||||||
 | 
						SLIST_NEXT(elm, field) =					\
 | 
				
			||||||
 | 
						    SLIST_NEXT(SLIST_NEXT(elm, field), field);			\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	SLIST_REMOVE_HEAD(head, field) do {				\
 | 
				
			||||||
 | 
						SLIST_FIRST((head)) = SLIST_NEXT(SLIST_FIRST((head)), field);	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SLIST_SWAP(head1, head2, type) do {				\
 | 
				
			||||||
 | 
						struct type *swap_first = SLIST_FIRST(head1);			\
 | 
				
			||||||
 | 
						SLIST_FIRST(head1) = SLIST_FIRST(head2);			\
 | 
				
			||||||
 | 
						SLIST_FIRST(head2) = swap_first;				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Singly-linked Tail queue declarations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	STAILQ_HEAD(name, type)						\
 | 
				
			||||||
 | 
					struct name {								\
 | 
				
			||||||
 | 
						struct type *stqh_first;/* first element */			\
 | 
				
			||||||
 | 
						struct type **stqh_last;/* addr of last next element */		\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_HEAD_INITIALIZER(head)					\
 | 
				
			||||||
 | 
						{ NULL, &(head).stqh_first }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_ENTRY(type)						\
 | 
				
			||||||
 | 
					struct {								\
 | 
				
			||||||
 | 
						struct type *stqe_next;	/* next element */			\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Singly-linked Tail queue functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	STAILQ_CONCAT(head1, head2) do {				\
 | 
				
			||||||
 | 
						if (!STAILQ_EMPTY((head2))) {					\
 | 
				
			||||||
 | 
							*(head1)->stqh_last = (head2)->stqh_first;		\
 | 
				
			||||||
 | 
							(head1)->stqh_last = (head2)->stqh_last;		\
 | 
				
			||||||
 | 
							STAILQ_INIT((head2));					\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_EMPTY(head)	((head)->stqh_first == NULL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_FIRST(head)	((head)->stqh_first)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_FOREACH(var, head, field)				\
 | 
				
			||||||
 | 
						for((var) = STAILQ_FIRST((head));				\
 | 
				
			||||||
 | 
						   (var);							\
 | 
				
			||||||
 | 
						   (var) = STAILQ_NEXT((var), field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_FOREACH_SAFE(var, head, field, tvar)			\
 | 
				
			||||||
 | 
						for ((var) = STAILQ_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var) && ((tvar) = STAILQ_NEXT((var), field), 1);		\
 | 
				
			||||||
 | 
						    (var) = (tvar))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_INIT(head) do {						\
 | 
				
			||||||
 | 
						STAILQ_FIRST((head)) = NULL;					\
 | 
				
			||||||
 | 
						(head)->stqh_last = &STAILQ_FIRST((head));			\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_INSERT_AFTER(head, tqelm, elm, field) do {		\
 | 
				
			||||||
 | 
						if ((STAILQ_NEXT((elm), field) = STAILQ_NEXT((tqelm), field)) == NULL)\
 | 
				
			||||||
 | 
							(head)->stqh_last = &STAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						STAILQ_NEXT((tqelm), field) = (elm);				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_INSERT_HEAD(head, elm, field) do {			\
 | 
				
			||||||
 | 
						if ((STAILQ_NEXT((elm), field) = STAILQ_FIRST((head))) == NULL)	\
 | 
				
			||||||
 | 
							(head)->stqh_last = &STAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						STAILQ_FIRST((head)) = (elm);					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_INSERT_TAIL(head, elm, field) do {			\
 | 
				
			||||||
 | 
						STAILQ_NEXT((elm), field) = NULL;				\
 | 
				
			||||||
 | 
						*(head)->stqh_last = (elm);					\
 | 
				
			||||||
 | 
						(head)->stqh_last = &STAILQ_NEXT((elm), field);			\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_LAST(head, type, field)					\
 | 
				
			||||||
 | 
						(STAILQ_EMPTY((head)) ? NULL :					\
 | 
				
			||||||
 | 
						    __containerof((head)->stqh_last, struct type, field.stqe_next))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_NEXT(elm, field)	((elm)->field.stqe_next)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_REMOVE(head, elm, type, field) do {			\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldnext, (elm)->field.stqe_next);			\
 | 
				
			||||||
 | 
						if (STAILQ_FIRST((head)) == (elm)) {				\
 | 
				
			||||||
 | 
							STAILQ_REMOVE_HEAD((head), field);			\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						else {								\
 | 
				
			||||||
 | 
							struct type *curelm = STAILQ_FIRST((head));		\
 | 
				
			||||||
 | 
							while (STAILQ_NEXT(curelm, field) != (elm))		\
 | 
				
			||||||
 | 
								curelm = STAILQ_NEXT(curelm, field);		\
 | 
				
			||||||
 | 
							STAILQ_REMOVE_AFTER(head, curelm, field);		\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						TRASHIT(*oldnext);						\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define STAILQ_REMOVE_AFTER(head, elm, field) do {			\
 | 
				
			||||||
 | 
						if ((STAILQ_NEXT(elm, field) =					\
 | 
				
			||||||
 | 
						     STAILQ_NEXT(STAILQ_NEXT(elm, field), field)) == NULL)	\
 | 
				
			||||||
 | 
							(head)->stqh_last = &STAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_REMOVE_HEAD(head, field) do {				\
 | 
				
			||||||
 | 
						if ((STAILQ_FIRST((head)) =					\
 | 
				
			||||||
 | 
						     STAILQ_NEXT(STAILQ_FIRST((head)), field)) == NULL)		\
 | 
				
			||||||
 | 
							(head)->stqh_last = &STAILQ_FIRST((head));		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	STAILQ_REMOVE_HEAD_UNTIL(head, elm, field) do {			\
 | 
				
			||||||
 | 
						if ((STAILQ_FIRST((head)) = STAILQ_NEXT((elm), field)) == NULL)	\
 | 
				
			||||||
 | 
							(head)->stqh_last = &STAILQ_FIRST((head));		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define STAILQ_SWAP(head1, head2, type) do {				\
 | 
				
			||||||
 | 
						struct type *swap_first = STAILQ_FIRST(head1);			\
 | 
				
			||||||
 | 
						struct type **swap_last = (head1)->stqh_last;			\
 | 
				
			||||||
 | 
						STAILQ_FIRST(head1) = STAILQ_FIRST(head2);			\
 | 
				
			||||||
 | 
						(head1)->stqh_last = (head2)->stqh_last;			\
 | 
				
			||||||
 | 
						STAILQ_FIRST(head2) = swap_first;				\
 | 
				
			||||||
 | 
						(head2)->stqh_last = swap_last;					\
 | 
				
			||||||
 | 
						if (STAILQ_EMPTY(head1))					\
 | 
				
			||||||
 | 
							(head1)->stqh_last = &STAILQ_FIRST(head1);		\
 | 
				
			||||||
 | 
						if (STAILQ_EMPTY(head2))					\
 | 
				
			||||||
 | 
							(head2)->stqh_last = &STAILQ_FIRST(head2);		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * List declarations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	LIST_HEAD(name, type)						\
 | 
				
			||||||
 | 
					struct name {								\
 | 
				
			||||||
 | 
						struct type *lh_first;	/* first element */			\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_HEAD_INITIALIZER(head)					\
 | 
				
			||||||
 | 
						{ NULL }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_ENTRY(type)						\
 | 
				
			||||||
 | 
					struct {								\
 | 
				
			||||||
 | 
						struct type *le_next;	/* next element */			\
 | 
				
			||||||
 | 
						struct type **le_prev;	/* address of previous next element */	\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * List functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (defined(_KERNEL) && defined(INVARIANTS))
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_HEAD(head, field) do {				\
 | 
				
			||||||
 | 
						if (LIST_FIRST((head)) != NULL &&				\
 | 
				
			||||||
 | 
						    LIST_FIRST((head))->field.le_prev !=			\
 | 
				
			||||||
 | 
						     &LIST_FIRST((head)))					\
 | 
				
			||||||
 | 
							panic("Bad list head %p first->prev != head", (head));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_NEXT(elm, field) do {				\
 | 
				
			||||||
 | 
						if (LIST_NEXT((elm), field) != NULL &&				\
 | 
				
			||||||
 | 
						    LIST_NEXT((elm), field)->field.le_prev !=			\
 | 
				
			||||||
 | 
						     &((elm)->field.le_next))					\
 | 
				
			||||||
 | 
						     	panic("Bad link elm %p next->prev != elm", (elm));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_PREV(elm, field) do {				\
 | 
				
			||||||
 | 
						if (*(elm)->field.le_prev != (elm))				\
 | 
				
			||||||
 | 
							panic("Bad link elm %p prev->next != elm", (elm));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_HEAD(head, field)
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_NEXT(elm, field)
 | 
				
			||||||
 | 
					#define	QMD_LIST_CHECK_PREV(elm, field)
 | 
				
			||||||
 | 
					#endif /* (_KERNEL && INVARIANTS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_EMPTY(head)	((head)->lh_first == NULL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_FIRST(head)	((head)->lh_first)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_FOREACH(var, head, field)					\
 | 
				
			||||||
 | 
						for ((var) = LIST_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var);							\
 | 
				
			||||||
 | 
						    (var) = LIST_NEXT((var), field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_FOREACH_SAFE(var, head, field, tvar)			\
 | 
				
			||||||
 | 
						for ((var) = LIST_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var) && ((tvar) = LIST_NEXT((var), field), 1);		\
 | 
				
			||||||
 | 
						    (var) = (tvar))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_INIT(head) do {						\
 | 
				
			||||||
 | 
						LIST_FIRST((head)) = NULL;					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_INSERT_AFTER(listelm, elm, field) do {			\
 | 
				
			||||||
 | 
						QMD_LIST_CHECK_NEXT(listelm, field);				\
 | 
				
			||||||
 | 
						if ((LIST_NEXT((elm), field) = LIST_NEXT((listelm), field)) != NULL)\
 | 
				
			||||||
 | 
							LIST_NEXT((listelm), field)->field.le_prev =		\
 | 
				
			||||||
 | 
							    &LIST_NEXT((elm), field);				\
 | 
				
			||||||
 | 
						LIST_NEXT((listelm), field) = (elm);				\
 | 
				
			||||||
 | 
						(elm)->field.le_prev = &LIST_NEXT((listelm), field);		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_INSERT_BEFORE(listelm, elm, field) do {			\
 | 
				
			||||||
 | 
						QMD_LIST_CHECK_PREV(listelm, field);				\
 | 
				
			||||||
 | 
						(elm)->field.le_prev = (listelm)->field.le_prev;		\
 | 
				
			||||||
 | 
						LIST_NEXT((elm), field) = (listelm);				\
 | 
				
			||||||
 | 
						*(listelm)->field.le_prev = (elm);				\
 | 
				
			||||||
 | 
						(listelm)->field.le_prev = &LIST_NEXT((elm), field);		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_INSERT_HEAD(head, elm, field) do {				\
 | 
				
			||||||
 | 
						QMD_LIST_CHECK_HEAD((head), field);				\
 | 
				
			||||||
 | 
						if ((LIST_NEXT((elm), field) = LIST_FIRST((head))) != NULL)	\
 | 
				
			||||||
 | 
							LIST_FIRST((head))->field.le_prev = &LIST_NEXT((elm), field);\
 | 
				
			||||||
 | 
						LIST_FIRST((head)) = (elm);					\
 | 
				
			||||||
 | 
						(elm)->field.le_prev = &LIST_FIRST((head));			\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_NEXT(elm, field)	((elm)->field.le_next)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_PREV(elm, head, type, field)				\
 | 
				
			||||||
 | 
						((elm)->field.le_prev == &LIST_FIRST((head)) ? NULL :		\
 | 
				
			||||||
 | 
						    __containerof((elm)->field.le_prev, struct type, field.le_next))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	LIST_REMOVE(elm, field) do {					\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldnext, (elm)->field.le_next);			\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldprev, (elm)->field.le_prev);			\
 | 
				
			||||||
 | 
						QMD_LIST_CHECK_NEXT(elm, field);				\
 | 
				
			||||||
 | 
						QMD_LIST_CHECK_PREV(elm, field);				\
 | 
				
			||||||
 | 
						if (LIST_NEXT((elm), field) != NULL)				\
 | 
				
			||||||
 | 
							LIST_NEXT((elm), field)->field.le_prev = 		\
 | 
				
			||||||
 | 
							    (elm)->field.le_prev;				\
 | 
				
			||||||
 | 
						*(elm)->field.le_prev = LIST_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						TRASHIT(*oldnext);						\
 | 
				
			||||||
 | 
						TRASHIT(*oldprev);						\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define LIST_SWAP(head1, head2, type, field) do {			\
 | 
				
			||||||
 | 
						struct type *swap_tmp = LIST_FIRST((head1));			\
 | 
				
			||||||
 | 
						LIST_FIRST((head1)) = LIST_FIRST((head2));			\
 | 
				
			||||||
 | 
						LIST_FIRST((head2)) = swap_tmp;					\
 | 
				
			||||||
 | 
						if ((swap_tmp = LIST_FIRST((head1))) != NULL)			\
 | 
				
			||||||
 | 
							swap_tmp->field.le_prev = &LIST_FIRST((head1));		\
 | 
				
			||||||
 | 
						if ((swap_tmp = LIST_FIRST((head2))) != NULL)			\
 | 
				
			||||||
 | 
							swap_tmp->field.le_prev = &LIST_FIRST((head2));		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Tail queue declarations.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	TAILQ_HEAD(name, type)						\
 | 
				
			||||||
 | 
					struct name {								\
 | 
				
			||||||
 | 
						struct type *tqh_first;	/* first element */			\
 | 
				
			||||||
 | 
						struct type **tqh_last;	/* addr of last next element */		\
 | 
				
			||||||
 | 
						TRACEBUF							\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_HEAD_INITIALIZER(head)					\
 | 
				
			||||||
 | 
						{ NULL, &(head).tqh_first, TRACEBUF_INITIALIZER }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_ENTRY(type)						\
 | 
				
			||||||
 | 
					struct {								\
 | 
				
			||||||
 | 
						struct type *tqe_next;	/* next element */			\
 | 
				
			||||||
 | 
						struct type **tqe_prev;	/* address of previous next element */	\
 | 
				
			||||||
 | 
						TRACEBUF							\
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Tail queue functions.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if (defined(_KERNEL) && defined(INVARIANTS))
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_HEAD(head, field) do {				\
 | 
				
			||||||
 | 
						if (!TAILQ_EMPTY(head) &&					\
 | 
				
			||||||
 | 
						    TAILQ_FIRST((head))->field.tqe_prev !=			\
 | 
				
			||||||
 | 
						     &TAILQ_FIRST((head)))					\
 | 
				
			||||||
 | 
							panic("Bad tailq head %p first->prev != head", (head));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_TAIL(head, field) do {				\
 | 
				
			||||||
 | 
						if (*(head)->tqh_last != NULL)					\
 | 
				
			||||||
 | 
						    	panic("Bad tailq NEXT(%p->tqh_last) != NULL", (head)); 	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_NEXT(elm, field) do {				\
 | 
				
			||||||
 | 
						if (TAILQ_NEXT((elm), field) != NULL &&				\
 | 
				
			||||||
 | 
						    TAILQ_NEXT((elm), field)->field.tqe_prev !=			\
 | 
				
			||||||
 | 
						     &((elm)->field.tqe_next))					\
 | 
				
			||||||
 | 
							panic("Bad link elm %p next->prev != elm", (elm));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_PREV(elm, field) do {				\
 | 
				
			||||||
 | 
						if (*(elm)->field.tqe_prev != (elm))				\
 | 
				
			||||||
 | 
							panic("Bad link elm %p prev->next != elm", (elm));	\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_HEAD(head, field)
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_TAIL(head, headname)
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_NEXT(elm, field)
 | 
				
			||||||
 | 
					#define	QMD_TAILQ_CHECK_PREV(elm, field)
 | 
				
			||||||
 | 
					#endif /* (_KERNEL && INVARIANTS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_CONCAT(head1, head2, field) do {				\
 | 
				
			||||||
 | 
						if (!TAILQ_EMPTY(head2)) {					\
 | 
				
			||||||
 | 
							*(head1)->tqh_last = (head2)->tqh_first;		\
 | 
				
			||||||
 | 
							(head2)->tqh_first->field.tqe_prev = (head1)->tqh_last;	\
 | 
				
			||||||
 | 
							(head1)->tqh_last = (head2)->tqh_last;			\
 | 
				
			||||||
 | 
							TAILQ_INIT((head2));					\
 | 
				
			||||||
 | 
							QMD_TRACE_HEAD(head1);					\
 | 
				
			||||||
 | 
							QMD_TRACE_HEAD(head2);					\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_EMPTY(head)	((head)->tqh_first == NULL)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_FIRST(head)	((head)->tqh_first)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_FOREACH(var, head, field)					\
 | 
				
			||||||
 | 
						for ((var) = TAILQ_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var);							\
 | 
				
			||||||
 | 
						    (var) = TAILQ_NEXT((var), field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_FOREACH_SAFE(var, head, field, tvar)			\
 | 
				
			||||||
 | 
						for ((var) = TAILQ_FIRST((head));				\
 | 
				
			||||||
 | 
						    (var) && ((tvar) = TAILQ_NEXT((var), field), 1);		\
 | 
				
			||||||
 | 
						    (var) = (tvar))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_FOREACH_REVERSE(var, head, headname, field)		\
 | 
				
			||||||
 | 
						for ((var) = TAILQ_LAST((head), headname);			\
 | 
				
			||||||
 | 
						    (var);							\
 | 
				
			||||||
 | 
						    (var) = TAILQ_PREV((var), headname, field))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_FOREACH_REVERSE_SAFE(var, head, headname, field, tvar)	\
 | 
				
			||||||
 | 
						for ((var) = TAILQ_LAST((head), headname);			\
 | 
				
			||||||
 | 
						    (var) && ((tvar) = TAILQ_PREV((var), headname, field), 1);	\
 | 
				
			||||||
 | 
						    (var) = (tvar))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_INIT(head) do {						\
 | 
				
			||||||
 | 
						TAILQ_FIRST((head)) = NULL;					\
 | 
				
			||||||
 | 
						(head)->tqh_last = &TAILQ_FIRST((head));			\
 | 
				
			||||||
 | 
						QMD_TRACE_HEAD(head);						\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_INSERT_AFTER(head, listelm, elm, field) do {		\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_NEXT(listelm, field);				\
 | 
				
			||||||
 | 
						if ((TAILQ_NEXT((elm), field) = TAILQ_NEXT((listelm), field)) != NULL)\
 | 
				
			||||||
 | 
							TAILQ_NEXT((elm), field)->field.tqe_prev = 		\
 | 
				
			||||||
 | 
							    &TAILQ_NEXT((elm), field);				\
 | 
				
			||||||
 | 
						else {								\
 | 
				
			||||||
 | 
							(head)->tqh_last = &TAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
							QMD_TRACE_HEAD(head);					\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						TAILQ_NEXT((listelm), field) = (elm);				\
 | 
				
			||||||
 | 
						(elm)->field.tqe_prev = &TAILQ_NEXT((listelm), field);		\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&(elm)->field);					\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&listelm->field);				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_INSERT_BEFORE(listelm, elm, field) do {			\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_PREV(listelm, field);				\
 | 
				
			||||||
 | 
						(elm)->field.tqe_prev = (listelm)->field.tqe_prev;		\
 | 
				
			||||||
 | 
						TAILQ_NEXT((elm), field) = (listelm);				\
 | 
				
			||||||
 | 
						*(listelm)->field.tqe_prev = (elm);				\
 | 
				
			||||||
 | 
						(listelm)->field.tqe_prev = &TAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&(elm)->field);					\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&listelm->field);				\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_INSERT_HEAD(head, elm, field) do {			\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_HEAD(head, field);				\
 | 
				
			||||||
 | 
						if ((TAILQ_NEXT((elm), field) = TAILQ_FIRST((head))) != NULL)	\
 | 
				
			||||||
 | 
							TAILQ_FIRST((head))->field.tqe_prev =			\
 | 
				
			||||||
 | 
							    &TAILQ_NEXT((elm), field);				\
 | 
				
			||||||
 | 
						else								\
 | 
				
			||||||
 | 
							(head)->tqh_last = &TAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						TAILQ_FIRST((head)) = (elm);					\
 | 
				
			||||||
 | 
						(elm)->field.tqe_prev = &TAILQ_FIRST((head));			\
 | 
				
			||||||
 | 
						QMD_TRACE_HEAD(head);						\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&(elm)->field);					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_INSERT_TAIL(head, elm, field) do {			\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_TAIL(head, field);				\
 | 
				
			||||||
 | 
						TAILQ_NEXT((elm), field) = NULL;				\
 | 
				
			||||||
 | 
						(elm)->field.tqe_prev = (head)->tqh_last;			\
 | 
				
			||||||
 | 
						*(head)->tqh_last = (elm);					\
 | 
				
			||||||
 | 
						(head)->tqh_last = &TAILQ_NEXT((elm), field);			\
 | 
				
			||||||
 | 
						QMD_TRACE_HEAD(head);						\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&(elm)->field);					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_LAST(head, headname)					\
 | 
				
			||||||
 | 
						(*(((struct headname *)((head)->tqh_last))->tqh_last))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_NEXT(elm, field) ((elm)->field.tqe_next)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_PREV(elm, headname, field)				\
 | 
				
			||||||
 | 
						(*(((struct headname *)((elm)->field.tqe_prev))->tqh_last))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	TAILQ_REMOVE(head, elm, field) do {				\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldnext, (elm)->field.tqe_next);			\
 | 
				
			||||||
 | 
						QMD_SAVELINK(oldprev, (elm)->field.tqe_prev);			\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_NEXT(elm, field);				\
 | 
				
			||||||
 | 
						QMD_TAILQ_CHECK_PREV(elm, field);				\
 | 
				
			||||||
 | 
						if ((TAILQ_NEXT((elm), field)) != NULL)				\
 | 
				
			||||||
 | 
							TAILQ_NEXT((elm), field)->field.tqe_prev = 		\
 | 
				
			||||||
 | 
							    (elm)->field.tqe_prev;				\
 | 
				
			||||||
 | 
						else {								\
 | 
				
			||||||
 | 
							(head)->tqh_last = (elm)->field.tqe_prev;		\
 | 
				
			||||||
 | 
							QMD_TRACE_HEAD(head);					\
 | 
				
			||||||
 | 
						}								\
 | 
				
			||||||
 | 
						*(elm)->field.tqe_prev = TAILQ_NEXT((elm), field);		\
 | 
				
			||||||
 | 
						TRASHIT(*oldnext);						\
 | 
				
			||||||
 | 
						TRASHIT(*oldprev);						\
 | 
				
			||||||
 | 
						QMD_TRACE_ELEM(&(elm)->field);					\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define TAILQ_SWAP(head1, head2, type, field) do {			\
 | 
				
			||||||
 | 
						struct type *swap_first = (head1)->tqh_first;			\
 | 
				
			||||||
 | 
						struct type **swap_last = (head1)->tqh_last;			\
 | 
				
			||||||
 | 
						(head1)->tqh_first = (head2)->tqh_first;			\
 | 
				
			||||||
 | 
						(head1)->tqh_last = (head2)->tqh_last;				\
 | 
				
			||||||
 | 
						(head2)->tqh_first = swap_first;				\
 | 
				
			||||||
 | 
						(head2)->tqh_last = swap_last;					\
 | 
				
			||||||
 | 
						if ((swap_first = (head1)->tqh_first) != NULL)			\
 | 
				
			||||||
 | 
							swap_first->field.tqe_prev = &(head1)->tqh_first;	\
 | 
				
			||||||
 | 
						else								\
 | 
				
			||||||
 | 
							(head1)->tqh_last = &(head1)->tqh_first;		\
 | 
				
			||||||
 | 
						if ((swap_first = (head2)->tqh_first) != NULL)			\
 | 
				
			||||||
 | 
							swap_first->field.tqe_prev = &(head2)->tqh_first;	\
 | 
				
			||||||
 | 
						else								\
 | 
				
			||||||
 | 
							(head2)->tqh_last = &(head2)->tqh_first;		\
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _KERNEL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * XXX insque() and remque() are an old way of handling certain queues.
 | 
				
			||||||
 | 
					 * They bogusly assumes that all queue heads look alike.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct quehead {
 | 
				
			||||||
 | 
						struct quehead *qh_link;
 | 
				
			||||||
 | 
						struct quehead *qh_rlink;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef	__GNUC__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					insque(void *a, void *b)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct quehead *element = (struct quehead *)a,
 | 
				
			||||||
 | 
							 *head = (struct quehead *)b;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						element->qh_link = head->qh_link;
 | 
				
			||||||
 | 
						element->qh_rlink = head;
 | 
				
			||||||
 | 
						head->qh_link = element;
 | 
				
			||||||
 | 
						element->qh_link->qh_rlink = element;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					static __inline void
 | 
				
			||||||
 | 
					remque(void *a)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						struct quehead *element = (struct quehead *)a;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						element->qh_link->qh_rlink = element->qh_rlink;
 | 
				
			||||||
 | 
						element->qh_rlink->qh_link = element->qh_link;
 | 
				
			||||||
 | 
						element->qh_rlink = 0;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !__GNUC__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	insque(void *a, void *b);
 | 
				
			||||||
 | 
					void	remque(void *a);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* __GNUC__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _KERNEL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_SYS_QUEUE_H_ */
 | 
				
			||||||
							
								
								
									
										790
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/reent.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										790
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/reent.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,790 @@
 | 
				
			|||||||
 | 
					/* This header file provides the reentrancy.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* WARNING: All identifiers here must begin with an underscore.  This file is
 | 
				
			||||||
 | 
					   included by stdio.h and others and we therefore must only use identifiers
 | 
				
			||||||
 | 
					   in the namespace allotted to us.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_REENT_H_
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _SYS_REENT_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _NULL 0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __Long
 | 
				
			||||||
 | 
					#if __LONG_MAX__ == 2147483647L
 | 
				
			||||||
 | 
					#define __Long long
 | 
				
			||||||
 | 
					typedef unsigned __Long __ULong;
 | 
				
			||||||
 | 
					#elif __INT_MAX__ == 2147483647
 | 
				
			||||||
 | 
					#define __Long int
 | 
				
			||||||
 | 
					typedef unsigned __Long __ULong;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined( __Long)
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __Long
 | 
				
			||||||
 | 
					#define __Long __int32_t
 | 
				
			||||||
 | 
					typedef __uint32_t __ULong;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _reent;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * If _REENT_SMALL is defined, we make struct _reent as small as possible,
 | 
				
			||||||
 | 
					 * by having nearly everything possible allocated at first use.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _Bigint
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  struct _Bigint *_next;
 | 
				
			||||||
 | 
					  int _k, _maxwds, _sign, _wds;
 | 
				
			||||||
 | 
					  __ULong _x[1];
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* needed by reentrant structure */
 | 
				
			||||||
 | 
					struct __tm
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int   __tm_sec;
 | 
				
			||||||
 | 
					  int   __tm_min;
 | 
				
			||||||
 | 
					  int   __tm_hour;
 | 
				
			||||||
 | 
					  int   __tm_mday;
 | 
				
			||||||
 | 
					  int   __tm_mon;
 | 
				
			||||||
 | 
					  int   __tm_year;
 | 
				
			||||||
 | 
					  int   __tm_wday;
 | 
				
			||||||
 | 
					  int   __tm_yday;
 | 
				
			||||||
 | 
					  int   __tm_isdst;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * atexit() support.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_ATEXIT_SIZE 32	/* must be at least 32 to guarantee ANSI conformance */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _on_exit_args {
 | 
				
			||||||
 | 
						void *  _fnargs[_ATEXIT_SIZE];	        /* user fn args */
 | 
				
			||||||
 | 
						void *	_dso_handle[_ATEXIT_SIZE];
 | 
				
			||||||
 | 
						/* Bitmask is set if user function takes arguments.  */
 | 
				
			||||||
 | 
						__ULong _fntypes;           	        /* type of exit routine -
 | 
				
			||||||
 | 
									   Must have at least _ATEXIT_SIZE bits */
 | 
				
			||||||
 | 
						/* Bitmask is set if function was registered via __cxa_atexit.  */
 | 
				
			||||||
 | 
						__ULong _is_cxa;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_SMALL
 | 
				
			||||||
 | 
					struct _atexit {
 | 
				
			||||||
 | 
						struct	_atexit *_next;			/* next in list */
 | 
				
			||||||
 | 
						int	_ind;				/* next index in this table */
 | 
				
			||||||
 | 
						void	(*_fns[_ATEXIT_SIZE])(void);	/* the table itself */
 | 
				
			||||||
 | 
					        struct _on_exit_args * _on_exit_args_ptr;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					# define _ATEXIT_INIT {_NULL, 0, {_NULL}, _NULL}
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					struct _atexit {
 | 
				
			||||||
 | 
						struct	_atexit *_next;			/* next in list */
 | 
				
			||||||
 | 
						int	_ind;				/* next index in this table */
 | 
				
			||||||
 | 
						/* Some entries may already have been called, and will be NULL.  */
 | 
				
			||||||
 | 
						void	(*_fns[_ATEXIT_SIZE])(void);	/* the table itself */
 | 
				
			||||||
 | 
					        struct _on_exit_args _on_exit_args;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					# define _ATEXIT_INIT {_NULL, 0, {_NULL}, {{_NULL}, {_NULL}, 0, 0}}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_GLOBAL_ATEXIT
 | 
				
			||||||
 | 
					# define _REENT_INIT_ATEXIT
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define _REENT_INIT_ATEXIT \
 | 
				
			||||||
 | 
					  _NULL, _ATEXIT_INIT,
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Stdio buffers.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This and __FILE are defined here because we need them for struct _reent,
 | 
				
			||||||
 | 
					 * but we don't want stdio.h included when stdlib.h is.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct __sbuf {
 | 
				
			||||||
 | 
						unsigned char *_base;
 | 
				
			||||||
 | 
						int	_size;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Stdio state variables.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * The following always hold:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	if (_flags&(__SLBF|__SWR)) == (__SLBF|__SWR),
 | 
				
			||||||
 | 
					 *		_lbfsize is -_bf._size, else _lbfsize is 0
 | 
				
			||||||
 | 
					 *	if _flags&__SRD, _w is 0
 | 
				
			||||||
 | 
					 *	if _flags&__SWR, _r is 0
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This ensures that the getc and putc macros (or inline functions) never
 | 
				
			||||||
 | 
					 * try to write or read from a file that is in `read' or `write' mode.
 | 
				
			||||||
 | 
					 * (Moreover, they can, and do, automatically switch from read mode to
 | 
				
			||||||
 | 
					 * write mode, and back, on "r+" and "w+" files.)
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * _lbfsize is used only to make the inline line-buffered output stream
 | 
				
			||||||
 | 
					 * code as compact as possible.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * _ub, _up, and _ur are used when ungetc() pushes back more characters
 | 
				
			||||||
 | 
					 * than fit in the current _bf, or when ungetc() pushes back a character
 | 
				
			||||||
 | 
					 * that does not match the previous one in _bf.  When this happens,
 | 
				
			||||||
 | 
					 * _ub._base becomes non-nil (i.e., a stream has ungetc() data iff
 | 
				
			||||||
 | 
					 * _ub._base!=NULL) and _up and _ur save the current values of _p and _r.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_SMALL
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * struct __sFILE_fake is the start of a struct __sFILE, with only the
 | 
				
			||||||
 | 
					 * minimal fields allocated.  In __sinit() we really allocate the 3
 | 
				
			||||||
 | 
					 * standard streams, etc., and point away from this fake.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					struct __sFILE_fake {
 | 
				
			||||||
 | 
					  unsigned char *_p;	/* current position in (some) buffer */
 | 
				
			||||||
 | 
					  int	_r;		/* read space left for getc() */
 | 
				
			||||||
 | 
					  int	_w;		/* write space left for putc() */
 | 
				
			||||||
 | 
					  short	_flags;		/* flags, below; this FILE is free if 0 */
 | 
				
			||||||
 | 
					  short	_file;		/* fileno, if Unix descriptor, else -1 */
 | 
				
			||||||
 | 
					  struct __sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */
 | 
				
			||||||
 | 
					  int	_lbfsize;	/* 0 or -_bf._size, for inline putc */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct _reent *_data;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Following is needed both in libc/stdio and libc/stdlib so we put it
 | 
				
			||||||
 | 
					 * here instead of libc/stdio/local.h where it was previously. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern _VOID   _EXFUN(__sinit,(struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# define _REENT_SMALL_CHECK_INIT(ptr)		\
 | 
				
			||||||
 | 
					  do						\
 | 
				
			||||||
 | 
					    {						\
 | 
				
			||||||
 | 
					      if ((ptr) && !(ptr)->__sdidinit)		\
 | 
				
			||||||
 | 
						__sinit (ptr);				\
 | 
				
			||||||
 | 
					    }						\
 | 
				
			||||||
 | 
					  while (0)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define _REENT_SMALL_CHECK_INIT(ptr) /* nothing */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct __sFILE {
 | 
				
			||||||
 | 
					  unsigned char *_p;	/* current position in (some) buffer */
 | 
				
			||||||
 | 
					  int	_r;		/* read space left for getc() */
 | 
				
			||||||
 | 
					  int	_w;		/* write space left for putc() */
 | 
				
			||||||
 | 
					  short	_flags;		/* flags, below; this FILE is free if 0 */
 | 
				
			||||||
 | 
					  short	_file;		/* fileno, if Unix descriptor, else -1 */
 | 
				
			||||||
 | 
					  struct __sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */
 | 
				
			||||||
 | 
					  int	_lbfsize;	/* 0 or -_bf._size, for inline putc */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_SMALL
 | 
				
			||||||
 | 
					  struct _reent *_data;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* operations */
 | 
				
			||||||
 | 
					  _PTR	_cookie;	/* cookie passed to io functions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
 | 
				
			||||||
 | 
										   char *, _READ_WRITE_BUFSIZE_TYPE));
 | 
				
			||||||
 | 
					  _READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR,
 | 
				
			||||||
 | 
										    const char *,
 | 
				
			||||||
 | 
										    _READ_WRITE_BUFSIZE_TYPE));
 | 
				
			||||||
 | 
					  _fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int));
 | 
				
			||||||
 | 
					  int _EXFNPTR(_close, (struct _reent *, _PTR));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* separate buffer for long sequences of ungetc() */
 | 
				
			||||||
 | 
					  struct __sbuf _ub;	/* ungetc buffer */
 | 
				
			||||||
 | 
					  unsigned char *_up;	/* saved _p when _p is doing ungetc data */
 | 
				
			||||||
 | 
					  int	_ur;		/* saved _r when _r is counting ungetc data */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* tricks to meet minimum requirements even when malloc() fails */
 | 
				
			||||||
 | 
					  unsigned char _ubuf[3];	/* guarantee an ungetc() buffer */
 | 
				
			||||||
 | 
					  unsigned char _nbuf[1];	/* guarantee a getc() buffer */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* separate buffer for fgetline() when line crosses buffer boundary */
 | 
				
			||||||
 | 
					  struct __sbuf _lb;	/* buffer for fgetline() */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Unix stdio files get aligned to block boundaries on fseek() */
 | 
				
			||||||
 | 
					  int	_blksize;	/* stat.st_blksize (may be != _bf._size) */
 | 
				
			||||||
 | 
					  _off_t _offset;	/* current lseek offset */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _REENT_SMALL
 | 
				
			||||||
 | 
					  struct _reent *_data;	/* Here for binary compatibility? Remove? */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __SINGLE_THREAD__
 | 
				
			||||||
 | 
					  _flock_t _lock;	/* for thread-safety locking */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  _mbstate_t _mbstate;	/* for wide char stdio functions. */
 | 
				
			||||||
 | 
					  int   _flags2;        /* for future use */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CUSTOM_FILE_IO__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Get custom _FILE definition.  */
 | 
				
			||||||
 | 
					#include <sys/custom_file.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !__CUSTOM_FILE_IO__ */
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					struct __sFILE64 {
 | 
				
			||||||
 | 
					  unsigned char *_p;	/* current position in (some) buffer */
 | 
				
			||||||
 | 
					  int	_r;		/* read space left for getc() */
 | 
				
			||||||
 | 
					  int	_w;		/* write space left for putc() */
 | 
				
			||||||
 | 
					  short	_flags;		/* flags, below; this FILE is free if 0 */
 | 
				
			||||||
 | 
					  short	_file;		/* fileno, if Unix descriptor, else -1 */
 | 
				
			||||||
 | 
					  struct __sbuf _bf;	/* the buffer (at least 1 byte, if !NULL) */
 | 
				
			||||||
 | 
					  int	_lbfsize;	/* 0 or -_bf._size, for inline putc */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct _reent *_data;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* operations */
 | 
				
			||||||
 | 
					  _PTR	_cookie;	/* cookie passed to io functions */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _READ_WRITE_RETURN_TYPE _EXFNPTR(_read, (struct _reent *, _PTR,
 | 
				
			||||||
 | 
										   char *, _READ_WRITE_BUFSIZE_TYPE));
 | 
				
			||||||
 | 
					  _READ_WRITE_RETURN_TYPE _EXFNPTR(_write, (struct _reent *, _PTR,
 | 
				
			||||||
 | 
										    const char *,
 | 
				
			||||||
 | 
										    _READ_WRITE_BUFSIZE_TYPE));
 | 
				
			||||||
 | 
					  _fpos_t _EXFNPTR(_seek, (struct _reent *, _PTR, _fpos_t, int));
 | 
				
			||||||
 | 
					  int _EXFNPTR(_close, (struct _reent *, _PTR));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* separate buffer for long sequences of ungetc() */
 | 
				
			||||||
 | 
					  struct __sbuf _ub;	/* ungetc buffer */
 | 
				
			||||||
 | 
					  unsigned char *_up;	/* saved _p when _p is doing ungetc data */
 | 
				
			||||||
 | 
					  int	_ur;		/* saved _r when _r is counting ungetc data */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* tricks to meet minimum requirements even when malloc() fails */
 | 
				
			||||||
 | 
					  unsigned char _ubuf[3];	/* guarantee an ungetc() buffer */
 | 
				
			||||||
 | 
					  unsigned char _nbuf[1];	/* guarantee a getc() buffer */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* separate buffer for fgetline() when line crosses buffer boundary */
 | 
				
			||||||
 | 
					  struct __sbuf _lb;	/* buffer for fgetline() */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* Unix stdio files get aligned to block boundaries on fseek() */
 | 
				
			||||||
 | 
					  int	_blksize;	/* stat.st_blksize (may be != _bf._size) */
 | 
				
			||||||
 | 
					  int   _flags2;        /* for future use */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  _off64_t _offset;     /* current lseek offset */
 | 
				
			||||||
 | 
					  _fpos64_t _EXFNPTR(_seek64, (struct _reent *, _PTR, _fpos64_t, int));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __SINGLE_THREAD__
 | 
				
			||||||
 | 
					  _flock_t _lock;	/* for thread-safety locking */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  _mbstate_t _mbstate;	/* for wide char stdio functions. */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					typedef struct __sFILE64 __FILE;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef struct __sFILE   __FILE;
 | 
				
			||||||
 | 
					#endif /* __LARGE64_FILES */
 | 
				
			||||||
 | 
					#endif /* !__CUSTOM_FILE_IO__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _glue
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  struct _glue *_next;
 | 
				
			||||||
 | 
					  int _niobs;
 | 
				
			||||||
 | 
					  __FILE *_iobs;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * rand48 family support
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Copyright (c) 1993 Martin Birgmeier
 | 
				
			||||||
 | 
					 * All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You may redistribute unmodified or modified versions of this source
 | 
				
			||||||
 | 
					 * code provided that the above copyright notice and this and the
 | 
				
			||||||
 | 
					 * following conditions are retained.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This software is provided ``as is'', and comes with no warranties
 | 
				
			||||||
 | 
					 * of any kind. I shall in no event be liable for anything that happens
 | 
				
			||||||
 | 
					 * to anyone/anything when using this software.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define        _RAND48_SEED_0  (0x330e)
 | 
				
			||||||
 | 
					#define        _RAND48_SEED_1  (0xabcd)
 | 
				
			||||||
 | 
					#define        _RAND48_SEED_2  (0x1234)
 | 
				
			||||||
 | 
					#define        _RAND48_MULT_0  (0xe66d)
 | 
				
			||||||
 | 
					#define        _RAND48_MULT_1  (0xdeec)
 | 
				
			||||||
 | 
					#define        _RAND48_MULT_2  (0x0005)
 | 
				
			||||||
 | 
					#define        _RAND48_ADD     (0x000b)
 | 
				
			||||||
 | 
					struct _rand48 {
 | 
				
			||||||
 | 
					  unsigned short _seed[3];
 | 
				
			||||||
 | 
					  unsigned short _mult[3];
 | 
				
			||||||
 | 
					  unsigned short _add;
 | 
				
			||||||
 | 
					#ifdef _REENT_SMALL
 | 
				
			||||||
 | 
					  /* Put this in here as well, for good luck.  */
 | 
				
			||||||
 | 
					  __extension__ unsigned long long _rand_next;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* How big the some arrays are.  */
 | 
				
			||||||
 | 
					#define _REENT_EMERGENCY_SIZE 25
 | 
				
			||||||
 | 
					#define _REENT_ASCTIME_SIZE 26
 | 
				
			||||||
 | 
					#define _REENT_SIGNAL_SIZE 24
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * struct _reent
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This structure contains *all* globals needed by the library.
 | 
				
			||||||
 | 
					 * It's raison d'etre is to facilitate threads by making all library routines
 | 
				
			||||||
 | 
					 * reentrant.  IE: All state information is contained here.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_SMALL
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _mprec
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* used by mprec routines */
 | 
				
			||||||
 | 
					  struct _Bigint *_result;
 | 
				
			||||||
 | 
					  int _result_k;
 | 
				
			||||||
 | 
					  struct _Bigint *_p5s;
 | 
				
			||||||
 | 
					  struct _Bigint **_freelist;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _misc_reent
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* miscellaneous reentrant data */
 | 
				
			||||||
 | 
					  char *_strtok_last;
 | 
				
			||||||
 | 
					  _mbstate_t _mblen_state;
 | 
				
			||||||
 | 
					  _mbstate_t _wctomb_state;
 | 
				
			||||||
 | 
					  _mbstate_t _mbtowc_state;
 | 
				
			||||||
 | 
					  char _l64a_buf[8];
 | 
				
			||||||
 | 
					  int _getdate_err;
 | 
				
			||||||
 | 
					  _mbstate_t _mbrlen_state;
 | 
				
			||||||
 | 
					  _mbstate_t _mbrtowc_state;
 | 
				
			||||||
 | 
					  _mbstate_t _mbsrtowcs_state;
 | 
				
			||||||
 | 
					  _mbstate_t _wcrtomb_state;
 | 
				
			||||||
 | 
					  _mbstate_t _wcsrtombs_state;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This version of _reent is laid out with "int"s in pairs, to help
 | 
				
			||||||
 | 
					 * ports with 16-bit int's but 32-bit pointers, align nicely.  */
 | 
				
			||||||
 | 
					struct _reent
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  /* As an exception to the above put _errno first for binary
 | 
				
			||||||
 | 
					     compatibility with non _REENT_SMALL targets.  */
 | 
				
			||||||
 | 
					  int _errno;			/* local copy of errno */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* FILE is a big struct and may change over time.  To try to achieve binary
 | 
				
			||||||
 | 
					     compatibility with future versions, put stdin,stdout,stderr here.
 | 
				
			||||||
 | 
					     These are pointers into member __sf defined below.  */
 | 
				
			||||||
 | 
					  __FILE *_stdin, *_stdout, *_stderr;	/* XXX */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int  _inc;			/* used by tmpnam */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  char *_emergency;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int __sdidinit;		/* 1 means stdio has been init'd */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _current_category;	/* unused */
 | 
				
			||||||
 | 
					  _CONST char *_current_locale;	/* unused */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct _mprec *_mp;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void _EXFNPTR(__cleanup, (struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _gamma_signgam;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* used by some fp conversion routines */
 | 
				
			||||||
 | 
					  int _cvtlen;			/* should be size_t */
 | 
				
			||||||
 | 
					  char *_cvtbuf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct _rand48 *_r48;
 | 
				
			||||||
 | 
					  struct __tm *_localtime_buf;
 | 
				
			||||||
 | 
					  char *_asctime_buf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* signal info */
 | 
				
			||||||
 | 
					  void (**(_sig_func))(int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef _REENT_GLOBAL_ATEXIT
 | 
				
			||||||
 | 
					  /* atexit stuff */
 | 
				
			||||||
 | 
					  struct _atexit *_atexit;
 | 
				
			||||||
 | 
					  struct _atexit _atexit0;
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  struct _glue __sglue;			/* root of glue chain */
 | 
				
			||||||
 | 
					  __FILE *__sf;			        /* file descriptors */
 | 
				
			||||||
 | 
					  struct _misc_reent *_misc;            /* strtok, multibyte states */
 | 
				
			||||||
 | 
					  char *_signal_buf;                    /* strsignal */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern const struct __sFILE_fake __sf_fake_stdin;
 | 
				
			||||||
 | 
					extern const struct __sFILE_fake __sf_fake_stdout;
 | 
				
			||||||
 | 
					extern const struct __sFILE_fake __sf_fake_stderr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# define _REENT_INIT(var) \
 | 
				
			||||||
 | 
					  { 0, \
 | 
				
			||||||
 | 
					    (__FILE *)&__sf_fake_stdin, \
 | 
				
			||||||
 | 
					    (__FILE *)&__sf_fake_stdout, \
 | 
				
			||||||
 | 
					    (__FILE *)&__sf_fake_stderr, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    "C", \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _REENT_INIT_ATEXIT \
 | 
				
			||||||
 | 
					    {_NULL, 0, _NULL}, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL \
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_INIT_PTR(var) \
 | 
				
			||||||
 | 
					  { memset((var), 0, sizeof(*(var))); \
 | 
				
			||||||
 | 
					    (var)->_stdin = (__FILE *)&__sf_fake_stdin; \
 | 
				
			||||||
 | 
					    (var)->_stdout = (__FILE *)&__sf_fake_stdout; \
 | 
				
			||||||
 | 
					    (var)->_stderr = (__FILE *)&__sf_fake_stderr; \
 | 
				
			||||||
 | 
					    (var)->_current_locale = "C"; \
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Only built the assert() calls if we are built with debugging.  */
 | 
				
			||||||
 | 
					#if DEBUG
 | 
				
			||||||
 | 
					#include <assert.h>
 | 
				
			||||||
 | 
					#define __reent_assert(x) assert(x)
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define __reent_assert(x) ((void)0)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CUSTOM_FILE_IO__
 | 
				
			||||||
 | 
					#error Custom FILE I/O and _REENT_SMALL not currently supported.
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Generic _REENT check macro.  */
 | 
				
			||||||
 | 
					#define _REENT_CHECK(var, what, type, size, init) do { \
 | 
				
			||||||
 | 
					  struct _reent *_r = (var); \
 | 
				
			||||||
 | 
					  if (_r->what == NULL) { \
 | 
				
			||||||
 | 
					    _r->what = (type)malloc(size); \
 | 
				
			||||||
 | 
					    __reent_assert(_r->what); \
 | 
				
			||||||
 | 
					    init; \
 | 
				
			||||||
 | 
					  } \
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_CHECK_TM(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _localtime_buf, struct __tm *, sizeof *((var)->_localtime_buf), \
 | 
				
			||||||
 | 
					    /* nothing */)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_CHECK_ASCTIME_BUF(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _asctime_buf, char *, _REENT_ASCTIME_SIZE, \
 | 
				
			||||||
 | 
					    memset((var)->_asctime_buf, 0, _REENT_ASCTIME_SIZE))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Handle the dynamically allocated rand48 structure. */
 | 
				
			||||||
 | 
					#define _REENT_INIT_RAND48(var) do { \
 | 
				
			||||||
 | 
					  struct _reent *_r = (var); \
 | 
				
			||||||
 | 
					  _r->_r48->_seed[0] = _RAND48_SEED_0; \
 | 
				
			||||||
 | 
					  _r->_r48->_seed[1] = _RAND48_SEED_1; \
 | 
				
			||||||
 | 
					  _r->_r48->_seed[2] = _RAND48_SEED_2; \
 | 
				
			||||||
 | 
					  _r->_r48->_mult[0] = _RAND48_MULT_0; \
 | 
				
			||||||
 | 
					  _r->_r48->_mult[1] = _RAND48_MULT_1; \
 | 
				
			||||||
 | 
					  _r->_r48->_mult[2] = _RAND48_MULT_2; \
 | 
				
			||||||
 | 
					  _r->_r48->_add = _RAND48_ADD; \
 | 
				
			||||||
 | 
					  _r->_r48->_rand_next = 1; \
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					#define _REENT_CHECK_RAND48(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _r48, struct _rand48 *, sizeof *((var)->_r48), _REENT_INIT_RAND48((var)))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_INIT_MP(var) do { \
 | 
				
			||||||
 | 
					  struct _reent *_r = (var); \
 | 
				
			||||||
 | 
					  _r->_mp->_result_k = 0; \
 | 
				
			||||||
 | 
					  _r->_mp->_result = _r->_mp->_p5s = _NULL; \
 | 
				
			||||||
 | 
					  _r->_mp->_freelist = _NULL; \
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					#define _REENT_CHECK_MP(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _mp, struct _mprec *, sizeof *((var)->_mp), _REENT_INIT_MP(var))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_CHECK_EMERGENCY(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _emergency, char *, _REENT_EMERGENCY_SIZE, /* nothing */)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_INIT_MISC(var) do { \
 | 
				
			||||||
 | 
					  struct _reent *_r = (var); \
 | 
				
			||||||
 | 
					  _r->_misc->_strtok_last = _NULL; \
 | 
				
			||||||
 | 
					  _r->_misc->_mblen_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mblen_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wctomb_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wctomb_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbtowc_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbtowc_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbrlen_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbrlen_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbrtowc_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbrtowc_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbsrtowcs_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_mbsrtowcs_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wcrtomb_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wcrtomb_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wcsrtombs_state.__count = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_wcsrtombs_state.__value.__wch = 0; \
 | 
				
			||||||
 | 
					  _r->_misc->_l64a_buf[0] = '\0'; \
 | 
				
			||||||
 | 
					  _r->_misc->_getdate_err = 0; \
 | 
				
			||||||
 | 
					} while (0)
 | 
				
			||||||
 | 
					#define _REENT_CHECK_MISC(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _misc, struct _misc_reent *, sizeof *((var)->_misc), _REENT_INIT_MISC(var))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_CHECK_SIGNAL_BUF(var) \
 | 
				
			||||||
 | 
					  _REENT_CHECK(var, _signal_buf, char *, _REENT_SIGNAL_SIZE, /* nothing */)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_SIGNGAM(ptr)	((ptr)->_gamma_signgam)
 | 
				
			||||||
 | 
					#define _REENT_RAND_NEXT(ptr)	((ptr)->_r48->_rand_next)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_SEED(ptr)	((ptr)->_r48->_seed)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_MULT(ptr)	((ptr)->_r48->_mult)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_ADD(ptr)	((ptr)->_r48->_add)
 | 
				
			||||||
 | 
					#define _REENT_MP_RESULT(ptr)	((ptr)->_mp->_result)
 | 
				
			||||||
 | 
					#define _REENT_MP_RESULT_K(ptr)	((ptr)->_mp->_result_k)
 | 
				
			||||||
 | 
					#define _REENT_MP_P5S(ptr)	((ptr)->_mp->_p5s)
 | 
				
			||||||
 | 
					#define _REENT_MP_FREELIST(ptr)	((ptr)->_mp->_freelist)
 | 
				
			||||||
 | 
					#define _REENT_ASCTIME_BUF(ptr)	((ptr)->_asctime_buf)
 | 
				
			||||||
 | 
					#define _REENT_TM(ptr)		((ptr)->_localtime_buf)
 | 
				
			||||||
 | 
					#define _REENT_EMERGENCY(ptr)	((ptr)->_emergency)
 | 
				
			||||||
 | 
					#define _REENT_STRTOK_LAST(ptr)	((ptr)->_misc->_strtok_last)
 | 
				
			||||||
 | 
					#define _REENT_MBLEN_STATE(ptr)	((ptr)->_misc->_mblen_state)
 | 
				
			||||||
 | 
					#define _REENT_MBTOWC_STATE(ptr)((ptr)->_misc->_mbtowc_state)
 | 
				
			||||||
 | 
					#define _REENT_WCTOMB_STATE(ptr)((ptr)->_misc->_wctomb_state)
 | 
				
			||||||
 | 
					#define _REENT_MBRLEN_STATE(ptr) ((ptr)->_misc->_mbrlen_state)
 | 
				
			||||||
 | 
					#define _REENT_MBRTOWC_STATE(ptr) ((ptr)->_misc->_mbrtowc_state)
 | 
				
			||||||
 | 
					#define _REENT_MBSRTOWCS_STATE(ptr) ((ptr)->_misc->_mbsrtowcs_state)
 | 
				
			||||||
 | 
					#define _REENT_WCRTOMB_STATE(ptr) ((ptr)->_misc->_wcrtomb_state)
 | 
				
			||||||
 | 
					#define _REENT_WCSRTOMBS_STATE(ptr) ((ptr)->_misc->_wcsrtombs_state)
 | 
				
			||||||
 | 
					#define _REENT_L64A_BUF(ptr)    ((ptr)->_misc->_l64a_buf)
 | 
				
			||||||
 | 
					#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_misc->_getdate_err))
 | 
				
			||||||
 | 
					#define _REENT_SIGNAL_BUF(ptr)  ((ptr)->_signal_buf)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !_REENT_SMALL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct _reent
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  int _errno;			/* local copy of errno */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* FILE is a big struct and may change over time.  To try to achieve binary
 | 
				
			||||||
 | 
					     compatibility with future versions, put stdin,stdout,stderr here.
 | 
				
			||||||
 | 
					     These are pointers into member __sf defined below.  */
 | 
				
			||||||
 | 
					  __FILE *_stdin, *_stdout, *_stderr;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int  _inc;			/* used by tmpnam */
 | 
				
			||||||
 | 
					  char _emergency[_REENT_EMERGENCY_SIZE];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int _current_category;	/* used by setlocale */
 | 
				
			||||||
 | 
					  _CONST char *_current_locale;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  int __sdidinit;		/* 1 means stdio has been init'd */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  void _EXFNPTR(__cleanup, (struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* used by mprec routines */
 | 
				
			||||||
 | 
					  struct _Bigint *_result;
 | 
				
			||||||
 | 
					  int _result_k;
 | 
				
			||||||
 | 
					  struct _Bigint *_p5s;
 | 
				
			||||||
 | 
					  struct _Bigint **_freelist;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* used by some fp conversion routines */
 | 
				
			||||||
 | 
					  int _cvtlen;			/* should be size_t */
 | 
				
			||||||
 | 
					  char *_cvtbuf;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  union
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					      struct
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					          unsigned int _unused_rand;
 | 
				
			||||||
 | 
					          char * _strtok_last;
 | 
				
			||||||
 | 
					          char _asctime_buf[_REENT_ASCTIME_SIZE];
 | 
				
			||||||
 | 
					          struct __tm _localtime_buf;
 | 
				
			||||||
 | 
					          int _gamma_signgam;
 | 
				
			||||||
 | 
					          __extension__ unsigned long long _rand_next;
 | 
				
			||||||
 | 
					          struct _rand48 _r48;
 | 
				
			||||||
 | 
					          _mbstate_t _mblen_state;
 | 
				
			||||||
 | 
					          _mbstate_t _mbtowc_state;
 | 
				
			||||||
 | 
					          _mbstate_t _wctomb_state;
 | 
				
			||||||
 | 
					          char _l64a_buf[8];
 | 
				
			||||||
 | 
					          char _signal_buf[_REENT_SIGNAL_SIZE];
 | 
				
			||||||
 | 
					          int _getdate_err;
 | 
				
			||||||
 | 
					          _mbstate_t _mbrlen_state;
 | 
				
			||||||
 | 
					          _mbstate_t _mbrtowc_state;
 | 
				
			||||||
 | 
					          _mbstate_t _mbsrtowcs_state;
 | 
				
			||||||
 | 
					          _mbstate_t _wcrtomb_state;
 | 
				
			||||||
 | 
					          _mbstate_t _wcsrtombs_state;
 | 
				
			||||||
 | 
						  int _h_errno;
 | 
				
			||||||
 | 
					        } _reent;
 | 
				
			||||||
 | 
					  /* Two next two fields were once used by malloc.  They are no longer
 | 
				
			||||||
 | 
					     used. They are used to preserve the space used before so as to
 | 
				
			||||||
 | 
					     allow addition of new reent fields and keep binary compatibility.   */
 | 
				
			||||||
 | 
					      struct
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					#define _N_LISTS 30
 | 
				
			||||||
 | 
					          unsigned char * _nextf[_N_LISTS];
 | 
				
			||||||
 | 
					          unsigned int _nmalloc[_N_LISTS];
 | 
				
			||||||
 | 
					        } _unused;
 | 
				
			||||||
 | 
					    } _new;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef _REENT_GLOBAL_ATEXIT
 | 
				
			||||||
 | 
					  /* atexit stuff */
 | 
				
			||||||
 | 
					  struct _atexit *_atexit;	/* points to head of LIFO stack */
 | 
				
			||||||
 | 
					  struct _atexit _atexit0;	/* one guaranteed table, required by ANSI */
 | 
				
			||||||
 | 
					# endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* signal info */
 | 
				
			||||||
 | 
					  void (**(_sig_func))(int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* These are here last so that __FILE can grow without changing the offsets
 | 
				
			||||||
 | 
					     of the above members (on the off chance that future binary compatibility
 | 
				
			||||||
 | 
					     would be broken otherwise).  */
 | 
				
			||||||
 | 
					  struct _glue __sglue;		/* root of glue chain */
 | 
				
			||||||
 | 
					  __FILE __sf[3];  		/* first three file descriptors */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_INIT(var) \
 | 
				
			||||||
 | 
					  { 0, \
 | 
				
			||||||
 | 
					    &(var).__sf[0], \
 | 
				
			||||||
 | 
					    &(var).__sf[1], \
 | 
				
			||||||
 | 
					    &(var).__sf[2], \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    "", \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    "C", \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    0, \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    { \
 | 
				
			||||||
 | 
					      { \
 | 
				
			||||||
 | 
					        0, \
 | 
				
			||||||
 | 
					        _NULL, \
 | 
				
			||||||
 | 
					        "", \
 | 
				
			||||||
 | 
					        {0, 0, 0, 0, 0, 0, 0, 0, 0}, \
 | 
				
			||||||
 | 
					        0, \
 | 
				
			||||||
 | 
					        1, \
 | 
				
			||||||
 | 
					        { \
 | 
				
			||||||
 | 
					          {_RAND48_SEED_0, _RAND48_SEED_1, _RAND48_SEED_2}, \
 | 
				
			||||||
 | 
					          {_RAND48_MULT_0, _RAND48_MULT_1, _RAND48_MULT_2}, \
 | 
				
			||||||
 | 
					          _RAND48_ADD \
 | 
				
			||||||
 | 
					        }, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        "", \
 | 
				
			||||||
 | 
					        "", \
 | 
				
			||||||
 | 
					        0, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}}, \
 | 
				
			||||||
 | 
					        {0, {0}} \
 | 
				
			||||||
 | 
					      } \
 | 
				
			||||||
 | 
					    }, \
 | 
				
			||||||
 | 
					    _REENT_INIT_ATEXIT \
 | 
				
			||||||
 | 
					    _NULL, \
 | 
				
			||||||
 | 
					    {_NULL, 0, _NULL} \
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_INIT_PTR(var) \
 | 
				
			||||||
 | 
					  { memset((var), 0, sizeof(*(var))); \
 | 
				
			||||||
 | 
					    (var)->_stdin = &(var)->__sf[0]; \
 | 
				
			||||||
 | 
					    (var)->_stdout = &(var)->__sf[1]; \
 | 
				
			||||||
 | 
					    (var)->_stderr = &(var)->__sf[2]; \
 | 
				
			||||||
 | 
					    (var)->_current_locale = "C"; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._rand_next = 1; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._seed[0] = _RAND48_SEED_0; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._seed[1] = _RAND48_SEED_1; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._seed[2] = _RAND48_SEED_2; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._mult[0] = _RAND48_MULT_0; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._mult[1] = _RAND48_MULT_1; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._mult[2] = _RAND48_MULT_2; \
 | 
				
			||||||
 | 
					    (var)->_new._reent._r48._add = _RAND48_ADD; \
 | 
				
			||||||
 | 
					  }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_CHECK_RAND48(ptr)	/* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_MP(ptr)		/* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_TM(ptr)		/* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_ASCTIME_BUF(ptr)	/* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_EMERGENCY(ptr)	/* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_MISC(ptr)	        /* nothing */
 | 
				
			||||||
 | 
					#define _REENT_CHECK_SIGNAL_BUF(ptr)	/* nothing */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _REENT_SIGNGAM(ptr)	((ptr)->_new._reent._gamma_signgam)
 | 
				
			||||||
 | 
					#define _REENT_RAND_NEXT(ptr)	((ptr)->_new._reent._rand_next)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_SEED(ptr)	((ptr)->_new._reent._r48._seed)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_MULT(ptr)	((ptr)->_new._reent._r48._mult)
 | 
				
			||||||
 | 
					#define _REENT_RAND48_ADD(ptr)	((ptr)->_new._reent._r48._add)
 | 
				
			||||||
 | 
					#define _REENT_MP_RESULT(ptr)	((ptr)->_result)
 | 
				
			||||||
 | 
					#define _REENT_MP_RESULT_K(ptr)	((ptr)->_result_k)
 | 
				
			||||||
 | 
					#define _REENT_MP_P5S(ptr)	((ptr)->_p5s)
 | 
				
			||||||
 | 
					#define _REENT_MP_FREELIST(ptr)	((ptr)->_freelist)
 | 
				
			||||||
 | 
					#define _REENT_ASCTIME_BUF(ptr)	((ptr)->_new._reent._asctime_buf)
 | 
				
			||||||
 | 
					#define _REENT_TM(ptr)		(&(ptr)->_new._reent._localtime_buf)
 | 
				
			||||||
 | 
					#define _REENT_EMERGENCY(ptr)	((ptr)->_emergency)
 | 
				
			||||||
 | 
					#define _REENT_STRTOK_LAST(ptr)	((ptr)->_new._reent._strtok_last)
 | 
				
			||||||
 | 
					#define _REENT_MBLEN_STATE(ptr)	((ptr)->_new._reent._mblen_state)
 | 
				
			||||||
 | 
					#define _REENT_MBTOWC_STATE(ptr)((ptr)->_new._reent._mbtowc_state)
 | 
				
			||||||
 | 
					#define _REENT_WCTOMB_STATE(ptr)((ptr)->_new._reent._wctomb_state)
 | 
				
			||||||
 | 
					#define _REENT_MBRLEN_STATE(ptr)((ptr)->_new._reent._mbrlen_state)
 | 
				
			||||||
 | 
					#define _REENT_MBRTOWC_STATE(ptr)((ptr)->_new._reent._mbrtowc_state)
 | 
				
			||||||
 | 
					#define _REENT_MBSRTOWCS_STATE(ptr)((ptr)->_new._reent._mbsrtowcs_state)
 | 
				
			||||||
 | 
					#define _REENT_WCRTOMB_STATE(ptr)((ptr)->_new._reent._wcrtomb_state)
 | 
				
			||||||
 | 
					#define _REENT_WCSRTOMBS_STATE(ptr)((ptr)->_new._reent._wcsrtombs_state)
 | 
				
			||||||
 | 
					#define _REENT_L64A_BUF(ptr)    ((ptr)->_new._reent._l64a_buf)
 | 
				
			||||||
 | 
					#define _REENT_SIGNAL_BUF(ptr)  ((ptr)->_new._reent._signal_buf)
 | 
				
			||||||
 | 
					#define _REENT_GETDATE_ERR_P(ptr) (&((ptr)->_new._reent._getdate_err))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_REENT_SMALL */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This value is used in stdlib/misc.c.  reent/reent.c has to know it
 | 
				
			||||||
 | 
					   as well to make sure the freelist is correctly free'd.  Therefore
 | 
				
			||||||
 | 
					   we define it here, rather than in stdlib/misc.c, as before. */
 | 
				
			||||||
 | 
					#define _Kmax (sizeof (size_t) << 3)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * All references to struct _reent are via this pointer.
 | 
				
			||||||
 | 
					 * Internally, newlib routines that need to reference it should use _REENT.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __ATTRIBUTE_IMPURE_PTR__
 | 
				
			||||||
 | 
					#define __ATTRIBUTE_IMPURE_PTR__
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern struct _reent *_impure_ptr __ATTRIBUTE_IMPURE_PTR__;
 | 
				
			||||||
 | 
					extern struct _reent *_CONST _global_impure_ptr __ATTRIBUTE_IMPURE_PTR__;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void _reclaim_reent _PARAMS ((struct _reent *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* #define _REENT_ONLY define this to get only reentrant routines */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__DYNAMIC_REENT__) && !defined(__SINGLE_THREAD__)
 | 
				
			||||||
 | 
					#ifndef __getreent
 | 
				
			||||||
 | 
					  struct _reent * _EXFUN(__getreent, (void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					# define _REENT (__getreent())
 | 
				
			||||||
 | 
					#else /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */
 | 
				
			||||||
 | 
					# define _REENT _impure_ptr
 | 
				
			||||||
 | 
					#endif /* __SINGLE_THREAD__ || !__DYNAMIC_REENT__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _GLOBAL_REENT _global_impure_ptr
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _REENT_GLOBAL_ATEXIT
 | 
				
			||||||
 | 
					extern struct _atexit *_global_atexit; /* points to head of LIFO stack */
 | 
				
			||||||
 | 
					# define _GLOBAL_ATEXIT _global_atexit
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					# define _GLOBAL_ATEXIT (_GLOBAL_REENT->_atexit)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_REENT_H_ */
 | 
				
			||||||
							
								
								
									
										17
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/resource.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										17
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/resource.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,17 @@
 | 
				
			|||||||
 | 
					#ifndef _SYS_RESOURCE_H_
 | 
				
			||||||
 | 
					#define _SYS_RESOURCE_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/time.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	RUSAGE_SELF	0		/* calling process */
 | 
				
			||||||
 | 
					#define	RUSAGE_CHILDREN	-1		/* terminated child processes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct rusage {
 | 
				
			||||||
 | 
					  	struct timeval ru_utime;	/* user time used */
 | 
				
			||||||
 | 
						struct timeval ru_stime;	/* system time used */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(getrusage, (int, struct rusage*));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										67
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/sched.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										67
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/sched.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,67 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  Written by Joel Sherrill <joel@OARcorp.com>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  COPYRIGHT (c) 1989-2010.
 | 
				
			||||||
 | 
					 *  On-Line Applications Research Corporation (OAR).
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  Permission to use, copy, modify, and distribute this software for any
 | 
				
			||||||
 | 
					 *  purpose without fee is hereby granted, provided that this entire notice
 | 
				
			||||||
 | 
					 *  is included in all copies of any software which is or includes a copy
 | 
				
			||||||
 | 
					 *  or modification of this software.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  THIS SOFTWARE IS BEING PROVIDED "AS IS", WITHOUT ANY EXPRESS OR IMPLIED
 | 
				
			||||||
 | 
					 *  WARRANTY.  IN PARTICULAR,  THE AUTHOR MAKES NO REPRESENTATION
 | 
				
			||||||
 | 
					 *  OR WARRANTY OF ANY KIND CONCERNING THE MERCHANTABILITY OF THIS
 | 
				
			||||||
 | 
					 *  SOFTWARE OR ITS FITNESS FOR ANY PARTICULAR PURPOSE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  $Id$
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_SCHED_H_
 | 
				
			||||||
 | 
					#define _SYS_SCHED_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Scheduling Policies */
 | 
				
			||||||
 | 
					/* Open Group Specifications Issue 6 */
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#define SCHED_OTHER    3
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define SCHED_OTHER    0
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SCHED_FIFO     1
 | 
				
			||||||
 | 
					#define SCHED_RR       2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_SPORADIC_SERVER)
 | 
				
			||||||
 | 
					#define SCHED_SPORADIC 4
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Scheduling Parameters */
 | 
				
			||||||
 | 
					/* Open Group Specifications Issue 6 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sched_param {
 | 
				
			||||||
 | 
					  int sched_priority;           /* Process execution scheduling priority */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_SPORADIC_SERVER) || defined(_POSIX_THREAD_SPORADIC_SERVER)
 | 
				
			||||||
 | 
					  int sched_ss_low_priority;    /* Low scheduling priority for sporadic */
 | 
				
			||||||
 | 
					                                /*   server */
 | 
				
			||||||
 | 
					  struct timespec sched_ss_repl_period;
 | 
				
			||||||
 | 
					                                /* Replenishment period for sporadic server */
 | 
				
			||||||
 | 
					  struct timespec sched_ss_init_budget;
 | 
				
			||||||
 | 
					                               /* Initial budget for sporadic server */
 | 
				
			||||||
 | 
					  int sched_ss_max_repl;       /* Maximum pending replenishments for */
 | 
				
			||||||
 | 
					                               /* sporadic server */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					/* end of include file */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
							
								
								
									
										357
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/signal.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										357
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/signal.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,357 @@
 | 
				
			|||||||
 | 
					/* sys/signal.h */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_SIGNAL_H
 | 
				
			||||||
 | 
					#define _SYS_SIGNAL_H
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "_ansi.h"
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* #ifndef __STRICT_ANSI__*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Cygwin defines it's own sigset_t in include/cygwin/signal.h */
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					typedef unsigned long sigset_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_REALTIME_SIGNALS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* sigev_notify values
 | 
				
			||||||
 | 
					   NOTE: P1003.1c/D10, p. 34 adds SIGEV_THREAD.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SIGEV_NONE   1  /* No asynchronous notification shall be delivered */
 | 
				
			||||||
 | 
					                        /*   when the event of interest occurs. */
 | 
				
			||||||
 | 
					#define SIGEV_SIGNAL 2  /* A queued signal, with an application defined */
 | 
				
			||||||
 | 
					                        /*  value, shall be delivered when the event of */
 | 
				
			||||||
 | 
					                        /*  interest occurs. */
 | 
				
			||||||
 | 
					#define SIGEV_THREAD 3  /* A notification function shall be called to */
 | 
				
			||||||
 | 
					                        /*   perform notification. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  Signal Generation and Delivery, P1003.1b-1993, p. 63
 | 
				
			||||||
 | 
					    NOTE: P1003.1c/D10, p. 34 adds sigev_notify_function and
 | 
				
			||||||
 | 
					          sigev_notify_attributes to the sigevent structure.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					union sigval {
 | 
				
			||||||
 | 
					  int    sival_int;    /* Integer signal value */
 | 
				
			||||||
 | 
					  void  *sival_ptr;    /* Pointer signal value */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sigevent {
 | 
				
			||||||
 | 
					  int              sigev_notify;               /* Notification type */
 | 
				
			||||||
 | 
					  int              sigev_signo;                /* Signal number */
 | 
				
			||||||
 | 
					  union sigval     sigev_value;                /* Signal value */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS)
 | 
				
			||||||
 | 
					  void           (*sigev_notify_function)( union sigval );
 | 
				
			||||||
 | 
					                                               /* Notification function */
 | 
				
			||||||
 | 
					  pthread_attr_t  *sigev_notify_attributes;    /* Notification Attributes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Signal Actions, P1003.1b-1993, p. 64 */
 | 
				
			||||||
 | 
					/* si_code values, p. 66 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SI_USER    1    /* Sent by a user. kill(), abort(), etc */
 | 
				
			||||||
 | 
					#define SI_QUEUE   2    /* Sent by sigqueue() */
 | 
				
			||||||
 | 
					#define SI_TIMER   3    /* Sent by expiration of a timer_settime() timer */
 | 
				
			||||||
 | 
					#define SI_ASYNCIO 4    /* Indicates completion of asycnhronous IO */
 | 
				
			||||||
 | 
					#define SI_MESGQ   5    /* Indicates arrival of a message at an empty queue */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int          si_signo;    /* Signal number */
 | 
				
			||||||
 | 
					  int          si_code;     /* Cause of the signal */
 | 
				
			||||||
 | 
					  union sigval si_value;    /* Signal value */
 | 
				
			||||||
 | 
					} siginfo_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SA_NOCLDSTOP 0x1   /* Do not generate SIGCHLD when children stop */
 | 
				
			||||||
 | 
					#define SA_SIGINFO   0x2   /* Invoke the signal catching function with */
 | 
				
			||||||
 | 
					                           /*   three arguments instead of one. */
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
 | 
				
			||||||
 | 
					#define SA_ONSTACK   0x4   /* Signal delivery will be on a separate stack. */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* struct sigaction notes from POSIX:
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *  (1) Routines stored in sa_handler should take a single int as
 | 
				
			||||||
 | 
					 *      their argument although the POSIX standard does not require this.
 | 
				
			||||||
 | 
					 *      This is not longer true since at least POSIX.1-2008
 | 
				
			||||||
 | 
					 *  (2) The fields sa_handler and sa_sigaction may overlap, and a conforming
 | 
				
			||||||
 | 
					 *      application should not use both simultaneously.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef void (*_sig_func_ptr)(int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sigaction {
 | 
				
			||||||
 | 
					  int         sa_flags;       /* Special flags to affect behavior of signal */
 | 
				
			||||||
 | 
					  sigset_t    sa_mask;        /* Additional set of signals to be blocked */
 | 
				
			||||||
 | 
					                              /*   during execution of signal-catching */
 | 
				
			||||||
 | 
					                              /*   function. */
 | 
				
			||||||
 | 
					  union {
 | 
				
			||||||
 | 
					    _sig_func_ptr _handler;  /* SIG_DFL, SIG_IGN, or pointer to a function */
 | 
				
			||||||
 | 
					#if defined(_POSIX_REALTIME_SIGNALS)
 | 
				
			||||||
 | 
					    void      (*_sigaction)( int, siginfo_t *, void * );
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  } _signal_handlers;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define sa_handler    _signal_handlers._handler
 | 
				
			||||||
 | 
					#if defined(_POSIX_REALTIME_SIGNALS)
 | 
				
			||||||
 | 
					#define sa_sigaction  _signal_handlers._sigaction
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Minimum and default signal stack constants. Allow for target overrides
 | 
				
			||||||
 | 
					 * from <sys/features.h>.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef	MINSIGSTKSZ
 | 
				
			||||||
 | 
					#define	MINSIGSTKSZ	2048
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef	SIGSTKSZ
 | 
				
			||||||
 | 
					#define	SIGSTKSZ	8192
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Possible values for ss_flags in stack_t below.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define	SS_ONSTACK	0x1
 | 
				
			||||||
 | 
					#define	SS_DISABLE	0x2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Structure used in sigaltstack call.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					typedef struct sigaltstack {
 | 
				
			||||||
 | 
					  void     *ss_sp;    /* Stack base or pointer.  */
 | 
				
			||||||
 | 
					  int       ss_flags; /* Flags.  */
 | 
				
			||||||
 | 
					  size_t    ss_size;  /* Stack size.  */
 | 
				
			||||||
 | 
					} stack_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#elif defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#include <cygwin/signal.h>
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define SA_NOCLDSTOP 1  /* only value supported now for sa_flags */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef void (*_sig_func_ptr)(int);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct sigaction 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
						_sig_func_ptr sa_handler;
 | 
				
			||||||
 | 
						sigset_t sa_mask;
 | 
				
			||||||
 | 
						int sa_flags;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif /* defined(__rtems__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define SIG_SETMASK 0	/* set mask with sigprocmask() */
 | 
				
			||||||
 | 
					#define SIG_BLOCK 1	/* set of signals to block */
 | 
				
			||||||
 | 
					#define SIG_UNBLOCK 2	/* set of signals to, well, unblock */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* These depend upon the type of sigset_t, which right now 
 | 
				
			||||||
 | 
					   is always a long.. They're in the POSIX namespace, but
 | 
				
			||||||
 | 
					   are not ANSI. */
 | 
				
			||||||
 | 
					#define sigaddset(what,sig) (*(what) |= (1<<(sig)), 0)
 | 
				
			||||||
 | 
					#define sigdelset(what,sig) (*(what) &= ~(1<<(sig)), 0)
 | 
				
			||||||
 | 
					#define sigemptyset(what)   (*(what) = 0, 0)
 | 
				
			||||||
 | 
					#define sigfillset(what)    (*(what) = ~(0), 0)
 | 
				
			||||||
 | 
					#define sigismember(what,sig) (((*(what)) & (1<<(sig))) != 0)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(sigprocmask, (int how, const sigset_t *set, sigset_t *oset));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS)
 | 
				
			||||||
 | 
					int _EXFUN(pthread_sigmask, (int how, const sigset_t *set, sigset_t *oset));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					#undef sigaddset
 | 
				
			||||||
 | 
					#undef sigdelset
 | 
				
			||||||
 | 
					#undef sigemptyset
 | 
				
			||||||
 | 
					#undef sigfillset
 | 
				
			||||||
 | 
					#undef sigismember
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int _EXFUN(_kill, (pid_t, int));
 | 
				
			||||||
 | 
					#endif /* _COMPILING_NEWLIB */
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ || __rtems__ */
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__)
 | 
				
			||||||
 | 
					int _EXFUN(kill, (pid_t, int));
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ || __rtems__ || __SPU__ */
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					int _EXFUN(killpg, (pid_t, int));
 | 
				
			||||||
 | 
					int _EXFUN(sigaction, (int, const struct sigaction *, struct sigaction *));
 | 
				
			||||||
 | 
					int _EXFUN(sigaddset, (sigset_t *, const int));
 | 
				
			||||||
 | 
					int _EXFUN(sigdelset, (sigset_t *, const int));
 | 
				
			||||||
 | 
					int _EXFUN(sigismember, (const sigset_t *, int));
 | 
				
			||||||
 | 
					int _EXFUN(sigfillset, (sigset_t *));
 | 
				
			||||||
 | 
					int _EXFUN(sigemptyset, (sigset_t *));
 | 
				
			||||||
 | 
					int _EXFUN(sigpending, (sigset_t *));
 | 
				
			||||||
 | 
					int _EXFUN(sigsuspend, (const sigset_t *));
 | 
				
			||||||
 | 
					int _EXFUN(sigpause, (int));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __rtems__
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || __XSI_VISIBLE || __POSIX_VISIBLE >= 200112
 | 
				
			||||||
 | 
					int _EXFUN(sigaltstack, (const stack_t *__restrict, stack_t *__restrict));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS)
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#  ifndef _CYGWIN_TYPES_H
 | 
				
			||||||
 | 
					#    error You need the winsup sources or a cygwin installation to compile the cygwin version of newlib.
 | 
				
			||||||
 | 
					#  endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int _EXFUN(pthread_kill, (pthread_t thread, int sig));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_REALTIME_SIGNALS)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  3.3.8 Synchronously Accept a Signal, P1003.1b-1993, p. 76
 | 
				
			||||||
 | 
					    NOTE: P1003.1c/D10, p. 39 adds sigwait().  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(sigwaitinfo, (const sigset_t *set, siginfo_t *info));
 | 
				
			||||||
 | 
					int _EXFUN(sigtimedwait,
 | 
				
			||||||
 | 
					  (const sigset_t *set, siginfo_t *info, const struct timespec  *timeout)
 | 
				
			||||||
 | 
					);
 | 
				
			||||||
 | 
					int _EXFUN(sigwait, (const sigset_t *set, int *sig));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  3.3.9 Queue a Signal to a Process, P1003.1b-1993, p. 78 */
 | 
				
			||||||
 | 
					int _EXFUN(sigqueue, (pid_t pid, int signo, const union sigval value));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_REALTIME_SIGNALS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* defined(__CYGWIN__) || defined(__rtems__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* #endif __STRICT_ANSI__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(___AM29K__)
 | 
				
			||||||
 | 
					/* These all need to be defined for ANSI C, but I don't think they are
 | 
				
			||||||
 | 
					   meaningful.  */
 | 
				
			||||||
 | 
					#define SIGABRT 1
 | 
				
			||||||
 | 
					#define SIGFPE 1
 | 
				
			||||||
 | 
					#define SIGILL 1
 | 
				
			||||||
 | 
					#define SIGINT 1
 | 
				
			||||||
 | 
					#define SIGSEGV 1
 | 
				
			||||||
 | 
					#define SIGTERM 1
 | 
				
			||||||
 | 
					/* These need to be defined for POSIX, and some others do too.  */
 | 
				
			||||||
 | 
					#define SIGHUP 1
 | 
				
			||||||
 | 
					#define SIGQUIT 1
 | 
				
			||||||
 | 
					#define NSIG 2
 | 
				
			||||||
 | 
					#elif defined(__GO32__)
 | 
				
			||||||
 | 
					#define SIGINT  1
 | 
				
			||||||
 | 
					#define SIGKILL 2
 | 
				
			||||||
 | 
					#define SIGPIPE 3
 | 
				
			||||||
 | 
					#define SIGFPE  4
 | 
				
			||||||
 | 
					#define SIGHUP  5
 | 
				
			||||||
 | 
					#define SIGTERM 6
 | 
				
			||||||
 | 
					#define SIGSEGV 7
 | 
				
			||||||
 | 
					#define SIGTSTP 8
 | 
				
			||||||
 | 
					#define SIGQUIT 9
 | 
				
			||||||
 | 
					#define SIGTRAP 10
 | 
				
			||||||
 | 
					#define SIGILL  11
 | 
				
			||||||
 | 
					#define SIGEMT  12
 | 
				
			||||||
 | 
					#define SIGALRM 13
 | 
				
			||||||
 | 
					#define SIGBUS  14
 | 
				
			||||||
 | 
					#define SIGLOST 15
 | 
				
			||||||
 | 
					#define SIGSTOP 16
 | 
				
			||||||
 | 
					#define SIGABRT 17
 | 
				
			||||||
 | 
					#define SIGUSR1	18
 | 
				
			||||||
 | 
					#define SIGUSR2	19
 | 
				
			||||||
 | 
					#define NSIG    20
 | 
				
			||||||
 | 
					#elif !defined(SIGTRAP)
 | 
				
			||||||
 | 
					#define	SIGHUP	1	/* hangup */
 | 
				
			||||||
 | 
					#define	SIGINT	2	/* interrupt */
 | 
				
			||||||
 | 
					#define	SIGQUIT	3	/* quit */
 | 
				
			||||||
 | 
					#define	SIGILL	4	/* illegal instruction (not reset when caught) */
 | 
				
			||||||
 | 
					#define	SIGTRAP	5	/* trace trap (not reset when caught) */
 | 
				
			||||||
 | 
					#define	SIGIOT	6	/* IOT instruction */
 | 
				
			||||||
 | 
					#define	SIGABRT 6	/* used by abort, replace SIGIOT in the future */
 | 
				
			||||||
 | 
					#define	SIGEMT	7	/* EMT instruction */
 | 
				
			||||||
 | 
					#define	SIGFPE	8	/* floating point exception */
 | 
				
			||||||
 | 
					#define	SIGKILL	9	/* kill (cannot be caught or ignored) */
 | 
				
			||||||
 | 
					#define	SIGBUS	10	/* bus error */
 | 
				
			||||||
 | 
					#define	SIGSEGV	11	/* segmentation violation */
 | 
				
			||||||
 | 
					#define	SIGSYS	12	/* bad argument to system call */
 | 
				
			||||||
 | 
					#define	SIGPIPE	13	/* write on a pipe with no one to read it */
 | 
				
			||||||
 | 
					#define	SIGALRM	14	/* alarm clock */
 | 
				
			||||||
 | 
					#define	SIGTERM	15	/* software termination signal from kill */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					#define	SIGURG	16	/* urgent condition on IO channel */
 | 
				
			||||||
 | 
					#define	SIGSTOP	17	/* sendable stop signal not from tty */
 | 
				
			||||||
 | 
					#define	SIGTSTP	18	/* stop signal from tty */
 | 
				
			||||||
 | 
					#define	SIGCONT	19	/* continue a stopped process */
 | 
				
			||||||
 | 
					#define	SIGCHLD	20	/* to parent on child stop or exit */
 | 
				
			||||||
 | 
					#define	SIGCLD	20	/* System V name for SIGCHLD */
 | 
				
			||||||
 | 
					#define	SIGTTIN	21	/* to readers pgrp upon background tty read */
 | 
				
			||||||
 | 
					#define	SIGTTOU	22	/* like TTIN for output if (tp->t_local<OSTOP) */
 | 
				
			||||||
 | 
					#define	SIGIO	23	/* input/output possible signal */
 | 
				
			||||||
 | 
					#define	SIGPOLL	SIGIO	/* System V name for SIGIO */
 | 
				
			||||||
 | 
					#define	SIGWINCH 24	/* window changed */
 | 
				
			||||||
 | 
					#define	SIGUSR1 25	/* user defined signal 1 */
 | 
				
			||||||
 | 
					#define	SIGUSR2 26	/* user defined signal 2 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Real-Time Signals Range, P1003.1b-1993, p. 61
 | 
				
			||||||
 | 
					   NOTE: By P1003.1b-1993, this should be at least RTSIG_MAX
 | 
				
			||||||
 | 
					         (which is a minimum of 8) signals.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define SIGRTMIN 27
 | 
				
			||||||
 | 
					#define SIGRTMAX 31
 | 
				
			||||||
 | 
					#define __SIGFIRSTNOTRT SIGHUP
 | 
				
			||||||
 | 
					#define __SIGLASTNOTRT  SIGUSR2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define NSIG	32      /* signal 0 implied */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#elif defined(__svr4__)
 | 
				
			||||||
 | 
					/* svr4 specifics. different signals above 15, and sigaction. */
 | 
				
			||||||
 | 
					#define	SIGUSR1	16
 | 
				
			||||||
 | 
					#define SIGUSR2	17
 | 
				
			||||||
 | 
					#define SIGCLD	18
 | 
				
			||||||
 | 
					#define	SIGPWR	19
 | 
				
			||||||
 | 
					#define SIGWINCH 20
 | 
				
			||||||
 | 
					#define	SIGPOLL	22	/* 20 for x.out binaries!!!! */
 | 
				
			||||||
 | 
					#define	SIGSTOP	23	/* sendable stop signal not from tty */
 | 
				
			||||||
 | 
					#define	SIGTSTP	24	/* stop signal from tty */
 | 
				
			||||||
 | 
					#define	SIGCONT	25	/* continue a stopped process */
 | 
				
			||||||
 | 
					#define	SIGTTIN	26	/* to readers pgrp upon background tty read */
 | 
				
			||||||
 | 
					#define	SIGTTOU	27	/* like TTIN for output if (tp->t_local<OSTOP) */
 | 
				
			||||||
 | 
					#define NSIG	28	
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define	SIGURG	16	/* urgent condition on IO channel */
 | 
				
			||||||
 | 
					#define	SIGSTOP	17	/* sendable stop signal not from tty */
 | 
				
			||||||
 | 
					#define	SIGTSTP	18	/* stop signal from tty */
 | 
				
			||||||
 | 
					#define	SIGCONT	19	/* continue a stopped process */
 | 
				
			||||||
 | 
					#define	SIGCHLD	20	/* to parent on child stop or exit */
 | 
				
			||||||
 | 
					#define	SIGCLD	20	/* System V name for SIGCHLD */
 | 
				
			||||||
 | 
					#define	SIGTTIN	21	/* to readers pgrp upon background tty read */
 | 
				
			||||||
 | 
					#define	SIGTTOU	22	/* like TTIN for output if (tp->t_local<OSTOP) */
 | 
				
			||||||
 | 
					#define	SIGIO	23	/* input/output possible signal */
 | 
				
			||||||
 | 
					#define	SIGPOLL	SIGIO	/* System V name for SIGIO */
 | 
				
			||||||
 | 
					#define	SIGXCPU	24	/* exceeded CPU time limit */
 | 
				
			||||||
 | 
					#define	SIGXFSZ	25	/* exceeded file size limit */
 | 
				
			||||||
 | 
					#define	SIGVTALRM 26	/* virtual time alarm */
 | 
				
			||||||
 | 
					#define	SIGPROF	27	/* profiling time alarm */
 | 
				
			||||||
 | 
					#define	SIGWINCH 28	/* window changed */
 | 
				
			||||||
 | 
					#define	SIGLOST 29	/* resource lost (eg, record-lock lost) */
 | 
				
			||||||
 | 
					#define	SIGUSR1 30	/* user defined signal 1 */
 | 
				
			||||||
 | 
					#define	SIGUSR2 31	/* user defined signal 2 */
 | 
				
			||||||
 | 
					#define NSIG	32      /* signal 0 implied */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SIGNAL_H_
 | 
				
			||||||
 | 
					/* Some applications take advantage of the fact that <sys/signal.h>
 | 
				
			||||||
 | 
					 * and <signal.h> are equivalent in glibc.  Allow for that here.  */
 | 
				
			||||||
 | 
					#include <signal.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_SIGNAL_H */
 | 
				
			||||||
							
								
								
									
										192
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/stat.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										192
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/stat.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,192 @@
 | 
				
			|||||||
 | 
					#ifndef	_SYS_STAT_H
 | 
				
			||||||
 | 
					#define	_SYS_STAT_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <time.h>
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* dj's stat defines _STAT_H_ */
 | 
				
			||||||
 | 
					#ifndef _STAT_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* It is intended that the layout of this structure not change when the
 | 
				
			||||||
 | 
					   sizes of any of the basic types change (short, int, long) [via a compile
 | 
				
			||||||
 | 
					   time option].  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <cygwin/stat.h>
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					#define stat64 stat
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					struct	stat 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  dev_t		st_dev;
 | 
				
			||||||
 | 
					  ino_t		st_ino;
 | 
				
			||||||
 | 
					  mode_t	st_mode;
 | 
				
			||||||
 | 
					  nlink_t	st_nlink;
 | 
				
			||||||
 | 
					  uid_t		st_uid;
 | 
				
			||||||
 | 
					  gid_t		st_gid;
 | 
				
			||||||
 | 
					  dev_t		st_rdev;
 | 
				
			||||||
 | 
					  off_t		st_size;
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					  struct timespec st_atim;
 | 
				
			||||||
 | 
					  struct timespec st_mtim;
 | 
				
			||||||
 | 
					  struct timespec st_ctim;
 | 
				
			||||||
 | 
					  blksize_t     st_blksize;
 | 
				
			||||||
 | 
					  blkcnt_t	st_blocks;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  /* SysV/sco doesn't have the rest... But Solaris, eabi does.  */
 | 
				
			||||||
 | 
					#if defined(__svr4__) && !defined(__PPC__) && !defined(__sun__)
 | 
				
			||||||
 | 
					  time_t	st_atime;
 | 
				
			||||||
 | 
					  time_t	st_mtime;
 | 
				
			||||||
 | 
					  time_t	st_ctime;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					  time_t	st_atime;
 | 
				
			||||||
 | 
					  long		st_spare1;
 | 
				
			||||||
 | 
					  time_t	st_mtime;
 | 
				
			||||||
 | 
					  long		st_spare2;
 | 
				
			||||||
 | 
					  time_t	st_ctime;
 | 
				
			||||||
 | 
					  long		st_spare3;
 | 
				
			||||||
 | 
					  long		st_blksize;
 | 
				
			||||||
 | 
					  long		st_blocks;
 | 
				
			||||||
 | 
					  long	st_spare4[2];
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					#define st_atime st_atim.tv_sec
 | 
				
			||||||
 | 
					#define st_ctime st_ctim.tv_sec
 | 
				
			||||||
 | 
					#define st_mtime st_mtim.tv_sec
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	_IFMT		0170000	/* type of file */
 | 
				
			||||||
 | 
					#define		_IFDIR	0040000	/* directory */
 | 
				
			||||||
 | 
					#define		_IFCHR	0020000	/* character special */
 | 
				
			||||||
 | 
					#define		_IFBLK	0060000	/* block special */
 | 
				
			||||||
 | 
					#define		_IFREG	0100000	/* regular */
 | 
				
			||||||
 | 
					#define		_IFLNK	0120000	/* symbolic link */
 | 
				
			||||||
 | 
					#define		_IFSOCK	0140000	/* socket */
 | 
				
			||||||
 | 
					#define		_IFIFO	0010000	/* fifo */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define 	S_BLKSIZE  1024 /* size of a block */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	S_ISUID		0004000	/* set user id on execution */
 | 
				
			||||||
 | 
					#define	S_ISGID		0002000	/* set group id on execution */
 | 
				
			||||||
 | 
					#define	S_ISVTX		0001000	/* save swapped text even after use */
 | 
				
			||||||
 | 
					#ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					#define	S_IREAD		0000400	/* read permission, owner */
 | 
				
			||||||
 | 
					#define	S_IWRITE 	0000200	/* write permission, owner */
 | 
				
			||||||
 | 
					#define	S_IEXEC		0000100	/* execute/search permission, owner */
 | 
				
			||||||
 | 
					#define	S_ENFMT 	0002000	/* enforcement-mode locking */
 | 
				
			||||||
 | 
					#endif	/* !_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	S_IFMT		_IFMT
 | 
				
			||||||
 | 
					#define	S_IFDIR		_IFDIR
 | 
				
			||||||
 | 
					#define	S_IFCHR		_IFCHR
 | 
				
			||||||
 | 
					#define	S_IFBLK		_IFBLK
 | 
				
			||||||
 | 
					#define	S_IFREG		_IFREG
 | 
				
			||||||
 | 
					#define	S_IFLNK		_IFLNK
 | 
				
			||||||
 | 
					#define	S_IFSOCK	_IFSOCK
 | 
				
			||||||
 | 
					#define	S_IFIFO		_IFIFO
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _WIN32
 | 
				
			||||||
 | 
					/* The Windows header files define _S_ forms of these, so we do too
 | 
				
			||||||
 | 
					   for easier portability.  */
 | 
				
			||||||
 | 
					#define _S_IFMT		_IFMT
 | 
				
			||||||
 | 
					#define _S_IFDIR	_IFDIR
 | 
				
			||||||
 | 
					#define _S_IFCHR	_IFCHR
 | 
				
			||||||
 | 
					#define _S_IFIFO	_IFIFO
 | 
				
			||||||
 | 
					#define _S_IFREG	_IFREG
 | 
				
			||||||
 | 
					#define _S_IREAD	0000400
 | 
				
			||||||
 | 
					#define _S_IWRITE	0000200
 | 
				
			||||||
 | 
					#define _S_IEXEC	0000100
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	S_IRWXU 	(S_IRUSR | S_IWUSR | S_IXUSR)
 | 
				
			||||||
 | 
					#define		S_IRUSR	0000400	/* read permission, owner */
 | 
				
			||||||
 | 
					#define		S_IWUSR	0000200	/* write permission, owner */
 | 
				
			||||||
 | 
					#define		S_IXUSR 0000100/* execute/search permission, owner */
 | 
				
			||||||
 | 
					#define	S_IRWXG		(S_IRGRP | S_IWGRP | S_IXGRP)
 | 
				
			||||||
 | 
					#define		S_IRGRP	0000040	/* read permission, group */
 | 
				
			||||||
 | 
					#define		S_IWGRP	0000020	/* write permission, grougroup */
 | 
				
			||||||
 | 
					#define		S_IXGRP 0000010/* execute/search permission, group */
 | 
				
			||||||
 | 
					#define	S_IRWXO		(S_IROTH | S_IWOTH | S_IXOTH)
 | 
				
			||||||
 | 
					#define		S_IROTH	0000004	/* read permission, other */
 | 
				
			||||||
 | 
					#define		S_IWOTH	0000002	/* write permission, other */
 | 
				
			||||||
 | 
					#define		S_IXOTH 0000001/* execute/search permission, other */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _POSIX_SOURCE
 | 
				
			||||||
 | 
					#define ACCESSPERMS (S_IRWXU | S_IRWXG | S_IRWXO) /* 0777 */
 | 
				
			||||||
 | 
					#define ALLPERMS (S_ISUID | S_ISGID | S_ISVTX | S_IRWXU | S_IRWXG | S_IRWXO) /* 07777 */
 | 
				
			||||||
 | 
					#define DEFFILEMODE (S_IRUSR | S_IWUSR | S_IRGRP | S_IWGRP | S_IROTH | S_IWOTH) /* 0666 */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	S_ISBLK(m)	(((m)&_IFMT) == _IFBLK)
 | 
				
			||||||
 | 
					#define	S_ISCHR(m)	(((m)&_IFMT) == _IFCHR)
 | 
				
			||||||
 | 
					#define	S_ISDIR(m)	(((m)&_IFMT) == _IFDIR)
 | 
				
			||||||
 | 
					#define	S_ISFIFO(m)	(((m)&_IFMT) == _IFIFO)
 | 
				
			||||||
 | 
					#define	S_ISREG(m)	(((m)&_IFMT) == _IFREG)
 | 
				
			||||||
 | 
					#define	S_ISLNK(m)	(((m)&_IFMT) == _IFLNK)
 | 
				
			||||||
 | 
					#define	S_ISSOCK(m)	(((m)&_IFMT) == _IFSOCK)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					/* Special tv_nsec values for futimens(2) and utimensat(2). */
 | 
				
			||||||
 | 
					#define UTIME_NOW	-2L
 | 
				
			||||||
 | 
					#define UTIME_OMIT	-1L
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(chmod,( const char *__path, mode_t __mode ));
 | 
				
			||||||
 | 
					int     _EXFUN(fchmod,(int __fd, mode_t __mode));
 | 
				
			||||||
 | 
					int	_EXFUN(fstat,( int __fd, struct stat *__sbuf ));
 | 
				
			||||||
 | 
					int	_EXFUN(mkdir,( const char *_path, mode_t __mode ));
 | 
				
			||||||
 | 
					int	_EXFUN(mkfifo,( const char *__path, mode_t __mode ));
 | 
				
			||||||
 | 
					int	_EXFUN(stat,( const char *__restrict __path, struct stat *__restrict __sbuf ));
 | 
				
			||||||
 | 
					mode_t	_EXFUN(umask,( mode_t __mask ));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined (__SPU__) || defined(__rtems__) || defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(lstat,( const char *__restrict __path, struct stat *__restrict __buf ));
 | 
				
			||||||
 | 
					int	_EXFUN(mknod,( const char *__path, mode_t __mode, dev_t __dev ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if (__POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(fchmodat, (int, const char *, mode_t, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if (__BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(fstatat, (int, const char *__restrict , struct stat *__restrict, int));
 | 
				
			||||||
 | 
					int	_EXFUN(mkdirat, (int, const char *, mode_t));
 | 
				
			||||||
 | 
					int	_EXFUN(mkfifoat, (int, const char *, mode_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if (__BSD_VISIBLE || __XSI_VISIBLE >= 700 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(mknodat, (int, const char *, mode_t, dev_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if (__BSD_VISIBLE || __POSIX_VISIBLE >= 200809 || defined (__CYGWIN__)) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(utimensat, (int, const char *, const struct timespec *, int));
 | 
				
			||||||
 | 
					int	_EXFUN(futimens, (int, const struct timespec *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Provide prototypes for most of the _<systemcall> names that are
 | 
				
			||||||
 | 
					   provided in newlib for some compilers.  */
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int	_EXFUN(_fstat,( int __fd, struct stat *__sbuf ));
 | 
				
			||||||
 | 
					int	_EXFUN(_stat,( const char *__restrict __path, struct stat *__restrict __sbuf ));
 | 
				
			||||||
 | 
					int	_EXFUN(_mkdir,( const char *_path, mode_t __mode ));
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					struct stat64;
 | 
				
			||||||
 | 
					int	_EXFUN(_stat64,( const char *__restrict __path, struct stat64 *__restrict __sbuf ));
 | 
				
			||||||
 | 
					int	_EXFUN(_fstat64,( int __fd, struct stat64 *__sbuf ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !_STAT_H_ */
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_STAT_H */
 | 
				
			||||||
							
								
								
									
										27
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/stdio.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										27
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/stdio.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,27 @@
 | 
				
			|||||||
 | 
					#ifndef _NEWLIB_STDIO_H
 | 
				
			||||||
 | 
					#define _NEWLIB_STDIO_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/lock.h>
 | 
				
			||||||
 | 
					#include <sys/reent.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Internal locking macros, used to protect stdio functions.  In the
 | 
				
			||||||
 | 
					   general case, expand to nothing. Use __SSTR flag in FILE _flags to
 | 
				
			||||||
 | 
					   detect if FILE is private to sprintf/sscanf class of functions; if
 | 
				
			||||||
 | 
					   set then do nothing as lock is not initialised. */
 | 
				
			||||||
 | 
					#if !defined(_flockfile)
 | 
				
			||||||
 | 
					#ifndef __SINGLE_THREAD__
 | 
				
			||||||
 | 
					#  define _flockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_acquire_recursive((fp)->_lock))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#  define _flockfile(fp)	(_CAST_VOID 0)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(_funlockfile)
 | 
				
			||||||
 | 
					#ifndef __SINGLE_THREAD__
 | 
				
			||||||
 | 
					#  define _funlockfile(fp) (((fp)->_flags & __SSTR) ? 0 : __lock_release_recursive((fp)->_lock))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#  define _funlockfile(fp)	(_CAST_VOID 0)
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _NEWLIB_STDIO_H */
 | 
				
			||||||
							
								
								
									
										2
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/string.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										2
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/string.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,2 @@
 | 
				
			|||||||
 | 
					/* This is a dummy <sys/string.h> used as a placeholder for
 | 
				
			||||||
 | 
					   systems that need to have a special header file.  */
 | 
				
			||||||
							
								
								
									
										65
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/syslimits.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										65
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/syslimits.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,65 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright (c) 1988, 1993
 | 
				
			||||||
 | 
					 *	The Regents of the University of California.  All rights reserved.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * Redistribution and use in source and binary forms, with or without
 | 
				
			||||||
 | 
					 * modification, are permitted provided that the following conditions
 | 
				
			||||||
 | 
					 * are met:
 | 
				
			||||||
 | 
					 * 1. Redistributions of source code must retain the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer.
 | 
				
			||||||
 | 
					 * 2. Redistributions in binary form must reproduce the above copyright
 | 
				
			||||||
 | 
					 *    notice, this list of conditions and the following disclaimer in the
 | 
				
			||||||
 | 
					 *    documentation and/or other materials provided with the distribution.
 | 
				
			||||||
 | 
					 * 3. All advertising materials mentioning features or use of this software
 | 
				
			||||||
 | 
					 *    must display the following acknowledgement:
 | 
				
			||||||
 | 
					 *	This product includes software developed by the University of
 | 
				
			||||||
 | 
					 *	California, Berkeley and its contributors.
 | 
				
			||||||
 | 
					 * 4. Neither the name of the University nor the names of its contributors
 | 
				
			||||||
 | 
					 *    may be used to endorse or promote products derived from this software
 | 
				
			||||||
 | 
					 *    without specific prior written permission.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
 | 
				
			||||||
 | 
					 * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
 | 
				
			||||||
 | 
					 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
 | 
				
			||||||
 | 
					 * ARE DISCLAIMED.  IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
 | 
				
			||||||
 | 
					 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
 | 
				
			||||||
 | 
					 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
 | 
				
			||||||
 | 
					 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
 | 
				
			||||||
 | 
					 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
 | 
				
			||||||
 | 
					 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
 | 
				
			||||||
 | 
					 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
 | 
				
			||||||
 | 
					 * SUCH DAMAGE.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 *	@(#)syslimits.h	8.1 (Berkeley) 6/2/93
 | 
				
			||||||
 | 
					 * $FreeBSD: src/sys/sys/syslimits.h,v 1.10 2001/06/18 20:24:54 wollman Exp $
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_SYSLIMITS_H_
 | 
				
			||||||
 | 
					#define _SYS_SYSLIMITS_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	ARG_MAX			65536	/* max bytes for an exec function */
 | 
				
			||||||
 | 
					#ifndef CHILD_MAX
 | 
				
			||||||
 | 
					#define	CHILD_MAX		   40	/* max simultaneous processes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	LINK_MAX		32767	/* max file link count */
 | 
				
			||||||
 | 
					#define	MAX_CANON		  255	/* max bytes in term canon input line */
 | 
				
			||||||
 | 
					#define	MAX_INPUT		  255	/* max bytes in terminal input */
 | 
				
			||||||
 | 
					#define	NAME_MAX		  255	/* max bytes in a file name */
 | 
				
			||||||
 | 
					#define	NGROUPS_MAX		   16	/* max supplemental group id's */
 | 
				
			||||||
 | 
					#ifndef OPEN_MAX
 | 
				
			||||||
 | 
					#define	OPEN_MAX		   64	/* max open files per process */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	PATH_MAX		 1024	/* max bytes in pathname */
 | 
				
			||||||
 | 
					#define	PIPE_BUF		  512	/* max bytes for atomic pipe writes */
 | 
				
			||||||
 | 
					#define	IOV_MAX			 1024	/* max elements in i/o vector */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	BC_BASE_MAX		   99	/* max ibase/obase values in bc(1) */
 | 
				
			||||||
 | 
					#define	BC_DIM_MAX		 2048	/* max array elements in bc(1) */
 | 
				
			||||||
 | 
					#define	BC_SCALE_MAX		   99	/* max scale value in bc(1) */
 | 
				
			||||||
 | 
					#define	BC_STRING_MAX		 1000	/* max const string length in bc(1) */
 | 
				
			||||||
 | 
					#define	COLL_WEIGHTS_MAX	    0	/* max weights for order keyword */
 | 
				
			||||||
 | 
					#define	EXPR_NEST_MAX		   32	/* max expressions nested in expr(1) */
 | 
				
			||||||
 | 
					#define	LINE_MAX		 2048	/* max bytes in an input line */
 | 
				
			||||||
 | 
					#define	RE_DUP_MAX		  255	/* max RE's in interval notation */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
							
								
								
									
										91
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/time.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										91
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/time.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,91 @@
 | 
				
			|||||||
 | 
					/* time.h -- An implementation of the standard Unix <sys/time.h> file.
 | 
				
			||||||
 | 
					   Written by Geoffrey Noer <noer@cygnus.com>
 | 
				
			||||||
 | 
					   Public domain; no rights reserved. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_TIME_H_
 | 
				
			||||||
 | 
					#define _SYS_TIME_H_
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _TIMEVAL_DEFINED
 | 
				
			||||||
 | 
					#define _TIMEVAL_DEFINED
 | 
				
			||||||
 | 
					struct timeval {
 | 
				
			||||||
 | 
					  time_t      tv_sec;
 | 
				
			||||||
 | 
					  suseconds_t tv_usec;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* BSD time macros used by RTEMS code */
 | 
				
			||||||
 | 
					#if defined (__rtems__) || defined (__CYGWIN__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Convenience macros for operations on timevals.
 | 
				
			||||||
 | 
					   NOTE: `timercmp' does not work for >= or <=.  */
 | 
				
			||||||
 | 
					#define	timerisset(tvp)		((tvp)->tv_sec || (tvp)->tv_usec)
 | 
				
			||||||
 | 
					#define	timerclear(tvp)		((tvp)->tv_sec = (tvp)->tv_usec = 0)
 | 
				
			||||||
 | 
					#define	timercmp(a, b, CMP) 						      \
 | 
				
			||||||
 | 
					  (((a)->tv_sec == (b)->tv_sec) ? 					      \
 | 
				
			||||||
 | 
					   ((a)->tv_usec CMP (b)->tv_usec) : 					      \
 | 
				
			||||||
 | 
					   ((a)->tv_sec CMP (b)->tv_sec))
 | 
				
			||||||
 | 
					#define	timeradd(a, b, result)						      \
 | 
				
			||||||
 | 
					  do {									      \
 | 
				
			||||||
 | 
					    (result)->tv_sec = (a)->tv_sec + (b)->tv_sec;			      \
 | 
				
			||||||
 | 
					    (result)->tv_usec = (a)->tv_usec + (b)->tv_usec;			      \
 | 
				
			||||||
 | 
					    if ((result)->tv_usec >= 1000000)					      \
 | 
				
			||||||
 | 
					      {									      \
 | 
				
			||||||
 | 
						++(result)->tv_sec;						      \
 | 
				
			||||||
 | 
						(result)->tv_usec -= 1000000;					      \
 | 
				
			||||||
 | 
					      }									      \
 | 
				
			||||||
 | 
					  } while (0)
 | 
				
			||||||
 | 
					#define	timersub(a, b, result)						      \
 | 
				
			||||||
 | 
					  do {									      \
 | 
				
			||||||
 | 
					    (result)->tv_sec = (a)->tv_sec - (b)->tv_sec;			      \
 | 
				
			||||||
 | 
					    (result)->tv_usec = (a)->tv_usec - (b)->tv_usec;			      \
 | 
				
			||||||
 | 
					    if ((result)->tv_usec < 0) {					      \
 | 
				
			||||||
 | 
					      --(result)->tv_sec;						      \
 | 
				
			||||||
 | 
					      (result)->tv_usec += 1000000;					      \
 | 
				
			||||||
 | 
					    }									      \
 | 
				
			||||||
 | 
					  } while (0)
 | 
				
			||||||
 | 
					#endif /* defined (__rtems__) || defined (__CYGWIN__) */
 | 
				
			||||||
 | 
					#endif /* !_TIMEVAL_DEFINED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct timezone {
 | 
				
			||||||
 | 
					  int tz_minuteswest;
 | 
				
			||||||
 | 
					  int tz_dsttime;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					#include <cygwin/sys_time.h>
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define ITIMER_REAL     0
 | 
				
			||||||
 | 
					#define ITIMER_VIRTUAL  1
 | 
				
			||||||
 | 
					#define ITIMER_PROF     2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct  itimerval {
 | 
				
			||||||
 | 
					  struct  timeval it_interval;
 | 
				
			||||||
 | 
					  struct  timeval it_value;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					int _EXFUN(_gettimeofday, (struct timeval *__p, void *__tz));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int _EXFUN(gettimeofday, (struct timeval *__restrict __p,
 | 
				
			||||||
 | 
								  void *__restrict __tz));
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE
 | 
				
			||||||
 | 
					int _EXFUN(settimeofday, (const struct timeval *, const struct timezone *));
 | 
				
			||||||
 | 
					int _EXFUN(adjtime, (const struct timeval *, struct timeval *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int _EXFUN(utimes, (const char *__path, const struct timeval *__tvp));
 | 
				
			||||||
 | 
					int _EXFUN(getitimer, (int __which, struct itimerval *__value));
 | 
				
			||||||
 | 
					int _EXFUN(setitimer, (int __which, const struct itimerval *__restrict __value,
 | 
				
			||||||
 | 
										struct itimerval *__restrict __ovalue));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_TIME_H_ */
 | 
				
			||||||
							
								
								
									
										39
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/timeb.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										39
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/timeb.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,39 @@
 | 
				
			|||||||
 | 
					/* timeb.h -- An implementation of the standard Unix <sys/timeb.h> file.
 | 
				
			||||||
 | 
					   Written by Ian Lance Taylor <ian@cygnus.com>
 | 
				
			||||||
 | 
					   Public domain; no rights reserved.
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   <sys/timeb.h> declares the structure used by the ftime function, as
 | 
				
			||||||
 | 
					   well as the ftime function itself.  Newlib does not provide an
 | 
				
			||||||
 | 
					   implementation of ftime.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_TIMEB_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _SYS_TIMEB_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <machine/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __time_t_defined
 | 
				
			||||||
 | 
					typedef _TIME_T_ time_t;
 | 
				
			||||||
 | 
					#define __time_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct timeb
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  time_t time;
 | 
				
			||||||
 | 
					  unsigned short millitm;
 | 
				
			||||||
 | 
					  short timezone;
 | 
				
			||||||
 | 
					  short dstflag;
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern int ftime _PARAMS ((struct timeb *));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! defined (_SYS_TIMEB_H) */
 | 
				
			||||||
							
								
								
									
										31
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/times.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										31
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/times.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,31 @@
 | 
				
			|||||||
 | 
					#ifndef	_SYS_TIMES_H
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define	_SYS_TIMES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#include <machine/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __clock_t_defined
 | 
				
			||||||
 | 
					typedef _CLOCK_T_ clock_t;
 | 
				
			||||||
 | 
					#define __clock_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*  Get Process Times, P1003.1b-1993, p. 92 */
 | 
				
			||||||
 | 
					struct tms {
 | 
				
			||||||
 | 
						clock_t	tms_utime;		/* user time */
 | 
				
			||||||
 | 
						clock_t	tms_stime;		/* system time */
 | 
				
			||||||
 | 
						clock_t	tms_cutime;		/* user time, children */
 | 
				
			||||||
 | 
						clock_t	tms_cstime;		/* system time, children */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					clock_t _EXFUN(times,(struct tms *));
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					clock_t _EXFUN(_times,(struct tms *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif	/* !_SYS_TIMES_H */
 | 
				
			||||||
							
								
								
									
										521
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/types.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										521
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/types.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,521 @@
 | 
				
			|||||||
 | 
					/* unified sys/types.h: 
 | 
				
			||||||
 | 
					   start with sef's sysvi386 version.
 | 
				
			||||||
 | 
					   merge go32 version -- a few ifdefs.
 | 
				
			||||||
 | 
					   h8300hms, h8300xray, and sysvnecv70 disagree on the following types:
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   typedef int gid_t;
 | 
				
			||||||
 | 
					   typedef int uid_t;
 | 
				
			||||||
 | 
					   typedef int dev_t;
 | 
				
			||||||
 | 
					   typedef int ino_t;
 | 
				
			||||||
 | 
					   typedef int mode_t;
 | 
				
			||||||
 | 
					   typedef int caddr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					   however, these aren't "reasonable" values, the sysvi386 ones make far 
 | 
				
			||||||
 | 
					   more sense, and should work sufficiently well (in particular, h8300 
 | 
				
			||||||
 | 
					   doesn't have a stat, and the necv70 doesn't matter.) -- eichin
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _SYS_TYPES_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __INTTYPES_DEFINED__
 | 
				
			||||||
 | 
					#define __INTTYPES_DEFINED__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <machine/_types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__) || defined(__XMK__)
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  The following section is RTEMS specific and is needed to more
 | 
				
			||||||
 | 
					 *  closely match the types defined in the BSD sys/types.h.
 | 
				
			||||||
 | 
					 *  This is needed to let the RTEMS/BSD TCP/IP stack compile.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* deprecated */
 | 
				
			||||||
 | 
					#if ___int8_t_defined
 | 
				
			||||||
 | 
					typedef __uint8_t	u_int8_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if ___int16_t_defined
 | 
				
			||||||
 | 
					typedef __uint16_t	u_int16_t;
 | 
				
			||||||
 | 
					#endif 
 | 
				
			||||||
 | 
					#if ___int32_t_defined
 | 
				
			||||||
 | 
					typedef __uint32_t	u_int32_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if ___int64_t_defined
 | 
				
			||||||
 | 
					typedef __uint64_t	u_int64_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* deprecated */
 | 
				
			||||||
 | 
					typedef	__uint64_t	u_quad_t;
 | 
				
			||||||
 | 
					typedef	__int64_t	quad_t;
 | 
				
			||||||
 | 
					typedef	quad_t *	qaddr_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* ! __INTTYPES_DEFINED */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __need_inttypes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _SYS_TYPES_H
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __i386__
 | 
				
			||||||
 | 
					#if defined (GO32) || defined (__MSDOS__)
 | 
				
			||||||
 | 
					#define __MS_types__
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# include <stddef.h>
 | 
				
			||||||
 | 
					# include <machine/types.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* To ensure the stat struct's layout doesn't change when sizeof(int), etc.
 | 
				
			||||||
 | 
					   changes, we assume sizeof short and long never change and have all types
 | 
				
			||||||
 | 
					   used to define struct stat use them and not int where possible.
 | 
				
			||||||
 | 
					   Where not possible, _ST_INTxx are used.  It would be preferable to not have
 | 
				
			||||||
 | 
					   such assumptions, but until the extra fluff is necessary, it's avoided.
 | 
				
			||||||
 | 
					   No 64 bit targets use stat yet.  What to do about them is postponed
 | 
				
			||||||
 | 
					   until necessary.  */
 | 
				
			||||||
 | 
					#ifdef __GNUC__
 | 
				
			||||||
 | 
					#define _ST_INT32 __attribute__ ((__mode__ (__SI__)))
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#define _ST_INT32
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# ifndef	_POSIX_SOURCE
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  define	physadr		physadr_t
 | 
				
			||||||
 | 
					#  define	quad		quad_t
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef _BSDTYPES_DEFINED
 | 
				
			||||||
 | 
					/* also defined in mingw/gmon.h and in w32api/winsock[2].h */
 | 
				
			||||||
 | 
					#ifndef __u_char_defined
 | 
				
			||||||
 | 
					typedef	unsigned char	u_char;
 | 
				
			||||||
 | 
					#define __u_char_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __u_short_defined
 | 
				
			||||||
 | 
					typedef	unsigned short	u_short;
 | 
				
			||||||
 | 
					#define __u_short_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __u_int_defined
 | 
				
			||||||
 | 
					typedef	unsigned int	u_int;
 | 
				
			||||||
 | 
					#define __u_int_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __u_long_defined
 | 
				
			||||||
 | 
					typedef	unsigned long	u_long;
 | 
				
			||||||
 | 
					#define __u_long_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#define _BSDTYPES_DEFINED
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef	unsigned short	ushort;		/* System V compatibility */
 | 
				
			||||||
 | 
					typedef	unsigned int	uint;		/* System V compatibility */
 | 
				
			||||||
 | 
					typedef	unsigned long	ulong;		/* System V compatibility */
 | 
				
			||||||
 | 
					# endif	/*!_POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __clock_t_defined
 | 
				
			||||||
 | 
					typedef _CLOCK_T_ clock_t;
 | 
				
			||||||
 | 
					#define __clock_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __time_t_defined
 | 
				
			||||||
 | 
					typedef _TIME_T_ time_t;
 | 
				
			||||||
 | 
					#define __time_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __timespec_defined
 | 
				
			||||||
 | 
					#define __timespec_defined
 | 
				
			||||||
 | 
					/* Time Value Specification Structures, P1003.1b-1993, p. 261 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct timespec {
 | 
				
			||||||
 | 
					  time_t  tv_sec;   /* Seconds */
 | 
				
			||||||
 | 
					  long    tv_nsec;  /* Nanoseconds */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct itimerspec {
 | 
				
			||||||
 | 
					  struct timespec  it_interval;  /* Timer period */
 | 
				
			||||||
 | 
					  struct timespec  it_value;     /* Timer expiration */
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __daddr_t_defined
 | 
				
			||||||
 | 
					typedef	long	daddr_t;
 | 
				
			||||||
 | 
					#define __daddr_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifndef __caddr_t_defined
 | 
				
			||||||
 | 
					typedef	char *	caddr_t;
 | 
				
			||||||
 | 
					#define __caddr_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					#if defined(__MS_types__) || defined(__rtems__) || \
 | 
				
			||||||
 | 
					    defined(__sparc__) || defined(__SPU__)
 | 
				
			||||||
 | 
					typedef	unsigned long	ino_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef	unsigned short	ino_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /*__CYGWIN__*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __MS_types__
 | 
				
			||||||
 | 
					typedef unsigned long vm_offset_t;
 | 
				
			||||||
 | 
					typedef unsigned long vm_size_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define __BIT_TYPES_DEFINED__
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef signed char int8_t;
 | 
				
			||||||
 | 
					typedef unsigned char u_int8_t;
 | 
				
			||||||
 | 
					typedef short int16_t;
 | 
				
			||||||
 | 
					typedef unsigned short u_int16_t;
 | 
				
			||||||
 | 
					typedef int int32_t;
 | 
				
			||||||
 | 
					typedef unsigned int u_int32_t;
 | 
				
			||||||
 | 
					typedef long long int64_t;
 | 
				
			||||||
 | 
					typedef unsigned long long u_int64_t;
 | 
				
			||||||
 | 
					typedef int32_t register_t;
 | 
				
			||||||
 | 
					#endif /* __MS_types__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * All these should be machine specific - right now they are all broken.
 | 
				
			||||||
 | 
					 * However, for all of Cygnus' embedded targets, we want them to all be
 | 
				
			||||||
 | 
					 * the same.  Otherwise things like sizeof (struct stat) might depend on
 | 
				
			||||||
 | 
					 * how the file was compiled (e.g. -mint16 vs -mint32, etc.).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__	/* which defines these types in it's own types.h. */
 | 
				
			||||||
 | 
					typedef _off_t	off_t;
 | 
				
			||||||
 | 
					typedef __dev_t dev_t;
 | 
				
			||||||
 | 
					typedef __uid_t uid_t;
 | 
				
			||||||
 | 
					typedef __gid_t gid_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__XMK__)
 | 
				
			||||||
 | 
					typedef signed char pid_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef int pid_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					typedef _mode_t mode_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __CYGWIN__
 | 
				
			||||||
 | 
					typedef	long key_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					typedef _ssize_t ssize_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined(__CYGWIN__) && !defined(__rtems__)
 | 
				
			||||||
 | 
					#ifdef __MS_types__
 | 
				
			||||||
 | 
					typedef	char *	addr_t;
 | 
				
			||||||
 | 
					typedef int mode_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if defined (__sparc__) && !defined (__sparc_v9__)
 | 
				
			||||||
 | 
					#ifdef __svr4__
 | 
				
			||||||
 | 
					typedef unsigned long mode_t;
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned short mode_t;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef unsigned int mode_t _ST_INT32;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* ! __MS_types__ */
 | 
				
			||||||
 | 
					#endif /*__CYGWIN__*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef unsigned short nlink_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* We don't define fd_set and friends if we are compiling POSIX
 | 
				
			||||||
 | 
					   source, or if we have included (or may include as indicated
 | 
				
			||||||
 | 
					   by __USE_W32_SOCKETS) the W32api winsock[2].h header which
 | 
				
			||||||
 | 
					   defines Windows versions of them.   Note that a program which
 | 
				
			||||||
 | 
					   includes the W32api winsock[2].h header must know what it is doing;
 | 
				
			||||||
 | 
					   it must not call the cygwin32 select function.
 | 
				
			||||||
 | 
					*/
 | 
				
			||||||
 | 
					# if !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) 
 | 
				
			||||||
 | 
					#  define _SYS_TYPES_FD_SET
 | 
				
			||||||
 | 
					#  define	NBBY	8		/* number of bits in a byte */
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Select uses bit masks of file descriptors in longs.
 | 
				
			||||||
 | 
					 * These macros manipulate such bit fields (the filesystem macros use chars).
 | 
				
			||||||
 | 
					 * FD_SETSIZE may be defined by the user, but the default here
 | 
				
			||||||
 | 
					 * should be >= NOFILE (param.h).
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#  ifndef	FD_SETSIZE
 | 
				
			||||||
 | 
					#	define	FD_SETSIZE	64
 | 
				
			||||||
 | 
					#  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef	long	fd_mask;
 | 
				
			||||||
 | 
					#  define	NFDBITS	(sizeof (fd_mask) * NBBY)	/* bits per mask */
 | 
				
			||||||
 | 
					#  ifndef	howmany
 | 
				
			||||||
 | 
					#	define	howmany(x,y)	(((x)+((y)-1))/(y))
 | 
				
			||||||
 | 
					#  endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* We use a macro for fd_set so that including Sockets.h afterwards
 | 
				
			||||||
 | 
					   can work.  */
 | 
				
			||||||
 | 
					typedef	struct _types_fd_set {
 | 
				
			||||||
 | 
						fd_mask	fds_bits[howmany(FD_SETSIZE, NFDBITS)];
 | 
				
			||||||
 | 
					} _types_fd_set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define fd_set _types_fd_set
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#  define	FD_SET(n, p)	((p)->fds_bits[(n)/NFDBITS] |= (1L << ((n) % NFDBITS)))
 | 
				
			||||||
 | 
					#  define	FD_CLR(n, p)	((p)->fds_bits[(n)/NFDBITS] &= ~(1L << ((n) % NFDBITS)))
 | 
				
			||||||
 | 
					#  define	FD_ISSET(n, p)	((p)->fds_bits[(n)/NFDBITS] & (1L << ((n) % NFDBITS)))
 | 
				
			||||||
 | 
					#  define	FD_ZERO(p)	(__extension__ (void)({ \
 | 
				
			||||||
 | 
					     size_t __i; \
 | 
				
			||||||
 | 
					     char *__tmp = (char *)p; \
 | 
				
			||||||
 | 
					     for (__i = 0; __i < sizeof (*(p)); ++__i) \
 | 
				
			||||||
 | 
					       *__tmp++ = 0; \
 | 
				
			||||||
 | 
					}))
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# endif	/* !(defined (_POSIX_SOURCE) || defined (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS)) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __MS_types__
 | 
				
			||||||
 | 
					#undef _ST_INT32
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __clockid_t_defined
 | 
				
			||||||
 | 
					typedef _CLOCKID_T_ clockid_t;
 | 
				
			||||||
 | 
					#define __clockid_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef __timer_t_defined
 | 
				
			||||||
 | 
					typedef _TIMER_T_ timer_t;
 | 
				
			||||||
 | 
					#define __timer_t_defined
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef unsigned long useconds_t;
 | 
				
			||||||
 | 
					typedef long suseconds_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Cygwin will probably never have full posix compliance due to little things
 | 
				
			||||||
 | 
					 * like an inability to set the stackaddress. Cygwin is also using void *  
 | 
				
			||||||
 | 
					 * pointers rather than structs to ensure maximum binary compatability with
 | 
				
			||||||
 | 
					 * previous releases.
 | 
				
			||||||
 | 
					 * This means that we don't use the types defined here, but rather in
 | 
				
			||||||
 | 
					 * <cygwin/types.h>
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREADS) && !defined(__CYGWIN__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/sched.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  2.5 Primitive System Data Types,  P1003.1c/D10, p. 19.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__XMK__)
 | 
				
			||||||
 | 
					typedef unsigned int pthread_t;          /* identify a thread */
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_t;            /* identify a thread */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* P1003.1c/D10, p. 118-119 */
 | 
				
			||||||
 | 
					#define PTHREAD_SCOPE_PROCESS 0
 | 
				
			||||||
 | 
					#define PTHREAD_SCOPE_SYSTEM  1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* P1003.1c/D10, p. 111 */
 | 
				
			||||||
 | 
					#define PTHREAD_INHERIT_SCHED  1      /* scheduling policy and associated */
 | 
				
			||||||
 | 
					                                      /*   attributes are inherited from */
 | 
				
			||||||
 | 
					                                      /*   the calling thread. */
 | 
				
			||||||
 | 
					#define PTHREAD_EXPLICIT_SCHED 2      /* set from provided attribute object */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* P1003.1c/D10, p. 141 */
 | 
				
			||||||
 | 
					#define PTHREAD_CREATE_DETACHED 0
 | 
				
			||||||
 | 
					#define PTHREAD_CREATE_JOINABLE  1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					  #include <sys/cpuset.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__XMK__)
 | 
				
			||||||
 | 
					typedef struct pthread_attr_s {
 | 
				
			||||||
 | 
					  int contentionscope;
 | 
				
			||||||
 | 
					  struct sched_param schedparam;
 | 
				
			||||||
 | 
					  int  detachstate;
 | 
				
			||||||
 | 
					  void *stackaddr;
 | 
				
			||||||
 | 
					  size_t stacksize;
 | 
				
			||||||
 | 
					} pthread_attr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_STACK_MIN       200
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !defined(__XMK__) */
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int is_initialized;
 | 
				
			||||||
 | 
					  void *stackaddr;
 | 
				
			||||||
 | 
					  int stacksize;
 | 
				
			||||||
 | 
					  int contentionscope;
 | 
				
			||||||
 | 
					  int inheritsched;
 | 
				
			||||||
 | 
					  int schedpolicy;
 | 
				
			||||||
 | 
					  struct sched_param schedparam;
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					  size_t guardsize;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					  /* P1003.4b/D8, p. 54 adds cputime_clock_allowed attribute.  */
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_CPUTIME)
 | 
				
			||||||
 | 
					  int  cputime_clock_allowed;  /* see time.h */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  int  detachstate;
 | 
				
			||||||
 | 
					#if defined(__rtems__)
 | 
				
			||||||
 | 
					  size_t affinitysetsize;
 | 
				
			||||||
 | 
					  cpu_set_t *affinityset;
 | 
				
			||||||
 | 
					  cpu_set_t affinitysetpreallocated;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					} pthread_attr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !defined(__XMK__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PROCESS_SHARED)
 | 
				
			||||||
 | 
					/* NOTE: P1003.1c/D10, p. 81 defines following values for process_shared.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_PROCESS_PRIVATE 0 /* visible within only the creating process */
 | 
				
			||||||
 | 
					#define PTHREAD_PROCESS_SHARED  1 /* visible too all processes with access to */
 | 
				
			||||||
 | 
					                                  /*   the memory where the resource is */
 | 
				
			||||||
 | 
					                                  /*   located */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIO_PROTECT)
 | 
				
			||||||
 | 
					/* Mutexes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Values for blocking protocol. */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define PTHREAD_PRIO_NONE    0
 | 
				
			||||||
 | 
					#define PTHREAD_PRIO_INHERIT 1
 | 
				
			||||||
 | 
					#define PTHREAD_PRIO_PROTECT 2
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Values for mutex type */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* The following defines are part of the X/Open System Interface (XSI). */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * This type of mutex does not detect deadlock. A thread attempting to
 | 
				
			||||||
 | 
					 * relock this mutex without first unlocking it shall deadlock. Attempting
 | 
				
			||||||
 | 
					 * to unlock a mutex locked by a different thread results in undefined
 | 
				
			||||||
 | 
					 * behavior.  Attempting to unlock an unlocked mutex results in undefined
 | 
				
			||||||
 | 
					 * behavior.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define PTHREAD_MUTEX_NORMAL     0
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * A thread attempting to relock this mutex without first unlocking
 | 
				
			||||||
 | 
					 * it shall succeed in locking the mutex.  The relocking deadlock which
 | 
				
			||||||
 | 
					 * can occur with mutexes of type PTHREAD_MUTEX_NORMAL cannot occur with
 | 
				
			||||||
 | 
					 * this type of mutex.  Multiple locks of this mutex shall require the
 | 
				
			||||||
 | 
					 * same number of unlocks to release the mutex before another thread can
 | 
				
			||||||
 | 
					 * acquire the mutex. A thread attempting to unlock a mutex which another
 | 
				
			||||||
 | 
					 * thread has locked shall return with an error.  A thread attempting to
 | 
				
			||||||
 | 
					 * unlock an unlocked mutex shall return with an error.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define PTHREAD_MUTEX_RECURSIVE  1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* 
 | 
				
			||||||
 | 
					 * This type of mutex provides error checking. A thread attempting
 | 
				
			||||||
 | 
					 * to relock this mutex without first unlocking it shall return with an
 | 
				
			||||||
 | 
					 * error. A thread attempting to unlock a mutex which another thread has
 | 
				
			||||||
 | 
					 * locked shall return with an error. A thread attempting to unlock an
 | 
				
			||||||
 | 
					 * unlocked mutex shall return with an error.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define PTHREAD_MUTEX_ERRORCHECK 2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Attempting to recursively lock a mutex of this type results
 | 
				
			||||||
 | 
					 * in undefined behavior. Attempting to unlock a mutex of this type
 | 
				
			||||||
 | 
					 * which was not locked by the calling thread results in undefined
 | 
				
			||||||
 | 
					 * behavior. Attempting to unlock a mutex of this type which is not locked
 | 
				
			||||||
 | 
					 * results in undefined behavior. An implementation may map this mutex to
 | 
				
			||||||
 | 
					 * one of the other mutex types.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#define PTHREAD_MUTEX_DEFAULT    3
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* !defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__XMK__)
 | 
				
			||||||
 | 
					typedef unsigned int pthread_mutex_t;    /* identify a mutex */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int type;
 | 
				
			||||||
 | 
					} pthread_mutexattr_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#else /* !defined(__XMK__) */
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_mutex_t;      /* identify a mutex */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int   is_initialized;
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PROCESS_SHARED)
 | 
				
			||||||
 | 
					  int   process_shared;  /* allow mutex to be shared amongst processes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PRIO_PROTECT)
 | 
				
			||||||
 | 
					  int   prio_ceiling;
 | 
				
			||||||
 | 
					  int   protocol;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(_UNIX98_THREAD_MUTEX_ATTRIBUTES)
 | 
				
			||||||
 | 
					  int type;
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					  int   recursive;
 | 
				
			||||||
 | 
					} pthread_mutexattr_t;
 | 
				
			||||||
 | 
					#endif /* !defined(__XMK__) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Condition Variables */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_cond_t;       /* identify a condition variable */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int   is_initialized;
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PROCESS_SHARED)
 | 
				
			||||||
 | 
					  int   process_shared;       /* allow this to be shared amongst processes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					} pthread_condattr_t;         /* a condition attribute object */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* Keys */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_key_t;        /* thread-specific data keys */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int   is_initialized;  /* is this structure initialized? */
 | 
				
			||||||
 | 
					  int   init_executed;   /* has the initialization routine been run? */
 | 
				
			||||||
 | 
					} pthread_once_t;       /* dynamic package initialization */
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					#if defined (__CYGWIN__)
 | 
				
			||||||
 | 
					#include <cygwin/types.h>
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_THREADS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX Barrier Types */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_BARRIERS)
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_barrier_t;        /* POSIX Barrier Object */
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int   is_initialized;  /* is this structure initialized? */
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PROCESS_SHARED)
 | 
				
			||||||
 | 
					  int   process_shared;       /* allow this to be shared amongst processes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					} pthread_barrierattr_t;
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_BARRIERS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX Spin Lock Types */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if !defined (__CYGWIN__)
 | 
				
			||||||
 | 
					#if defined(_POSIX_SPIN_LOCKS)
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_spinlock_t;        /* POSIX Spin Lock Object */
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_SPIN_LOCKS) */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* POSIX Reader/Writer Lock Types */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(_POSIX_READER_WRITER_LOCKS)
 | 
				
			||||||
 | 
					typedef __uint32_t pthread_rwlock_t;         /* POSIX RWLock Object */
 | 
				
			||||||
 | 
					typedef struct {
 | 
				
			||||||
 | 
					  int   is_initialized;       /* is this structure initialized? */
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_PROCESS_SHARED)
 | 
				
			||||||
 | 
					  int   process_shared;       /* allow this to be shared amongst processes */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					} pthread_rwlockattr_t;
 | 
				
			||||||
 | 
					#endif /* defined(_POSIX_READER_WRITER_LOCKS) */
 | 
				
			||||||
 | 
					#endif /* __CYGWIN__ */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif  /* !__need_inttypes */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#undef __need_inttypes
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif	/* _SYS_TYPES_H */
 | 
				
			||||||
							
								
								
									
										516
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/unistd.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										516
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/unistd.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,516 @@
 | 
				
			|||||||
 | 
					#ifndef _SYS_UNISTD_H
 | 
				
			||||||
 | 
					#define _SYS_UNISTD_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <_ansi.h>
 | 
				
			||||||
 | 
					#define __need_size_t
 | 
				
			||||||
 | 
					#define __need_ptrdiff_t
 | 
				
			||||||
 | 
					#include <sys/cdefs.h>
 | 
				
			||||||
 | 
					#include <sys/types.h>
 | 
				
			||||||
 | 
					#include <sys/_types.h>
 | 
				
			||||||
 | 
					#include <stddef.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					extern char **environ;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					void	_EXFUN(_exit, (int __status ) _ATTRIBUTE ((__noreturn__)));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					int	_EXFUN(access,(const char *__path, int __amode ));
 | 
				
			||||||
 | 
					unsigned  _EXFUN(alarm, (unsigned __secs ));
 | 
				
			||||||
 | 
					int     _EXFUN(chdir, (const char *__path ));
 | 
				
			||||||
 | 
					int     _EXFUN(chmod, (const char *__path, mode_t __mode ));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(chown, (const char *__path, uid_t __owner, gid_t __group ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					int     _EXFUN(chroot, (const char *__path ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(close, (int __fildes ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					size_t	_EXFUN(confstr, (int __name, char *__buf, size_t __len));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *  _EXFUN(ctermid, (char *__s ));
 | 
				
			||||||
 | 
					char *  _EXFUN(cuserid, (char *__s ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(daemon, (int nochdir, int noclose));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(dup, (int __fildes ));
 | 
				
			||||||
 | 
					int     _EXFUN(dup2, (int __fildes, int __fildes2 ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(dup3, (int __fildes, int __fildes2, int flags));
 | 
				
			||||||
 | 
					int	_EXFUN(eaccess, (const char *__path, int __mode));
 | 
				
			||||||
 | 
					void	_EXFUN(endusershell, (void));
 | 
				
			||||||
 | 
					int	_EXFUN(euidaccess, (const char *__path, int __mode));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(execl, (const char *__path, const char *, ... ));
 | 
				
			||||||
 | 
					int     _EXFUN(execle, (const char *__path, const char *, ... ));
 | 
				
			||||||
 | 
					int     _EXFUN(execlp, (const char *__file, const char *, ... ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(execlpe, (const char *__file, const char *, ... ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(execv, (const char *__path, char * const __argv[] ));
 | 
				
			||||||
 | 
					int     _EXFUN(execve, (const char *__path, char * const __argv[], char * const __envp[] ));
 | 
				
			||||||
 | 
					int     _EXFUN(execvp, (const char *__file, char * const __argv[] ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(execvpe, (const char *__file, char * const __argv[], char * const __envp[] ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(faccessat, (int __dirfd, const char *__path, int __mode, int __flags));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__) || defined(__SPU__)
 | 
				
			||||||
 | 
					int     _EXFUN(fchdir, (int __fildes));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(fchmod, (int __fildes, mode_t __mode ));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(fchown, (int __fildes, uid_t __owner, gid_t __group ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(fchownat, (int __dirfd, const char *__path, uid_t __owner, gid_t __group, int __flags));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(fexecve, (int __fd, char * const __argv[], char * const __envp[] ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					pid_t   _EXFUN(fork, (void ));
 | 
				
			||||||
 | 
					long    _EXFUN(fpathconf, (int __fd, int __name ));
 | 
				
			||||||
 | 
					int     _EXFUN(fsync, (int __fd));
 | 
				
			||||||
 | 
					int     _EXFUN(fdatasync, (int __fd));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					char *  _EXFUN(get_current_dir_name, (void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *  _EXFUN(getcwd, (char *__buf, size_t __size ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(getdomainname ,(char *__name, size_t __len));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					gid_t   _EXFUN(getegid, (void ));
 | 
				
			||||||
 | 
					uid_t   _EXFUN(geteuid, (void ));
 | 
				
			||||||
 | 
					gid_t   _EXFUN(getgid, (void ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(getgroups, (int __gidsetsize, gid_t __grouplist[] ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					long    _EXFUN(gethostid, (void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *  _EXFUN(getlogin, (void ));
 | 
				
			||||||
 | 
					#if defined(_POSIX_THREAD_SAFE_FUNCTIONS)
 | 
				
			||||||
 | 
					int _EXFUN(getlogin_r, (char *name, size_t namesize) );
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *  _EXFUN(getpass, (const char *__prompt));
 | 
				
			||||||
 | 
					int	_EXFUN(getpagesize, (void));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int    _EXFUN(getpeereid, (int, uid_t *, gid_t *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					pid_t   _EXFUN(getpgid, (pid_t));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(getpgrp, (void ));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(getpid, (void ));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(getppid, (void ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					pid_t   _EXFUN(getsid, (pid_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					uid_t   _EXFUN(getuid, (void ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					char *	_EXFUN(getusershell, (void));
 | 
				
			||||||
 | 
					char *  _EXFUN(getwd, (char *__buf ));
 | 
				
			||||||
 | 
					int	_EXFUN(iruserok, (unsigned long raddr, int superuser, const char *ruser, const char *luser));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(isatty, (int __fildes ));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(lchown, (const char *__path, uid_t __owner, gid_t __group ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(link, (const char *__path1, const char *__path2 ));
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(linkat, (int __dirfd1, const char *__path1, int __dirfd2, const char *__path2, int __flags ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int	_EXFUN(nice, (int __nice_value ));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					off_t   _EXFUN(lseek, (int __fildes, off_t __offset, int __whence ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__SPU__) || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					#define F_ULOCK	0
 | 
				
			||||||
 | 
					#define F_LOCK	1
 | 
				
			||||||
 | 
					#define F_TLOCK	2
 | 
				
			||||||
 | 
					#define F_TEST	3
 | 
				
			||||||
 | 
					int     _EXFUN(lockf, (int __fd, int __cmd, off_t __len));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					long    _EXFUN(pathconf, (const char *__path, int __name ));
 | 
				
			||||||
 | 
					int     _EXFUN(pause, (void ));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					int	_EXFUN(pthread_atfork, (void (*)(void), void (*)(void), void (*)(void)));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(pipe, (int __fildes[2] ));
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					int     _EXFUN(pipe2, (int __fildes[2], int flags));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					ssize_t _EXFUN(pread, (int __fd, void *__buf, size_t __nbytes, off_t __offset));
 | 
				
			||||||
 | 
					ssize_t _EXFUN(pwrite, (int __fd, const void *__buf, size_t __nbytes, off_t __offset));
 | 
				
			||||||
 | 
					_READ_WRITE_RETURN_TYPE _EXFUN(read, (int __fd, void *__buf, size_t __nbyte ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(rresvport, (int *__alport));
 | 
				
			||||||
 | 
					int	_EXFUN(revoke, (char *__path));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(rmdir, (const char *__path ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(ruserok, (const char *rhost, int superuser, const char *ruser, const char *luser));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					void *  _EXFUN(sbrk,  (ptrdiff_t __incr));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					int     _EXFUN(setegid, (gid_t __gid ));
 | 
				
			||||||
 | 
					int     _EXFUN(seteuid, (uid_t __uid ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(setgid, (gid_t __gid ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(setgroups, (int ngroups, const gid_t *grouplist ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if __BSD_VISIBLE || (defined(_XOPEN_SOURCE) && __XSI_VISIBLE < 500)
 | 
				
			||||||
 | 
					int	_EXFUN(sethostname, (const char *, size_t));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(setpgid, (pid_t __pid, pid_t __pgid ));
 | 
				
			||||||
 | 
					int     _EXFUN(setpgrp, (void ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) && !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(setregid, (gid_t __rgid, gid_t __egid));
 | 
				
			||||||
 | 
					int	_EXFUN(setreuid, (uid_t __ruid, uid_t __euid));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					pid_t   _EXFUN(setsid, (void ));
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(setuid, (uid_t __uid ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__)
 | 
				
			||||||
 | 
					void	_EXFUN(setusershell, (void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					unsigned _EXFUN(sleep, (unsigned int __seconds ));
 | 
				
			||||||
 | 
					void    _EXFUN(swab, (const void *__restrict, void *__restrict, ssize_t));
 | 
				
			||||||
 | 
					long    _EXFUN(sysconf, (int __name ));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(tcgetpgrp, (int __fildes ));
 | 
				
			||||||
 | 
					int     _EXFUN(tcsetpgrp, (int __fildes, pid_t __pgrp_id ));
 | 
				
			||||||
 | 
					char *  _EXFUN(ttyname, (int __fildes ));
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					int     _EXFUN(ttyname_r, (int, char *, size_t)); 
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(unlink, (const char *__path ));
 | 
				
			||||||
 | 
					int 	_EXFUN(usleep, (useconds_t __useconds));
 | 
				
			||||||
 | 
					int     _EXFUN(vhangup, (void ));
 | 
				
			||||||
 | 
					_READ_WRITE_RETURN_TYPE _EXFUN(write, (int __fd, const void *__buf, size_t __nbyte ));
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					# define __UNISTD_GETOPT__
 | 
				
			||||||
 | 
					# include <getopt.h>
 | 
				
			||||||
 | 
					# undef __UNISTD_GETOPT__
 | 
				
			||||||
 | 
					#else
 | 
				
			||||||
 | 
					extern char *optarg;			/* getopt(3) external variables */
 | 
				
			||||||
 | 
					extern int optind, opterr, optopt;
 | 
				
			||||||
 | 
					int	 getopt(int, char * const [], const char *);
 | 
				
			||||||
 | 
					extern int optreset;			/* getopt(3) external variable */
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifndef        _POSIX_SOURCE
 | 
				
			||||||
 | 
					pid_t   _EXFUN(vfork, (void ));
 | 
				
			||||||
 | 
					#endif /* _POSIX_SOURCE */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef _COMPILING_NEWLIB
 | 
				
			||||||
 | 
					/* Provide prototypes for most of the _<systemcall> names that are
 | 
				
			||||||
 | 
					   provided in newlib for some compilers.  */
 | 
				
			||||||
 | 
					int     _EXFUN(_close, (int __fildes ));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(_fork, (void ));
 | 
				
			||||||
 | 
					pid_t   _EXFUN(_getpid, (void ));
 | 
				
			||||||
 | 
					int	_EXFUN(_isatty, (int __fildes ));
 | 
				
			||||||
 | 
					int     _EXFUN(_link, (const char *__path1, const char *__path2 ));
 | 
				
			||||||
 | 
					_off_t   _EXFUN(_lseek, (int __fildes, _off_t __offset, int __whence ));
 | 
				
			||||||
 | 
					#ifdef __LARGE64_FILES
 | 
				
			||||||
 | 
					_off64_t _EXFUN(_lseek64, (int __filedes, _off64_t __offset, int __whence ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					_READ_WRITE_RETURN_TYPE _EXFUN(_read, (int __fd, void *__buf, size_t __nbyte ));
 | 
				
			||||||
 | 
					void *  _EXFUN(_sbrk,  (ptrdiff_t __incr));
 | 
				
			||||||
 | 
					int     _EXFUN(_unlink, (const char *__path ));
 | 
				
			||||||
 | 
					_READ_WRITE_RETURN_TYPE _EXFUN(_write, (int __fd, const void *__buf, size_t __nbyte ));
 | 
				
			||||||
 | 
					int     _EXFUN(_execve, (const char *__path, char * const __argv[], char * const __envp[] ));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__) || defined(__aarch64__) || defined (__arm__) || defined(__sh__) || defined(__SPU__)
 | 
				
			||||||
 | 
					#if !defined(__INSIDE_CYGWIN__)
 | 
				
			||||||
 | 
					int     _EXFUN(ftruncate, (int __fd, off_t __length));
 | 
				
			||||||
 | 
					int     _EXFUN(truncate, (const char *, off_t __length));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__rtems__)
 | 
				
			||||||
 | 
					int	_EXFUN(getdtablesize, (void));
 | 
				
			||||||
 | 
					int	_EXFUN(setdtablesize, (int));
 | 
				
			||||||
 | 
					useconds_t _EXFUN(ualarm, (useconds_t __useconds, useconds_t __interval));
 | 
				
			||||||
 | 
					#if !(defined  (_WINSOCK_H) || defined (_WINSOCKAPI_) || defined (__USE_W32_SOCKETS))
 | 
				
			||||||
 | 
					/* winsock[2].h defines as __stdcall, and with int as 2nd arg */
 | 
				
			||||||
 | 
					 int	_EXFUN(gethostname, (char *__name, size_t __len));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					char *	_EXFUN(mktemp, (char *));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#if defined(__CYGWIN__) || defined(__SPU__) || defined(__rtems__)
 | 
				
			||||||
 | 
					void    _EXFUN(sync, (void));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					ssize_t _EXFUN(readlink, (const char *__restrict __path,
 | 
				
			||||||
 | 
					                          char *__restrict __buf, size_t __buflen));
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					ssize_t        _EXFUN(readlinkat, (int __dirfd1, const char *__restrict __path,
 | 
				
			||||||
 | 
					                            char *__restrict __buf, size_t __buflen));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					int     _EXFUN(symlink, (const char *__name1, const char *__name2));
 | 
				
			||||||
 | 
					#if __POSIX_VISIBLE >= 200809 || __BSD_VISIBLE || defined(__CYGWIN__)
 | 
				
			||||||
 | 
					int	_EXFUN(symlinkat, (const char *, int, const char *));
 | 
				
			||||||
 | 
					int	_EXFUN(unlinkat, (int, const char *, int));
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define	F_OK	0
 | 
				
			||||||
 | 
					#define	R_OK	4
 | 
				
			||||||
 | 
					#define	W_OK	2
 | 
				
			||||||
 | 
					#define	X_OK	1
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					# define	SEEK_SET	0
 | 
				
			||||||
 | 
					# define	SEEK_CUR	1
 | 
				
			||||||
 | 
					# define	SEEK_END	2
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include <sys/features.h>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define STDIN_FILENO    0       /* standard input file descriptor */
 | 
				
			||||||
 | 
					#define STDOUT_FILENO   1       /* standard output file descriptor */
 | 
				
			||||||
 | 
					#define STDERR_FILENO   2       /* standard error file descriptor */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  sysconf values per IEEE Std 1003.1, 2008 Edition
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _SC_ARG_MAX                       0
 | 
				
			||||||
 | 
					#define _SC_CHILD_MAX                     1
 | 
				
			||||||
 | 
					#define _SC_CLK_TCK                       2
 | 
				
			||||||
 | 
					#define _SC_NGROUPS_MAX                   3
 | 
				
			||||||
 | 
					#define _SC_OPEN_MAX                      4
 | 
				
			||||||
 | 
					#define _SC_JOB_CONTROL                   5
 | 
				
			||||||
 | 
					#define _SC_SAVED_IDS                     6
 | 
				
			||||||
 | 
					#define _SC_VERSION                       7
 | 
				
			||||||
 | 
					#define _SC_PAGESIZE                      8
 | 
				
			||||||
 | 
					#define _SC_PAGE_SIZE                     _SC_PAGESIZE
 | 
				
			||||||
 | 
					/* These are non-POSIX values we accidentally introduced in 2000 without
 | 
				
			||||||
 | 
					   guarding them.  Keeping them unguarded for backward compatibility. */
 | 
				
			||||||
 | 
					#define _SC_NPROCESSORS_CONF              9
 | 
				
			||||||
 | 
					#define _SC_NPROCESSORS_ONLN             10
 | 
				
			||||||
 | 
					#define _SC_PHYS_PAGES                   11
 | 
				
			||||||
 | 
					#define _SC_AVPHYS_PAGES                 12
 | 
				
			||||||
 | 
					/* End of non-POSIX values. */
 | 
				
			||||||
 | 
					#define _SC_MQ_OPEN_MAX                  13
 | 
				
			||||||
 | 
					#define _SC_MQ_PRIO_MAX                  14
 | 
				
			||||||
 | 
					#define _SC_RTSIG_MAX                    15
 | 
				
			||||||
 | 
					#define _SC_SEM_NSEMS_MAX                16
 | 
				
			||||||
 | 
					#define _SC_SEM_VALUE_MAX                17
 | 
				
			||||||
 | 
					#define _SC_SIGQUEUE_MAX                 18
 | 
				
			||||||
 | 
					#define _SC_TIMER_MAX                    19
 | 
				
			||||||
 | 
					#define _SC_TZNAME_MAX                   20
 | 
				
			||||||
 | 
					#define _SC_ASYNCHRONOUS_IO              21
 | 
				
			||||||
 | 
					#define _SC_FSYNC                        22
 | 
				
			||||||
 | 
					#define _SC_MAPPED_FILES                 23
 | 
				
			||||||
 | 
					#define _SC_MEMLOCK                      24
 | 
				
			||||||
 | 
					#define _SC_MEMLOCK_RANGE                25
 | 
				
			||||||
 | 
					#define _SC_MEMORY_PROTECTION            26
 | 
				
			||||||
 | 
					#define _SC_MESSAGE_PASSING              27
 | 
				
			||||||
 | 
					#define _SC_PRIORITIZED_IO               28
 | 
				
			||||||
 | 
					#define _SC_REALTIME_SIGNALS             29
 | 
				
			||||||
 | 
					#define _SC_SEMAPHORES                   30
 | 
				
			||||||
 | 
					#define _SC_SHARED_MEMORY_OBJECTS        31
 | 
				
			||||||
 | 
					#define _SC_SYNCHRONIZED_IO              32
 | 
				
			||||||
 | 
					#define _SC_TIMERS                       33
 | 
				
			||||||
 | 
					#define _SC_AIO_LISTIO_MAX               34
 | 
				
			||||||
 | 
					#define _SC_AIO_MAX                      35
 | 
				
			||||||
 | 
					#define _SC_AIO_PRIO_DELTA_MAX           36
 | 
				
			||||||
 | 
					#define _SC_DELAYTIMER_MAX               37
 | 
				
			||||||
 | 
					#define _SC_THREAD_KEYS_MAX              38
 | 
				
			||||||
 | 
					#define _SC_THREAD_STACK_MIN             39
 | 
				
			||||||
 | 
					#define _SC_THREAD_THREADS_MAX           40
 | 
				
			||||||
 | 
					#define _SC_TTY_NAME_MAX                 41
 | 
				
			||||||
 | 
					#define _SC_THREADS                      42
 | 
				
			||||||
 | 
					#define _SC_THREAD_ATTR_STACKADDR        43
 | 
				
			||||||
 | 
					#define _SC_THREAD_ATTR_STACKSIZE        44
 | 
				
			||||||
 | 
					#define _SC_THREAD_PRIORITY_SCHEDULING   45
 | 
				
			||||||
 | 
					#define _SC_THREAD_PRIO_INHERIT          46
 | 
				
			||||||
 | 
					/* _SC_THREAD_PRIO_PROTECT was _SC_THREAD_PRIO_CEILING in early drafts */
 | 
				
			||||||
 | 
					#define _SC_THREAD_PRIO_PROTECT          47
 | 
				
			||||||
 | 
					#define _SC_THREAD_PRIO_CEILING          _SC_THREAD_PRIO_PROTECT
 | 
				
			||||||
 | 
					#define _SC_THREAD_PROCESS_SHARED        48
 | 
				
			||||||
 | 
					#define _SC_THREAD_SAFE_FUNCTIONS        49
 | 
				
			||||||
 | 
					#define _SC_GETGR_R_SIZE_MAX             50
 | 
				
			||||||
 | 
					#define _SC_GETPW_R_SIZE_MAX             51
 | 
				
			||||||
 | 
					#define _SC_LOGIN_NAME_MAX               52
 | 
				
			||||||
 | 
					#define _SC_THREAD_DESTRUCTOR_ITERATIONS 53
 | 
				
			||||||
 | 
					#define _SC_ADVISORY_INFO                54
 | 
				
			||||||
 | 
					#define _SC_ATEXIT_MAX                   55
 | 
				
			||||||
 | 
					#define _SC_BARRIERS                     56
 | 
				
			||||||
 | 
					#define _SC_BC_BASE_MAX                  57
 | 
				
			||||||
 | 
					#define _SC_BC_DIM_MAX                   58
 | 
				
			||||||
 | 
					#define _SC_BC_SCALE_MAX                 59
 | 
				
			||||||
 | 
					#define _SC_BC_STRING_MAX                60
 | 
				
			||||||
 | 
					#define _SC_CLOCK_SELECTION              61
 | 
				
			||||||
 | 
					#define _SC_COLL_WEIGHTS_MAX             62
 | 
				
			||||||
 | 
					#define _SC_CPUTIME                      63
 | 
				
			||||||
 | 
					#define _SC_EXPR_NEST_MAX                64
 | 
				
			||||||
 | 
					#define _SC_HOST_NAME_MAX                65
 | 
				
			||||||
 | 
					#define _SC_IOV_MAX                      66
 | 
				
			||||||
 | 
					#define _SC_IPV6                         67
 | 
				
			||||||
 | 
					#define _SC_LINE_MAX                     68
 | 
				
			||||||
 | 
					#define _SC_MONOTONIC_CLOCK              69
 | 
				
			||||||
 | 
					#define _SC_RAW_SOCKETS                  70
 | 
				
			||||||
 | 
					#define _SC_READER_WRITER_LOCKS          71
 | 
				
			||||||
 | 
					#define _SC_REGEXP                       72
 | 
				
			||||||
 | 
					#define _SC_RE_DUP_MAX                   73
 | 
				
			||||||
 | 
					#define _SC_SHELL                        74
 | 
				
			||||||
 | 
					#define _SC_SPAWN                        75
 | 
				
			||||||
 | 
					#define _SC_SPIN_LOCKS                   76
 | 
				
			||||||
 | 
					#define _SC_SPORADIC_SERVER              77
 | 
				
			||||||
 | 
					#define _SC_SS_REPL_MAX                  78
 | 
				
			||||||
 | 
					#define _SC_SYMLOOP_MAX                  79
 | 
				
			||||||
 | 
					#define _SC_THREAD_CPUTIME               80
 | 
				
			||||||
 | 
					#define _SC_THREAD_SPORADIC_SERVER       81
 | 
				
			||||||
 | 
					#define _SC_TIMEOUTS                     82
 | 
				
			||||||
 | 
					#define _SC_TRACE                        83
 | 
				
			||||||
 | 
					#define _SC_TRACE_EVENT_FILTER           84
 | 
				
			||||||
 | 
					#define _SC_TRACE_EVENT_NAME_MAX         85
 | 
				
			||||||
 | 
					#define _SC_TRACE_INHERIT                86
 | 
				
			||||||
 | 
					#define _SC_TRACE_LOG                    87
 | 
				
			||||||
 | 
					#define _SC_TRACE_NAME_MAX               88
 | 
				
			||||||
 | 
					#define _SC_TRACE_SYS_MAX                89
 | 
				
			||||||
 | 
					#define _SC_TRACE_USER_EVENT_MAX         90
 | 
				
			||||||
 | 
					#define _SC_TYPED_MEMORY_OBJECTS         91
 | 
				
			||||||
 | 
					#define _SC_V7_ILP32_OFF32               92
 | 
				
			||||||
 | 
					#define _SC_V6_ILP32_OFF32               _SC_V7_ILP32_OFF32
 | 
				
			||||||
 | 
					#define _SC_XBS5_ILP32_OFF32             _SC_V7_ILP32_OFF32
 | 
				
			||||||
 | 
					#define _SC_V7_ILP32_OFFBIG              93
 | 
				
			||||||
 | 
					#define _SC_V6_ILP32_OFFBIG              _SC_V7_ILP32_OFFBIG
 | 
				
			||||||
 | 
					#define _SC_XBS5_ILP32_OFFBIG            _SC_V7_ILP32_OFFBIG
 | 
				
			||||||
 | 
					#define _SC_V7_LP64_OFF64                94
 | 
				
			||||||
 | 
					#define _SC_V6_LP64_OFF64                _SC_V7_LP64_OFF64
 | 
				
			||||||
 | 
					#define _SC_XBS5_LP64_OFF64              _SC_V7_LP64_OFF64
 | 
				
			||||||
 | 
					#define _SC_V7_LPBIG_OFFBIG              95
 | 
				
			||||||
 | 
					#define _SC_V6_LPBIG_OFFBIG              _SC_V7_LPBIG_OFFBIG
 | 
				
			||||||
 | 
					#define _SC_XBS5_LPBIG_OFFBIG            _SC_V7_LPBIG_OFFBIG
 | 
				
			||||||
 | 
					#define _SC_XOPEN_CRYPT                  96
 | 
				
			||||||
 | 
					#define _SC_XOPEN_ENH_I18N               97
 | 
				
			||||||
 | 
					#define _SC_XOPEN_LEGACY                 98
 | 
				
			||||||
 | 
					#define _SC_XOPEN_REALTIME               99
 | 
				
			||||||
 | 
					#define _SC_STREAM_MAX                  100
 | 
				
			||||||
 | 
					#define _SC_PRIORITY_SCHEDULING         101
 | 
				
			||||||
 | 
					#define _SC_XOPEN_REALTIME_THREADS      102
 | 
				
			||||||
 | 
					#define _SC_XOPEN_SHM                   103
 | 
				
			||||||
 | 
					#define _SC_XOPEN_STREAMS               104
 | 
				
			||||||
 | 
					#define _SC_XOPEN_UNIX                  105
 | 
				
			||||||
 | 
					#define _SC_XOPEN_VERSION               106
 | 
				
			||||||
 | 
					#define _SC_2_CHAR_TERM                 107
 | 
				
			||||||
 | 
					#define _SC_2_C_BIND                    108
 | 
				
			||||||
 | 
					#define _SC_2_C_DEV                     109
 | 
				
			||||||
 | 
					#define _SC_2_FORT_DEV                  110
 | 
				
			||||||
 | 
					#define _SC_2_FORT_RUN                  111
 | 
				
			||||||
 | 
					#define _SC_2_LOCALEDEF                 112
 | 
				
			||||||
 | 
					#define _SC_2_PBS                       113
 | 
				
			||||||
 | 
					#define _SC_2_PBS_ACCOUNTING            114
 | 
				
			||||||
 | 
					#define _SC_2_PBS_CHECKPOINT            115
 | 
				
			||||||
 | 
					#define _SC_2_PBS_LOCATE                116
 | 
				
			||||||
 | 
					#define _SC_2_PBS_MESSAGE               117
 | 
				
			||||||
 | 
					#define _SC_2_PBS_TRACK                 118
 | 
				
			||||||
 | 
					#define _SC_2_SW_DEV                    119
 | 
				
			||||||
 | 
					#define _SC_2_UPE                       120
 | 
				
			||||||
 | 
					#define _SC_2_VERSION                   121
 | 
				
			||||||
 | 
					#define _SC_THREAD_ROBUST_PRIO_INHERIT  122
 | 
				
			||||||
 | 
					#define _SC_THREAD_ROBUST_PRIO_PROTECT  123
 | 
				
			||||||
 | 
					#define _SC_XOPEN_UUCP                  124
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  pathconf values per IEEE Std 1003.1, 2008 Edition
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#define _PC_LINK_MAX                      0
 | 
				
			||||||
 | 
					#define _PC_MAX_CANON                     1
 | 
				
			||||||
 | 
					#define _PC_MAX_INPUT                     2
 | 
				
			||||||
 | 
					#define _PC_NAME_MAX                      3
 | 
				
			||||||
 | 
					#define _PC_PATH_MAX                      4
 | 
				
			||||||
 | 
					#define _PC_PIPE_BUF                      5
 | 
				
			||||||
 | 
					#define _PC_CHOWN_RESTRICTED              6
 | 
				
			||||||
 | 
					#define _PC_NO_TRUNC                      7
 | 
				
			||||||
 | 
					#define _PC_VDISABLE                      8
 | 
				
			||||||
 | 
					#define _PC_ASYNC_IO                      9
 | 
				
			||||||
 | 
					#define _PC_PRIO_IO                      10
 | 
				
			||||||
 | 
					#define _PC_SYNC_IO                      11
 | 
				
			||||||
 | 
					#define _PC_FILESIZEBITS                 12
 | 
				
			||||||
 | 
					#define _PC_2_SYMLINKS                   13
 | 
				
			||||||
 | 
					#define _PC_SYMLINK_MAX                  14
 | 
				
			||||||
 | 
					#define _PC_ALLOC_SIZE_MIN               15
 | 
				
			||||||
 | 
					#define _PC_REC_INCR_XFER_SIZE           16
 | 
				
			||||||
 | 
					#define _PC_REC_MAX_XFER_SIZE            17
 | 
				
			||||||
 | 
					#define _PC_REC_MIN_XFER_SIZE            18
 | 
				
			||||||
 | 
					#define _PC_REC_XFER_ALIGN               19
 | 
				
			||||||
 | 
					#define _PC_TIMESTAMP_RESOLUTION         20
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__
 | 
				
			||||||
 | 
					/* Ask for POSIX permission bits support. */
 | 
				
			||||||
 | 
					#define _PC_POSIX_PERMISSIONS            90
 | 
				
			||||||
 | 
					/* Ask for full POSIX permission support including uid/gid settings. */
 | 
				
			||||||
 | 
					#define _PC_POSIX_SECURITY               91
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/*
 | 
				
			||||||
 | 
					 *  confstr values per IEEE Std 1003.1, 2004 Edition
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __CYGWIN__	/* Only defined on Cygwin for now. */
 | 
				
			||||||
 | 
					#define _CS_PATH                               0
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFF32_CFLAGS        1
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFF32_CFLAGS       _CS_POSIX_V7_ILP32_OFF32_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFF32_CFLAGS           _CS_POSIX_V7_ILP32_OFF32_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFF32_LDFLAGS       2
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFF32_LDFLAGS      _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFF32_LDFLAGS          _CS_POSIX_V7_ILP32_OFF32_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFF32_LIBS          3
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFF32_LIBS         _CS_POSIX_V7_ILP32_OFF32_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFF32_LIBS             _CS_POSIX_V7_ILP32_OFF32_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFF32_LINTFLAGS         4
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS       5
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFFBIG_CFLAGS      _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFFBIG_CFLAGS          _CS_POSIX_V7_ILP32_OFFBIG_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS      6
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFFBIG_LDFLAGS     _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFFBIG_LDFLAGS         _CS_POSIX_V7_ILP32_OFFBIG_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_ILP32_OFFBIG_LIBS         7
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_ILP32_OFFBIG_LIBS        _CS_POSIX_V7_ILP32_OFFBIG_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFFBIG_LIBS            _CS_POSIX_V7_ILP32_OFFBIG_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_ILP32_OFFBIG_LINTFLAGS        8
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LP64_OFF64_CFLAGS         9
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LP64_OFF64_CFLAGS        _CS_POSIX_V7_LP64_OFF64_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LP64_OFF64_CFLAGS            _CS_POSIX_V7_LP64_OFF64_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LP64_OFF64_LDFLAGS       10
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LP64_OFF64_LDFLAGS       _CS_POSIX_V7_LP64_OFF64_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LP64_OFF64_LDFLAGS           _CS_POSIX_V7_LP64_OFF64_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LP64_OFF64_LIBS          11
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LP64_OFF64_LIBS          _CS_POSIX_V7_LP64_OFF64_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LP64_OFF64_LIBS              _CS_POSIX_V7_LP64_OFF64_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LP64_OFF64_LINTFLAGS         12
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS      13
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LPBIG_OFFBIG_CFLAGS      _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LPBIG_OFFBIG_CFLAGS          _CS_POSIX_V7_LPBIG_OFFBIG_CFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS     14
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LPBIG_OFFBIG_LDFLAGS     _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LPBIG_OFFBIG_LDFLAGS         _CS_POSIX_V7_LPBIG_OFFBIG_LDFLAGS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_LPBIG_OFFBIG_LIBS        15
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_LPBIG_OFFBIG_LIBS        _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LPBIG_OFFBIG_LIBS            _CS_POSIX_V7_LPBIG_OFFBIG_LIBS
 | 
				
			||||||
 | 
					#define _CS_XBS5_LPBIG_OFFBIG_LINTFLAGS       16
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS    17
 | 
				
			||||||
 | 
					#define _CS_POSIX_V6_WIDTH_RESTRICTED_ENVS    _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
 | 
				
			||||||
 | 
					#define _CS_XBS5_WIDTH_RESTRICTED_ENVS        _CS_POSIX_V7_WIDTH_RESTRICTED_ENVS
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_THREADS_CFLAGS           18
 | 
				
			||||||
 | 
					#define _CS_POSIX_V7_THREADS_LDFLAGS          19
 | 
				
			||||||
 | 
					#define _CS_V7_ENV                            20
 | 
				
			||||||
 | 
					#define _CS_V6_ENV                            _CS_V7_ENV
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					#endif /* _SYS_UNISTD_H */
 | 
				
			||||||
							
								
								
									
										22
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/utime.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										22
									
								
								tools/sdk/libc/xtensa-lx106-elf/include/sys/utime.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,22 @@
 | 
				
			|||||||
 | 
					#ifndef _SYS_UTIME_H
 | 
				
			||||||
 | 
					#define _SYS_UTIME_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					/* This is a dummy <sys/utime.h> file, not customized for any
 | 
				
			||||||
 | 
					   particular system.  If there is a utime.h in libc/sys/SYSDIR/sys,
 | 
				
			||||||
 | 
					   it will override this one.  */
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					extern "C" {
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					struct utimbuf 
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					  time_t actime;
 | 
				
			||||||
 | 
					  time_t modtime; 
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#ifdef __cplusplus
 | 
				
			||||||
 | 
					};
 | 
				
			||||||
 | 
					#endif
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif /* _SYS_UTIME_H */
 | 
				
			||||||
Some files were not shown because too many files have changed in this diff Show More
		Reference in New Issue
	
	Block a user