/
githubmirror
/
ipxe
Обзор
Документация
Войти
/
githubmirror
/
ipxe
Код
Запросы
0
Пакеты
0
Релизы
0
Аналитика
Безопасность
master
src/core/uuid.c
84 строки
2 KB
Michael Brown
[build] Mark core files as permitted for UEFI Secure Boot
14 янв 2026, 16:25
14 янв 2026, 16:25
6cccb3b
Код
Авторство
О чём код?
/* * Copyright (C) 2007 Michael Brown <mbrown@fensystems.co.uk>. * * 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 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., 51 Franklin Street, Fifth Floor, Boston, MA * 02110-1301, USA. * * You can also choose to distribute this program under the terms of * the Unmodified Binary Distribution Licence (as given in the file * COPYING.UBDL), provided that you have satisfied its requirements. */ FILE_LICENCE ( GPL2_OR_LATER_OR_UBDL ); FILE_SECBOOT ( PERMITTED ); #include <stdint.h> #include <stdio.h> #include <errno.h> #include <byteswap.h> #include <ipxe/base16.h> #include <ipxe/uuid.h> /** @file * * Universally unique IDs * */ /** * Convert UUID to printable string * * @v uuid UUID * @ret string UUID in canonical form */ const char * uuid_ntoa ( const union uuid *uuid ) { static char buf[37]; /* "00000000-0000-0000-0000-000000000000" */ sprintf ( buf, "%08x-%04x-%04x-%04x-%02x%02x%02x%02x%02x%02x", be32_to_cpu ( uuid->canonical.a ), be16_to_cpu ( uuid->canonical.b ), be16_to_cpu ( uuid->canonical.c ), be16_to_cpu ( uuid->canonical.d ), uuid->canonical.e[0], uuid->canonical.e[1], uuid->canonical.e[2], uuid->canonical.e[3], uuid->canonical.e[4], uuid->canonical.e[5] ); return buf; } /** * Parse UUID * * @v string UUID string * @v uuid UUID to fill in * @ret rc Return status code */ int uuid_aton ( const char *string, union uuid *uuid ) { int len; int rc; /* Decode as hex string with optional '-' separator */ len = hex_decode ( ( '-' | HEX_DECODE_OPTIONAL ), string, uuid->raw, sizeof ( *uuid ) ); if ( len < 0 ) { rc = len; return rc; } /* Check length */ if ( len != sizeof ( *uuid ) ) return -EINVAL; return 0; }