blob: 9c59e4f552b0f1e7888da43d6e6b52bd4f704e01 [file] [log] [blame]
From b2e081bd0c00dce23a6824db050bbfca991d79ab Mon Sep 17 00:00:00 2001
From: Mahesh Bodapati <mbodapat@xilinx.com>
Date: Mon, 23 Jan 2017 15:42:11 +0530
Subject: [PATCH 04/11] [Local]: deleting the xil_printf.c file as now it part
of BSP
---
libgloss/microblaze/xil_printf.c | 284 -------------------------------
1 file changed, 284 deletions(-)
delete mode 100644 libgloss/microblaze/xil_printf.c
diff --git a/libgloss/microblaze/xil_printf.c b/libgloss/microblaze/xil_printf.c
deleted file mode 100644
index f18ee8446..000000000
--- a/libgloss/microblaze/xil_printf.c
+++ /dev/null
@@ -1,284 +0,0 @@
-/* Copyright (c) 1995-2013 Xilinx, 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 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. Neither the name of Xilinx 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 HOLDER 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 <ctype.h>
-#include <string.h>
-#include <stdarg.h>
-
-extern void outbyte (char);
-
-/*----------------------------------------------------*/
-/* Use the following parameter passing structure to */
-/* make xil_printf re-entrant. */
-/*----------------------------------------------------*/
-typedef struct params_s {
- int len;
- int num1;
- int num2;
- char pad_character;
- int do_padding;
- int left_flag;
-} params_t;
-
-/*---------------------------------------------------*/
-/* The purpose of this routine is to output data the */
-/* same as the standard printf function without the */
-/* overhead most run-time libraries involve. Usually */
-/* the printf brings in many kilobytes of code and */
-/* that is unacceptable in most embedded systems. */
-/*---------------------------------------------------*/
-
-typedef char* charptr;
-typedef int (*func_ptr)(int c);
-
-/*---------------------------------------------------*/
-/* */
-/* This routine puts pad characters into the output */
-/* buffer. */
-/* */
-static void padding( const int l_flag, params_t *par)
-{
- int i;
-
- if (par->do_padding && l_flag && (par->len < par->num1))
- for (i=par->len; i<par->num1; i++)
- outbyte( par->pad_character);
-}
-
-/*---------------------------------------------------*/
-/* */
-/* This routine moves a string to the output buffer */
-/* as directed by the padding and positioning flags. */
-/* */
-static void outs( charptr lp, params_t *par)
-{
- /* pad on left if needed */
- par->len = strlen( lp);
- padding( !(par->left_flag), par);
-
- /* Move string to the buffer */
- while (*lp && (par->num2)--)
- outbyte( *lp++);
-
- /* Pad on right if needed */
- /* CR 439175 - elided next stmt. Seemed bogus. */
- /* par->len = strlen( lp); */
- padding( par->left_flag, par);
-}
-
-/*---------------------------------------------------*/
-/* */
-/* This routine moves a number to the output buffer */
-/* as directed by the padding and positioning flags. */
-/* */
-
-static void outnum( const long n, const long base, params_t *par)
-{
- charptr cp;
- int negative;
- char outbuf[32];
- const char digits[] = "0123456789ABCDEF";
- unsigned long num;
-
- /* Check if number is negative */
- if (base == 10 && n < 0L) {
- negative = 1;
- num = -(n);
- }
- else{
- num = (n);
- negative = 0;
- }
-
- /* Build number (backwards) in outbuf */
- cp = outbuf;
- do {
- *cp++ = digits[(int)(num % base)];
- } while ((num /= base) > 0);
- if (negative)
- *cp++ = '-';
- *cp-- = 0;
-
- /* Move the converted number to the buffer and */
- /* add in the padding where needed. */
- par->len = strlen(outbuf);
- padding( !(par->left_flag), par);
- while (cp >= outbuf)
- outbyte( *cp--);
- padding( par->left_flag, par);
-}
-
-/*---------------------------------------------------*/
-/* */
-/* This routine gets a number from the format */
-/* string. */
-/* */
-static int getnum( charptr* linep)
-{
- int n;
- charptr cp;
-
- n = 0;
- cp = *linep;
- while (isdigit(*cp))
- n = n*10 + ((*cp++) - '0');
- *linep = cp;
- return(n);
-}
-
-/*---------------------------------------------------*/
-/* */
-/* This routine operates just like a printf/sprintf */
-/* routine. It outputs a set of data under the */
-/* control of a formatting string. Not all of the */
-/* standard C format control are supported. The ones */
-/* provided are primarily those needed for embedded */
-/* systems work. Primarily the floaing point */
-/* routines are omitted. Other formats could be */
-/* added easily by following the examples shown for */
-/* the supported formats. */
-/* */
-
-/* void esp_printf( const func_ptr f_ptr,
- const charptr ctrl1, ...) */
-void xil_printf( const charptr ctrl1, ...)
-{
-
- int long_flag;
- int dot_flag;
-
- params_t par;
-
- char ch;
- va_list argp;
- charptr ctrl = ctrl1;
-
- va_start( argp, ctrl1);
-
- for ( ; *ctrl; ctrl++) {
-
- /* move format string chars to buffer until a */
- /* format control is found. */
- if (*ctrl != '%') {
- outbyte(*ctrl);
- continue;
- }
-
- /* initialize all the flags for this format. */
- dot_flag = long_flag = par.left_flag = par.do_padding = 0;
- par.pad_character = ' ';
- par.num2=32767;
-
- try_next:
- ch = *(++ctrl);
-
- if (isdigit(ch)) {
- if (dot_flag)
- par.num2 = getnum(&ctrl);
- else {
- if (ch == '0')
- par.pad_character = '0';
-
- par.num1 = getnum(&ctrl);
- par.do_padding = 1;
- }
- ctrl--;
- goto try_next;
- }
-
- switch (tolower(ch)) {
- case '%':
- outbyte( '%');
- continue;
-
- case '-':
- par.left_flag = 1;
- break;
-
- case '.':
- dot_flag = 1;
- break;
-
- case 'l':
- long_flag = 1;
- break;
-
- case 'd':
- if (long_flag || ch == 'D') {
- outnum( va_arg(argp, long), 10L, &par);
- continue;
- }
- else {
- outnum( va_arg(argp, int), 10L, &par);
- continue;
- }
- case 'x':
- outnum((long)va_arg(argp, int), 16L, &par);
- continue;
-
- case 's':
- outs( va_arg( argp, charptr), &par);
- continue;
-
- case 'c':
- outbyte( va_arg( argp, int));
- continue;
-
- case '\\':
- switch (*ctrl) {
- case 'a':
- outbyte( 0x07);
- break;
- case 'h':
- outbyte( 0x08);
- break;
- case 'r':
- outbyte( 0x0D);
- break;
- case 'n':
- outbyte( 0x0D);
- outbyte( 0x0A);
- break;
- default:
- outbyte( *ctrl);
- break;
- }
- ctrl++;
- break;
-
- default:
- continue;
- }
- goto try_next;
- }
- va_end( argp);
-}
-
-/*---------------------------------------------------*/
--
2.17.1