blob: aaf9edee7e1d66620949e3d97c75e989eaced499 [file] [log] [blame]
/* putnum.c -- put a hex number on the output device.
*
* Copyright (c) 1995 Cygnus Support
*
* The authors hereby grant permission to use, copy, modify, distribute,
* and license this software and its documentation for any purpose, provided
* that existing copyright notices are retained in all copies and that this
* notice is included verbatim in any distributions. No written agreement,
* license, or royalty fee is required for any of the authorized uses.
* Modifications to this software may be copyrighted by their authors
* and need not follow the licensing terms described here, provided that
* the new terms are clearly indicated on the first page of each file where
* they apply.
*/
/*
* putnum -- print a 32 bit number in hex
*/
/***************************** Include Files *********************************/
#include "xil_types.h"
/************************** Function Prototypes ******************************/
extern void print (const char8 *ptr);
void putnum(u32 num);
void putnum(u32 num)
{
char8 buf[9];
s32 cnt;
s32 i;
char8 *ptr;
u32 digit;
for(i = 0; i<9; i++) {
buf[i] = '0';
}
ptr = buf;
for (cnt = 7 ; cnt >= 0 ; cnt--) {
digit = (num >> (cnt * 4U)) & 0x0000000fU;
if ((digit <= 9U) && (ptr != NULL)) {
digit += (u32)'0';
*ptr = ((char8) digit);
ptr += 1;
} else if (ptr != NULL) {
digit += ((u32)'a' - (u32)10);
*ptr = ((char8)digit);
ptr += 1;
} else {
/*Made for MisraC Compliance*/;
}
}
if(ptr != NULL) {
*ptr = (char8) 0;
}
print (buf);
}