[PATCH 1/2] misc: introduce string_to_bin
Baruch Siach
baruch at tkos.co.il
Thu Aug 19 08:37:12 EDT 2010
Hi Jean-Christophe,
On Thu, Aug 19, 2010 at 08:43:48AM +0200, Jean-Christophe PLAGNIOL-VILLARD wrote:
> On 17:13 Thu 05 Aug , Baruch Siach wrote:
> > On Thu, Aug 05, 2010 at 03:41:14PM +0200, Jean-Christophe PLAGNIOL-VILLARD
> > wrote:
> > > On 15:43 Thu 05 Aug , Baruch Siach wrote:
> > > > On Thu, Aug 05, 2010 at 02:23:49PM +0200, Jean-Christophe PLAGNIOL-VILLARD
> > > > wrote:
> > > > > how about use the kernel printf format instead
> > > >
> > > > How can I use printf to convert a string representation to binary?
> > > as example for ethernet address on the kernel we use %M or for UUID we %U to
> > > print it in the right format. so take a look on vsprintf.c
> >
> > This is good for converting binary values to strings, not the other way around
> > as we do here.
> It's the same here u can do %xs to print it as hexa so it will be easier to
> use
Apparently I'm missing something obvious here. I'll try to clarify how I see
things. Feel free to correct my understanding.
The various printf() variants take binary data as an argument, and translate
it into a string representation, according to the format string.
The purposed string_to_bin() function does the opposite. It takes a string
argument
const char* mac_str = "01:02:03:04:05:06";
and return the binary equivalent of this string in the buf pointer:
u8 mac[6];
string_to_bin(mac_str, mac, 6)
now the mac[] array contains the binary representation of the string mac_str,
in big-endian order.
I've found no way to do the same with printf.
baruch
--
~. .~ Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
- baruch at tkos.co.il - tel: +972.2.679.5364, http://www.tkos.co.il -
More information about the barebox
mailing list