4 * DSP-BIOS Bridge driver support functions for TI OMAP processors.
6 * This file contains the implementation of UUID helper functions.
8 * Copyright (C) 2005-2006 Texas Instruments, Inc.
10 * This package is free software; you can redistribute it and/or modify
11 * it under the terms of the GNU General Public License version 2 as
12 * published by the Free Software Foundation.
14 * THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
15 * IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
16 * WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
18 #include <linux/types.h>
20 /* ----------------------------------- Host OS */
21 #include <dspbridge/host_os.h>
23 /* ----------------------------------- DSP/BIOS Bridge */
24 #include <dspbridge/dbdefs.h>
26 /* ----------------------------------- Trace & Debug */
27 #include <dspbridge/dbc.h>
29 /* ----------------------------------- This */
30 #include <dspbridge/uuidutil.h>
33 * ======== uuid_uuid_to_string ========
35 * Converts a struct dsp_uuid to a string.
36 * Note: snprintf format specifier is:
37 * %[flags] [width] [.precision] [{h | l | I64 | L}]type
39 void uuid_uuid_to_string(struct dsp_uuid
*uuid_obj
, char *sz_uuid
,
42 s32 i
; /* return result from snprintf. */
44 DBC_REQUIRE(uuid_obj
&& sz_uuid
);
46 i
= snprintf(sz_uuid
, size
,
47 "%.8X_%.4X_%.4X_%.2X%.2X_%.2X%.2X%.2X%.2X%.2X%.2X",
48 uuid_obj
->data1
, uuid_obj
->data2
, uuid_obj
->data3
,
49 uuid_obj
->data4
, uuid_obj
->data5
,
50 uuid_obj
->data6
[0], uuid_obj
->data6
[1],
51 uuid_obj
->data6
[2], uuid_obj
->data6
[3],
52 uuid_obj
->data6
[4], uuid_obj
->data6
[5]);
57 static s32
uuid_hex_to_bin(char *buf
, s32 len
)
63 for (i
= 0; i
< len
; i
++) {
64 value
= hex_to_bin(*buf
++);
74 * ======== uuid_uuid_from_string ========
76 * Converts a string to a struct dsp_uuid.
78 void uuid_uuid_from_string(char *sz_uuid
, struct dsp_uuid
*uuid_obj
)
82 uuid_obj
->data1
= uuid_hex_to_bin(sz_uuid
, 8);
85 /* Step over underscore */
88 uuid_obj
->data2
= (u16
) uuid_hex_to_bin(sz_uuid
, 4);
91 /* Step over underscore */
94 uuid_obj
->data3
= (u16
) uuid_hex_to_bin(sz_uuid
, 4);
97 /* Step over underscore */
100 uuid_obj
->data4
= (u8
) uuid_hex_to_bin(sz_uuid
, 2);
103 uuid_obj
->data5
= (u8
) uuid_hex_to_bin(sz_uuid
, 2);
106 /* Step over underscore */
109 for (j
= 0; j
< 6; j
++) {
110 uuid_obj
->data6
[j
] = (u8
) uuid_hex_to_bin(sz_uuid
, 2);