/newlib/libc/machine/spu/include/ea.h
https://bitbucket.org/pizzafactory/binutils · C Header · 137 lines · 74 code · 21 blank · 42 comment · 2 complexity · e84baed4719151019ecf735d298662ae MD5 · raw file
- /*
- (C) Copyright IBM Corp. 2007, 2008
- All rights reserved.
- Redistribution and use in source and binary forms, with or without
- modification, are permitted provided that the following conditions are met:
- * Redistributions of source code must retain the above copyright notice,
- this list of conditions and the following disclaimer.
- * 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.
- * Neither the name of IBM 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 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 THE COPYRIGHT OWNER 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 __EA_H
- #define __EA_H
- #include <stdint.h>
- #include <stddef.h>
- #include <sys/syscall.h>
- #include <sys/types.h>
- #include <sys/unistd.h>
- /*
- * take this out when compiler support is common
- */
- #if (!defined( __EA32__ ) && !defined( __EA64__ ))
- #warning "need __ea support in compiler to compile to take advantage of libea features"
- #define __ea
- #define __EA32__
- #endif
- #ifdef __EA64__
- typedef uint64_t size_ea_t;
- typedef int64_t ssize_ea_t;
- typedef uint64_t key_ea_t;
- #define MAP_FAILED_EA ((__ea void *) -1LL)
- #else
- typedef uint32_t size_ea_t;
- typedef int32_t ssize_ea_t;
- typedef uint32_t key_ea_t;
- #define MAP_FAILED_EA ((__ea void *) -1)
- #endif
- typedef __ea void * eaptr;
- struct iovec_ea
- {
- #ifdef __EA32__
- unsigned int __pad1; /* 32 bit padding */
- #endif
- /*__ea void *iov_base;*/
- eaptr iov_base; /* Starting address */
- #ifdef __EA32__
- unsigned int __pad2; /* 32 bit padding */
- #endif
- size_ea_t iov_len; /* Number of bytes */
- };
- /* Memory Mapping functions */
- __ea void *mmap_ea (__ea void *start, size_ea_t length, int prot, int
- flags, int fd, off_t offset);
- int munmap_ea (__ea void *start, size_ea_t length);
- __ea void *mremap_ea (__ea void *old_address, size_ea_t old_size,
- size_ea_t new_size, unsigned long flags);
- int msync_ea (__ea void *start, size_ea_t length, int flags);
- /* EA memory mangement functions */
- __ea void *calloc_ea (size_ea_t nmemb, size_ea_t length);
- void free_ea (__ea void *ptr);
- __ea void *malloc_ea (size_ea_t size);
- __ea void *realloc_ea (__ea void *ptr, size_ea_t size);
- int posix_memalign_ea (__ea void **memptr, size_ea_t alignment, size_ea_t size);
- /* String copying functions */
- __ea void *memcpy_ea (__ea void *dest, __ea const void *src, size_ea_t n);
- __ea void *memmove_ea (__ea void *dest, __ea const void *src, size_ea_t n);
- __ea char *strcpy_ea (__ea char *dest, __ea const char *src);
- __ea char *strncpy_ea (__ea char *dest, __ea const char *src, size_ea_t n);
- /* Concatenation functions */
- __ea char *strcat_ea (__ea char *dest, __ea const char *src);
- __ea char *strncat_ea (__ea char *dest, __ea const char *src, size_ea_t n);
- /* Comparison functions */
- int memcmp_ea (__ea void *s1, __ea const void *s2, size_ea_t n);
- int strcmp_ea (__ea char *s1, __ea const char *s2);
- int strncmp_ea (__ea void *s1, __ea const void *s2, size_ea_t n3);
- /* Search functions*/
- __ea void *memchr_ea (__ea const void *s, int c, size_ea_t n);
- __ea char *strchr_ea (__ea const char *s, int c);
- size_ea_t strcspn_ea (__ea const char *s, const char *reject);
- __ea char *strpbrk_ea (__ea const char *s, const char *accept);
- __ea char *strrchr_ea (__ea const char *s, int c);
- size_ea_t strspn_ea (__ea const char *s, const char *accept);
- __ea char * strstr_ea (__ea const char *s1, __ea const char *s2);
- /* Misc functions */
- __ea void *memset_ea (__ea void *dest, int c, size_ea_t n);
- size_ea_t strlen_ea (__ea const char *s);
- /* Linux system call functions */
- ssize_ea_t read_ea(int fd, __ea void *buf, size_ea_t count);
- ssize_ea_t pread_ea(int fd, __ea void *buf, size_ea_t count, off_t offset);
- ssize_ea_t readv_ea(int fd, struct iovec_ea *vector, int count);
- ssize_ea_t write_ea(int fd, __ea const void *buf, size_ea_t count);
- ssize_ea_t pwrite_ea(int fd, __ea const void *buf, size_ea_t count, off_t offset);
- ssize_ea_t writev_ea(int fd, struct iovec_ea *vector, int count);
- #if defined( __EA64__ ) && defined( __EA32__ )
- #error __EA64__ and __EA32__ are both defined
- #endif
- #endif