]>
Commit | Line | Data |
---|---|---|
83d290c5 | 1 | /* SPDX-License-Identifier: Intel */ |
752a0b08 BM |
2 | /* |
3 | * Copyright (C) 2013, Intel Corporation | |
4 | * Copyright (C) 2014, Bin Meng <[email protected]> | |
752a0b08 BM |
5 | */ |
6 | ||
6ef1b750 SG |
7 | #ifndef __SIGNATURES_H__ |
8 | #define __SIGNATURES_H__ | |
752a0b08 | 9 | |
752a0b08 BM |
10 | /** |
11 | * Returns a 16-bit signature built from 2 ASCII characters. | |
12 | * | |
13 | * This macro returns a 16-bit value built from the two ASCII characters | |
14 | * specified by A and B. | |
15 | * | |
16 | * @A: The first ASCII character. | |
17 | * @B: The second ASCII character. | |
18 | * | |
19 | * @return: A 16-bit value built from the two ASCII characters specified by | |
20 | * A and B. | |
21 | */ | |
22 | #define SIGNATURE_16(A, B) ((A) | (B << 8)) | |
23 | ||
24 | /** | |
25 | * Returns a 32-bit signature built from 4 ASCII characters. | |
26 | * | |
27 | * This macro returns a 32-bit value built from the four ASCII characters | |
28 | * specified by A, B, C, and D. | |
29 | * | |
30 | * @A: The first ASCII character. | |
31 | * @B: The second ASCII character. | |
32 | * @C: The third ASCII character. | |
33 | * @D: The fourth ASCII character. | |
34 | * | |
35 | * @return: A 32-bit value built from the two ASCII characters specified by | |
36 | * A, B, C and D. | |
37 | */ | |
38 | #define SIGNATURE_32(A, B, C, D) \ | |
39 | (SIGNATURE_16(A, B) | (SIGNATURE_16(C, D) << 16)) | |
40 | ||
41 | /** | |
42 | * Returns a 64-bit signature built from 8 ASCII characters. | |
43 | * | |
44 | * This macro returns a 64-bit value built from the eight ASCII characters | |
45 | * specified by A, B, C, D, E, F, G,and H. | |
46 | * | |
47 | * @A: The first ASCII character. | |
48 | * @B: The second ASCII character. | |
49 | * @C: The third ASCII character. | |
50 | * @D: The fourth ASCII character. | |
51 | * @E: The fifth ASCII character. | |
52 | * @F: The sixth ASCII character. | |
53 | * @G: The seventh ASCII character. | |
54 | * @H: The eighth ASCII character. | |
55 | * | |
56 | * @return: A 64-bit value built from the two ASCII characters specified by | |
57 | * A, B, C, D, E, F, G and H. | |
58 | */ | |
59 | #define SIGNATURE_64(A, B, C, D, E, F, G, H) \ | |
60 | (SIGNATURE_32(A, B, C, D) | ((u64)(SIGNATURE_32(E, F, G, H)) << 32)) | |
61 | ||
6ef1b750 | 62 | #endif /* __SIGNATURES_H__ */ |