From patchwork Mon Jun 6 18:49:15 2011 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jason Hobbs X-Patchwork-Id: 98995 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from theia.denx.de (theia.denx.de [85.214.87.163]) by ozlabs.org (Postfix) with ESMTP id 98AEFB6FB2 for ; Tue, 7 Jun 2011 04:56:57 +1000 (EST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 1BE482816F; Mon, 6 Jun 2011 20:56:53 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id Rocht-suJ-l5; Mon, 6 Jun 2011 20:56:52 +0200 (CEST) Received: from theia.denx.de (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id 690DD2813D; Mon, 6 Jun 2011 20:56:42 +0200 (CEST) Received: from localhost (localhost [127.0.0.1]) by theia.denx.de (Postfix) with ESMTP id A9DA128140 for ; Mon, 6 Jun 2011 20:56:38 +0200 (CEST) X-Virus-Scanned: Debian amavisd-new at theia.denx.de Received: from theia.denx.de ([127.0.0.1]) by localhost (theia.denx.de [127.0.0.1]) (amavisd-new, port 10024) with ESMTP id pixr7AtgD7NY for ; Mon, 6 Jun 2011 20:56:36 +0200 (CEST) X-policyd-weight: NOT_IN_SBL_XBL_SPAMHAUS=-1.5 NOT_IN_SPAMCOP=-1.5 NOT_IN_BL_NJABL=-1.5 (only DNSBL check requested) Received: from smtp165.dfw.emailsrvr.com (smtp165.dfw.emailsrvr.com [67.192.241.165]) by theia.denx.de (Postfix) with ESMTPS id 06D5328122 for ; Mon, 6 Jun 2011 20:56:34 +0200 (CEST) Received: from localhost (localhost.localdomain [127.0.0.1]) by smtp16.relay.dfw1a.emailsrvr.com (SMTP Server) with ESMTP id C31A840268; Mon, 6 Jun 2011 14:50:32 -0400 (EDT) X-Virus-Scanned: OK Received: by smtp16.relay.dfw1a.emailsrvr.com (Authenticated sender: jason.hobbs-AT-calxeda.com) with ESMTPSA id 9ABB840277; Mon, 6 Jun 2011 14:50:31 -0400 (EDT) Received: by jhobbs-laptop (sSMTP sendmail emulation); Mon, 06 Jun 2011 13:50:26 -0500 From: "Jason Hobbs" To: u-boot@lists.denx.de Date: Mon, 6 Jun 2011 13:49:15 -0500 Message-Id: <1307386157-3660-2-git-send-email-jason.hobbs@calxeda.com> X-Mailer: git-send-email 1.7.0.4 In-Reply-To: <1307386157-3660-1-git-send-email-jason.hobbs@calxeda.com> References: <1307386157-3660-1-git-send-email-jason.hobbs@calxeda.com> Cc: Jason Hobbs , biggerbadderben@gmail.com Subject: [U-Boot] [PATCH 1/3] lib: add uuid_str_to_bin for use with bootp and PXE uuid X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.9 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Sender: u-boot-bounces@lists.denx.de Errors-To: u-boot-bounces@lists.denx.de Signed-off-by: Jason Hobbs --- include/uuid.h | 28 ++++++++++++++++++++++++++++ lib/Makefile | 1 + lib/uuid.c | 50 ++++++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 79 insertions(+), 0 deletions(-) create mode 100644 include/uuid.h create mode 100644 lib/uuid.c diff --git a/include/uuid.h b/include/uuid.h new file mode 100644 index 0000000..f5a242b --- /dev/null +++ b/include/uuid.h @@ -0,0 +1,28 @@ +/* + * Copyright 2011 Calxeda, Inc. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#ifndef __UUID_H_ +#define __UUID_H_ + +void uuid_str_to_bin(const char *uuid, unsigned char *out); + +#endif /* __UUID_H_ */ diff --git a/lib/Makefile b/lib/Makefile index afa6914..82b318d 100644 --- a/lib/Makefile +++ b/lib/Makefile @@ -53,6 +53,7 @@ COBJS-y += strmhz.o COBJS-y += time.o COBJS-y += vsprintf.o COBJS-$(CONFIG_RBTREE) += rbtree.o +COBJS-y += uuid.o COBJS := $(COBJS-y) SRCS := $(COBJS:.o=.c) diff --git a/lib/uuid.c b/lib/uuid.c new file mode 100644 index 0000000..edc0c9f --- /dev/null +++ b/lib/uuid.c @@ -0,0 +1,50 @@ +/* + * Copyright 2011 Calxeda, Inc. + * + * See file CREDITS for list of people who contributed to this + * project. + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License as + * published by the Free Software Foundation; either version 2 of + * the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 59 Temple Place, Suite 330, Boston, + * MA 02111-1307 USA + */ + +#include "common.h" + +/* + * 0 9 14 19 24 + * xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx + * le le le be be + */ +void uuid_str_to_bin(const char *uuid, unsigned char *out) +{ + uint16_t tmp16; + uint32_t tmp32; + uint64_t tmp64; + + tmp32 = cpu_to_le32(simple_strtoul(uuid, NULL, 16)); + memcpy(out, &tmp32, 4); + + tmp16 = cpu_to_le16(simple_strtoul(uuid + 9, NULL, 16)); + memcpy(out + 4, &tmp16, 2); + + tmp16 = cpu_to_le16(simple_strtoul(uuid + 14, NULL, 16)); + memcpy(out + 6, &tmp16, 2); + + tmp16 = cpu_to_be16(simple_strtoul(uuid + 19, NULL, 16)); + memcpy(out + 8, &tmp16, 2); + + tmp64 = cpu_to_be64(simple_strtoull(uuid + 24, NULL, 16)); + memcpy(out + 10, (char *)&tmp64 + 2, 6); +}