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 *
22 ********************************************************************************/
23 /*******************************************************************************/
24 /** \file
25  *
26  * The file defines utilities for SAS/SATA TD layer
27  *
28  */
29 
30 #ifndef __TDUTIL_H__
31 #define __TDUTIL_H__
32 
33 #include <dev/pms/RefTisa/sallsdk/api/sa.h>
34 #include <dev/pms/RefTisa/tisa/api/tidefs.h>
35 #include <dev/pms/RefTisa/tisa/api/titypes.h>
36 #include <dev/pms/RefTisa/tisa/api/tiapi.h>
37 #include <dev/pms/RefTisa/tisa/sassata/common/tdlist.h>
38 
39 
40 #define HEXDIGIT2CHAR(x)     (((x) < 10) ? ('0' + (x)) : ('A' + ((x) - 10)))
41 /*****************************************************************************
42 *! \brief tdDecimal2String
43 *
44 *  Purpose:  This function converts a given number into a decimal string.
45 *
46 *  \param s:                  string to be generated
47 *  \param num:                number to be converted
48 *
49 *  \return None
50 *
51 *  \note - string s should be large enough to store decimal string of
52 *        num and a '\0' character
53 *
54 *****************************************************************************/
55 void
56 tdDecimal2String(
57   char *s,
58   bit32 num
59   );
60 
61 void
62 tdHexToString (
63   char  *String,
64   bit32  Value1,
65   bit32  Value2,
66   bit32  Strlength
67   );
68 
69 bit8 tdStr2Bit8 (char *buffer);
70 
71 bit32 tdStr2ALPA (char *buffer);
72 
73 void tdStr2WWN (char *buffer, bit8 * NodeName);
74 
75 void tdWWN2Str (char *buffer, bit8 * NodeName);
76 
77 /*****************************************************************************
78 *! \brief tdNextPowerOf2
79 *
80 *  Purpose:  This function is called to calculate the next power of 2
81 *            value of given value.
82 *
83 *
84 *  \param  Value:             The value for which next power of 2 is requested
85 *
86 *  \return: The next power of 2 value of given Value
87 *
88 *****************************************************************************/
89 bit32
90 tdNextPowerOf2 (
91   bit32 Value
92   );
93 
94 osGLOBAL agBOOLEAN
95 tdListElementOnList(
96     tdList_t *toFindHdr,
97     tdList_t *listHdr
98     );
99 
100 
101 #endif /* __TDUTIL_H__ */
102 
103 
104 
105