/**
 * Describes common utility functions shared between CPER projects within this repository.
 * No functions here depend on json-c or b64.c.
 *
 * Author: Lawrence.Tang@arm.com
 **/

#include "edk/BaseTypes.h"
#include "common-utils.h"

//Converts the given BCD byte to a standard integer.
int bcd_to_int(UINT8 bcd)
{
	return ((bcd & 0xF0) >> 4) * 10 + (bcd & 0x0F);
}

//Converts the given integer to a single byte BCD.
UINT8 int_to_bcd(int value)
{
	UINT8 result = 0;
	int shift = 0;
	while (value > 0) {
		result |= (value % 10) << (shift++ << 2);
		value /= 10;
	}

	return result;
}