Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ea5cc87c authored by Arnaldo Carvalho de Melo's avatar Arnaldo Carvalho de Melo Committed by Ingo Molnar
Browse files

perf_counter tools: Add string.[ch]



Add hex conversion libraries. We are going to replace sscanf()
uses with them.

Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
LKML-Reference: <new-submission>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent 229c4eed
Loading
Loading
Loading
Loading
+34 −0
Original line number Diff line number Diff line
#include "string.h"

static int hex(char ch)
{
	if ((ch >= '0') && (ch <= '9'))
		return ch - '0';
	if ((ch >= 'a') && (ch <= 'f'))
		return ch - 'a' + 10;
	if ((ch >= 'A') && (ch <= 'F'))
		return ch - 'A' + 10;
	return -1;
}

/*
 * While we find nice hex chars, build a long_val.
 * Return number of chars processed.
 */
int hex2u64(const char *ptr, __u64 *long_val)
{
	const char *p = ptr;
	*long_val = 0;

	while (*p) {
		const int hex_val = hex(*p);

		if (hex_val < 0)
			break;

		*long_val = (*long_val << 4) | hex_val;
		p++;
	}

	return p - ptr;
}
+8 −0
Original line number Diff line number Diff line
#ifndef _PERF_STRING_H_
#define _PERF_STRING_H_

#include <linux/types.h>

int hex2u64(const char *ptr, __u64 *val);

#endif