1 /*******************************************************************************
2 *Copyright (c) 2014 PMC-Sierra, Inc.  All rights reserved.
3 *
4 *Redistribution and use in source and binary forms, with or without modification, are permitted provided
5 *that the following conditions are met:
6 *1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
7 *following disclaimer.
8 *2. Redistributions in binary form must reproduce the above copyright notice,
9 *this list of conditions and the following disclaimer in the documentation and/or other materials provided
10 *with the distribution.
11 *
12 *THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED
13 *WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
14 *FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
15 *FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT
16 *NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR
17 *BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
18 *LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
19 *SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
20 *
21 * $FreeBSD$
22 *
23 ********************************************************************************/
24 /*******************************************************************************/
25 /** \file
26  *
27  * The file defines utilities for SAS/SATA TD layer
28  *
29  */
30 
31 #ifndef __TDUTIL_H__
32 #define __TDUTIL_H__
33 
34 #include <dev/pms/RefTisa/sallsdk/api/sa.h>
35 #include <dev/pms/RefTisa/tisa/api/tidefs.h>
36 #include <dev/pms/RefTisa/tisa/api/titypes.h>
37 #include <dev/pms/RefTisa/tisa/api/tiapi.h>
38 #include <dev/pms/RefTisa/tisa/sassata/common/tdlist.h>
39 
40 
41 #define HEXDIGIT2CHAR(x)     (((x) < 10) ? ('0' + (x)) : ('A' + ((x) - 10)))
42 /*****************************************************************************
43 *! \brief tdDecimal2String
44 *
45 *  Purpose:  This function converts a given number into a decimal string.
46 *
47 *  \param s:                  string to be generated
48 *  \param num:                number to be converted
49 *
50 *  \return None
51 *
52 *  \note - string s should be large enough to store decimal string of
53 *        num and a '\0' character
54 *
55 *****************************************************************************/
56 void
57 tdDecimal2String(
58   char *s,
59   bit32 num
60   );
61 
62 void
63 tdHexToString (
64   char  *String,
65   bit32  Value1,
66   bit32  Value2,
67   bit32  Strlength
68   );
69 
70 bit8 tdStr2Bit8 (char *buffer);
71 
72 bit32 tdStr2ALPA (char *buffer);
73 
74 void tdStr2WWN (char *buffer, bit8 * NodeName);
75 
76 void tdWWN2Str (char *buffer, bit8 * NodeName);
77 
78 /*****************************************************************************
79 *! \brief tdNextPowerOf2
80 *
81 *  Purpose:  This function is called to calculate the next power of 2
82 *            value of given value.
83 *
84 *
85 *  \param  Value:             The value for which next power of 2 is requested
86 *
87 *  \return: The next power of 2 value of given Value
88 *
89 *****************************************************************************/
90 bit32
91 tdNextPowerOf2 (
92   bit32 Value
93   );
94 
95 osGLOBAL agBOOLEAN
96 tdListElementOnList(
97     tdList_t *toFindHdr,
98     tdList_t *listHdr
99     );
100 
101 
102 #endif /* __TDUTIL_H__ */
103 
104 
105 
106