Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

/*******************************************************************************
*Copyright (c) 2014 PMC-Sierra, Inc.  All rights reserved. 
*
*Redistribution and use in source and binary forms, with or without modification, are permitted provided 
*that the following conditions are met: 
*1. Redistributions of source code must retain the above copyright notice, this list of conditions and the
*following disclaimer. 
*2. Redistributions in binary form must reproduce the above copyright notice, 
*this list of conditions and the following disclaimer in the documentation and/or other materials provided
*with the distribution. 
*
*THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND ANY EXPRESS OR IMPLIED 
*WARRANTIES,INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
*FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE
*FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT 
*NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR 
*BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 
*LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS 
*SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE
*
* $FreeBSD$
*
********************************************************************************/
/*******************************************************************************/
/** \file
 *
 * The file defines utilities for SAS/SATA TD layer
 *
 */

#ifndef __TDUTIL_H__
#define __TDUTIL_H__

#include <dev/pms/RefTisa/sallsdk/api/sa.h>
#include <dev/pms/RefTisa/tisa/api/tidefs.h>
#include <dev/pms/RefTisa/tisa/api/titypes.h>
#include <dev/pms/RefTisa/tisa/api/tiapi.h>
#include <dev/pms/RefTisa/tisa/sassata/common/tdlist.h>


#define HEXDIGIT2CHAR(x)     (((x) < 10) ? ('0' + (x)) : ('A' + ((x) - 10)))
/*****************************************************************************
*! \brief tdDecimal2String
*
*  Purpose:  This function converts a given number into a decimal string.
*            
*  \param s:                  string to be generated
*  \param num:                number to be converted
*
*  \return None
*
*  \note - string s should be large enough to store decimal string of
*        num and a '\0' character
*
*****************************************************************************/
void 
tdDecimal2String(
  char *s, 
  bit32 num
  );

void
tdHexToString (
  char  *String,
  bit32  Value1,
  bit32  Value2,
  bit32  Strlength
  );

bit8 tdStr2Bit8 (char *buffer);

bit32 tdStr2ALPA (char *buffer);

void tdStr2WWN (char *buffer, bit8 * NodeName);

void tdWWN2Str (char *buffer, bit8 * NodeName);

/*****************************************************************************
*! \brief tdNextPowerOf2
*
*  Purpose:  This function is called to calculate the next power of 2
*            value of given value.
*            
*
*  \param  Value:             The value for which next power of 2 is requested
*
*  \return: The next power of 2 value of given Value
*
*****************************************************************************/
bit32 
tdNextPowerOf2 (
  bit32 Value
  );

osGLOBAL agBOOLEAN
tdListElementOnList(
    tdList_t *toFindHdr,
    tdList_t *listHdr
    );


#endif /* __TDUTIL_H__ */