Logo Search packages:      
Sourcecode: linux-fsl-imx51 version File versions  Download package

fsl_shw_rand.c

/*
 * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved.
 */

/*
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/*!
 * @file fsl_shw_rand.c
 *
 * This file implements Random Number Generation functions of the FSL SHW API
 * for Sahara.
 */

#include "sahara.h"
#include "sf_util.h"

#ifdef __KERNEL__
EXPORT_SYMBOL(fsl_shw_get_random);
#endif

/* REQ-S2LRD-PINTFC-API-BASIC-RNG-002 */
/*!
 * Get a random number
 *
 *
 * @param    user_ctx
 * @param    length
 * @param    data
 *
 * @return    A return code of type #fsl_shw_return_t.
 */
00039 fsl_shw_return_t fsl_shw_get_random(fsl_shw_uco_t * user_ctx,
                            uint32_t length, uint8_t * data)
{
      SAH_SF_DCLS;

      /* perform a sanity check on the uco */
      ret = sah_validate_uco(user_ctx);
      if (ret != FSL_RETURN_OK_S) {
            goto out;
      }

      header = SAH_HDR_RNG_GENERATE;      /* Desc. #18 */
      DESC_OUT_OUT(header, length, data, 0, NULL);

      SAH_SF_EXECUTE();

      out:
      SAH_SF_DESC_CLEAN();

      return ret;
}

#ifdef __KERNEL__
EXPORT_SYMBOL(fsl_shw_add_entropy);
#endif

/*!
 * Add entropy to a random number generator

 * @param    user_ctx
 * @param    length
 * @param    data
 *
 * @return    A return code of type #fsl_shw_return_t.
 */
00074 fsl_shw_return_t fsl_shw_add_entropy(fsl_shw_uco_t * user_ctx,
                             uint32_t length, uint8_t * data)
{
      SAH_SF_DCLS;

      /* perform a sanity check on the uco */
      ret = sah_validate_uco(user_ctx);
      if (ret != FSL_RETURN_OK_S) {
            goto out;
      }

      header = SAH_HDR_RNG_GENERATE;      /* Desc. #18 */

      /* create descriptor #18. Generate random data */
      DESC_IN_IN(header, 0, NULL, length, data)

          SAH_SF_EXECUTE();

      out:
      SAH_SF_DESC_CLEAN();

      return ret;
}

Generated by  Doxygen 1.6.0   Back to index