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