| /** @file |
| |
| Copyright (c) 2017, Linaro. All rights reserved. |
| |
| This program and the accompanying materials |
| are licensed and made available under the terms and conditions of the BSD License |
| which accompanies this distribution. The full text of the license may be found at |
| http://opensource.org/licenses/bsd-license.php |
| |
| THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS, |
| WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED. |
| |
| **/ |
| |
| #ifndef __USB_SERIAL_NUMBER_LIB_H__ |
| #define __USB_SERIAL_NUMBER_LIB_H__ |
| |
| #include <Uefi.h> |
| |
| #define SERIAL_NUMBER_SIZE 17 |
| |
| typedef struct { |
| UINT64 Magic; |
| UINT64 Data; |
| CHAR16 UnicodeSN[SERIAL_NUMBER_SIZE]; |
| } RANDOM_SERIAL_NUMBER; |
| |
| EFI_STATUS |
| GenerateUsbSNBySeed ( |
| IN UINT32 Seed, |
| OUT RANDOM_SERIAL_NUMBER *RandomSN |
| ); |
| |
| EFI_STATUS |
| GenerateUsbSN ( |
| OUT CHAR16 *UnicodeSN |
| ); |
| |
| EFI_STATUS |
| AssignUsbSN ( |
| IN CHAR8 *AsciiCmd, |
| OUT CHAR16 *UnicodeSN |
| ); |
| |
| EFI_STATUS |
| LoadSNFromBlock ( |
| IN EFI_HANDLE FlashHandle, |
| IN EFI_LBA Lba, |
| OUT CHAR16 *UnicodeSN |
| ); |
| |
| EFI_STATUS |
| StoreSNToBlock ( |
| IN EFI_HANDLE FlashHandle, |
| IN EFI_LBA Lba, |
| IN CHAR16 *UnicodeSN |
| ); |
| |
| #endif /* __USB_SERIAL_NUMBER_LIB_H__ */ |