Welcome to mirror list, hosted at ThFree Co, Russian Federation.

cygwin.com/git/newlib-cygwin.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'newlib/libc/sys/epiphany/e_printf.c')
-rw-r--r--newlib/libc/sys/epiphany/e_printf.c150
1 files changed, 0 insertions, 150 deletions
diff --git a/newlib/libc/sys/epiphany/e_printf.c b/newlib/libc/sys/epiphany/e_printf.c
deleted file mode 100644
index a93c34320..000000000
--- a/newlib/libc/sys/epiphany/e_printf.c
+++ /dev/null
@@ -1,150 +0,0 @@
-/* e_printf.c
-
- Copyright (c) 2011, Adapteva, 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:
- * 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 Adapteva 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 HOLDER 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. */
-#include <stdarg.h>
-#include <string.h>
-
-
-
-
-int trap_7( char *s , int _bsize, int _argsize) {
- volatile register void* buff_adrr asm("r0") = s;
- volatile register unsigned bsize asm("r1") = _bsize;
- volatile register unsigned argsize asm("r2") = _argsize;
- volatile register int result asm("r0");
- __asm__ __volatile__ ("trap 7" : "=r" (result) : "r" (buff_adrr), "r" (bsize) , "r" (argsize));
- return result;
-
-}
-
-//#include <stdio.h>
-//#include <string.h>
-//#include <stdlib.h>
-
-volatile static int*fp_int =0;
-volatile int getIntFromFloat(float *f) {
- fp_int= (int*)f;
-
- return *fp_int;
-}
-
-
-int e_printf(const char *fmt, ...) {
-
- char buf[256],*p,*fmt_p;
- va_list args;
- int percentMet=0;
- int pos = 0;
-
- char *v_arg_s;
- unsigned v_arg_int;
- float fl_f[1];
-
- unsigned fmt_len = strnlen(fmt,128);
-
- fmt_p = (char*)fmt;
-
- //printf("---- 111 +++ %d \n", strlen(fmt));
-
- va_start(args, fmt);
-
- p = (char*)buf;
-
- strcpy(buf,fmt);
- pos =fmt_len;
- p[pos] = '\0';
- pos++;
-
- va_start(args, fmt);
-
- while (*fmt_p) {
-
-// putchar(*p);
-// puts("");
-
- if(*fmt_p == '%') {
- percentMet=1;
- }
- if(*fmt_p == 's' && percentMet == 1 ) {
- percentMet=0;
- v_arg_s = va_arg(args, char *);
- if (!v_arg_s) v_arg_s = "<NULL>";
-
- strcpy(p + pos , v_arg_s );
- pos+=strlen(v_arg_s);
-
- p[pos] = '\0';
- pos++;
- }
-
- if((*fmt_p == 'i' || *fmt_p == 'd' || *fmt_p == 'u' || *fmt_p == 'x' || *fmt_p == 'f' ) && percentMet == 1 ) {
- percentMet=0;
- if(*fmt_p == 'f' ) {
- fl_f[0] = (float)va_arg(args, double);
- //printf("v_arg_ float --- %f \n", fl_f[0]);
- //printf("v_arg_ p --- %x \n", *( (unsigned *)fl_f));
-
- v_arg_int = getIntFromFloat (fl_f);
-
- //v_arg_int = 0;
-
- } else {
- v_arg_int = (int)va_arg(args, int);
- }
-
-// if(*fmt_p == 'd') {
-// printf("v_arg_int --- %d \n", v_arg_int);
-// }
-// if(*fmt_p == 'x') {
-// printf("v_arg_int --- %x \n", v_arg_int);
-// }
-// if(*fmt_p == 'f') {
-// printf("fff++v_arg_int --- %x \n", v_arg_int);
-// fl = (float*)&v_arg_int;
-// printf("fff++ v_arg_float --- %f \n", *fl);
-// }
-
- *(p + pos) = ((v_arg_int>>24) & 0xff);
- pos++;
- *(p + pos) = ((v_arg_int>>16) & 0xff);
- pos++;
- *(p + pos) = ((v_arg_int>>8) & 0xff);
- pos++;
- *(p + pos) = ((v_arg_int>>0) & 0xff);
- pos++;
- }
-
- fmt_p++;
- }
-
- va_end(args);
-
- //printf(" +++ %d %d \n" , strlen(fmt), pos);
-
- return trap_7((char*)buf ,fmt_len, pos) ;
- //return 1;
-}