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