bsp: xil_printf: Handle 'u' conversions
Signed-off-by: Soren Brinkmann <soren.brinkmann@xilinx.com>
This commit is contained in:
parent
3620711f05
commit
ef374e062b
4 changed files with 28 additions and 7 deletions
|
@ -24,6 +24,7 @@ typedef struct params_s {
|
|||
char8 pad_character;
|
||||
s32 do_padding;
|
||||
s32 left_flag;
|
||||
s32 unsigned_flag;
|
||||
} params_t;
|
||||
|
||||
|
||||
|
@ -104,7 +105,7 @@ static void outnum( const s32 n, const s32 base, struct params_s *par)
|
|||
}
|
||||
|
||||
/* Check if number is negative */
|
||||
if ((base == 10) && (n < 0L)) {
|
||||
if ((par->unsigned_flag == 0) && (base == 10) && (n < 0L)) {
|
||||
negative = 1;
|
||||
num =(-(n));
|
||||
}
|
||||
|
@ -215,6 +216,7 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
/* initialize all the flags for this format. */
|
||||
dot_flag = 0;
|
||||
long_flag = 0;
|
||||
par.unsigned_flag = 0;
|
||||
par.left_flag = 0;
|
||||
par.do_padding = 0;
|
||||
par.pad_character = ' ';
|
||||
|
@ -275,6 +277,9 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
Check = 0;
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
par.unsigned_flag = 1;
|
||||
/* fall through */
|
||||
case 'i':
|
||||
case 'd':
|
||||
if ((long_flag != 0) || (ch == 'D')) {
|
||||
|
@ -288,6 +293,7 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
case 'p':
|
||||
case 'X':
|
||||
case 'x':
|
||||
par.unsigned_flag = 1;
|
||||
outnum((s32)va_arg(argp, s32), 16L, &par);
|
||||
Check = 1;
|
||||
break;
|
||||
|
|
|
@ -19,11 +19,11 @@ typedef struct params_s {
|
|||
char8 pad_character;
|
||||
s32 do_padding;
|
||||
s32 left_flag;
|
||||
s32 unsigned_flag;
|
||||
} params_t;
|
||||
|
||||
static void padding( const s32 l_flag,const params_t *par);
|
||||
static void outs(const charptr lp, params_t *par);
|
||||
static void outnum( const s32 n, const s32 base, params_t *par);
|
||||
static s32 getnum( charptr* linep);
|
||||
|
||||
/*---------------------------------------------------*/
|
||||
|
@ -99,7 +99,7 @@ static void outnum( const s32 n, const s32 base, params_t *par)
|
|||
}
|
||||
|
||||
/* Check if number is negative */
|
||||
if ((base == 10) && (n < 0L)) {
|
||||
if ((par->unsigned_flag == 0) && (base == 10) && (n < 0L)) {
|
||||
negative = 1;
|
||||
num =(-(n));
|
||||
}
|
||||
|
@ -206,6 +206,7 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
/* initialize all the flags for this format. */
|
||||
dot_flag = 0;
|
||||
long_flag = 0;
|
||||
par.unsigned_flag = 0;
|
||||
par.left_flag = 0;
|
||||
par.do_padding = 0;
|
||||
par.pad_character = ' ';
|
||||
|
@ -264,6 +265,9 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
Check = 0;
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
par.unsigned_flag = 1;
|
||||
/* fall through */
|
||||
case 'i':
|
||||
case 'd':
|
||||
if ((long_flag != 0) || (ch == 'D')) {
|
||||
|
@ -277,6 +281,7 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
case 'p':
|
||||
case 'X':
|
||||
case 'x':
|
||||
par.unsigned_flag = 1;
|
||||
outnum((s32)va_arg(argp, s32), 16L, &par);
|
||||
Check = 1;
|
||||
break;
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
static void padding( const s32 l_flag,const struct params_s *par);
|
||||
static void outs(const charptr lp, struct params_s *par);
|
||||
static void outnum( const s32 n, const s32 base, struct params_s *par);
|
||||
static s32 getnum( charptr* linep);
|
||||
|
||||
typedef struct params_s {
|
||||
|
@ -24,6 +23,7 @@ typedef struct params_s {
|
|||
char8 pad_character;
|
||||
s32 do_padding;
|
||||
s32 left_flag;
|
||||
s32 unsigned_flag;
|
||||
} params_t;
|
||||
|
||||
|
||||
|
@ -104,7 +104,7 @@ static void outnum( const s32 n, const s32 base, struct params_s *par)
|
|||
}
|
||||
|
||||
/* Check if number is negative */
|
||||
if ((base == 10) && (n < 0L)) {
|
||||
if ((par->unsigned_flag == 0) && (base == 10) && (n < 0L)) {
|
||||
negative = 1;
|
||||
num =(-(n));
|
||||
}
|
||||
|
@ -215,6 +215,7 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
/* initialize all the flags for this format. */
|
||||
dot_flag = 0;
|
||||
long_flag = 0;
|
||||
par.unsigned_flag = 0;
|
||||
par.left_flag = 0;
|
||||
par.do_padding = 0;
|
||||
par.pad_character = ' ';
|
||||
|
@ -275,6 +276,9 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
Check = 0;
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
par.unsigned_flag = 1;
|
||||
/* fall through */
|
||||
case 'i':
|
||||
case 'd':
|
||||
if ((long_flag != 0) || (ch == 'D')) {
|
||||
|
@ -288,6 +292,7 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
case 'p':
|
||||
case 'X':
|
||||
case 'x':
|
||||
par.unsigned_flag = 1;
|
||||
outnum((s32)va_arg(argp, s32), 16L, &par);
|
||||
Check = 1;
|
||||
break;
|
||||
|
|
|
@ -14,7 +14,6 @@
|
|||
|
||||
static void padding( const s32 l_flag,const struct params_s *par);
|
||||
static void outs(const charptr lp, struct params_s *par);
|
||||
static void outnum( const s32 n, const s32 base, struct params_s *par);
|
||||
static s32 getnum( charptr* linep);
|
||||
|
||||
typedef struct params_s {
|
||||
|
@ -24,6 +23,7 @@ typedef struct params_s {
|
|||
char8 pad_character;
|
||||
s32 do_padding;
|
||||
s32 left_flag;
|
||||
s32 unsigned_flag;
|
||||
} params_t;
|
||||
|
||||
|
||||
|
@ -104,7 +104,7 @@ static void outnum( const s32 n, const s32 base, struct params_s *par)
|
|||
}
|
||||
|
||||
/* Check if number is negative */
|
||||
if ((base == 10) && (n < 0L)) {
|
||||
if ((par->unsigned_flag == 0) && (base == 10) && (n < 0L)) {
|
||||
negative = 1;
|
||||
num =(-(n));
|
||||
}
|
||||
|
@ -215,6 +215,7 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
/* initialize all the flags for this format. */
|
||||
dot_flag = 0;
|
||||
long_flag = 0;
|
||||
par.unsigned_flag = 0;
|
||||
par.left_flag = 0;
|
||||
par.do_padding = 0;
|
||||
par.pad_character = ' ';
|
||||
|
@ -275,6 +276,9 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
Check = 0;
|
||||
break;
|
||||
|
||||
case 'u':
|
||||
par.unsigned_flag = 1;
|
||||
/* fall through */
|
||||
case 'i':
|
||||
case 'd':
|
||||
if ((long_flag != 0) || (ch == 'D')) {
|
||||
|
@ -288,6 +292,7 @@ void xil_printf( const char8 *ctrl1, ...)
|
|||
case 'p':
|
||||
case 'X':
|
||||
case 'x':
|
||||
par.unsigned_flag = 1;
|
||||
outnum((s32)va_arg(argp, s32), 16L, &par);
|
||||
Check = 1;
|
||||
break;
|
||||
|
|
Loading…
Add table
Reference in a new issue