/******************************************************************************/
/* Component Name   ICU-M Interface Library (ICUMIF)                          */
/******************************************************************************/
/* Product      : ICU-M Firmware                                              */
/******************************************************************************/
/*******************************************************************************
* Copyright(C) 2021-2023 Renesas Electronics Corporation.                       
*                                                                               
*          RENESAS ELECTRONICS CONFIDENTIAL AND PROPRIETARY                     
*                                                                               
* These instructions, statements, and programs are the confidential information 
* of Renesas Electronics Corporation. They must be used and modified solely for 
* the purpose for which it was furnished by Renesas Electronics Corporation.    
* All part of them must not be reproduced nor disclosed to others in any form,  
* without the prior written permission of Renesas Electronics Corporation.      
*******************************************************************************/
#if !defined(R_ICUMIF_API_RAND_GENERATE_H)
#define R_ICUMIF_API_RAND_GENERATE_H

/**********************************************************************************/
/* Service parameters                                                             */
/**********************************************************************************/

typedef enum
{
    RAND_NO_TEST,
    RAND_DIAG_P1_TEST,
    RAND_DIAG_P2_TEST,
    RAND_HEALTH_TEST,

    LAST_ITEM_RAND_TEST = 0x01000000
} r_rand_test_t;

typedef struct _ISD_RAND_INIT
{
    r_rand_test_t   online_test;
}
ISD_RAND_INIT_t;

typedef struct _ISD_RAND_EXTEND_SEED
{
    union
    {
        const uint32_t  *p_entropy;
        const uint64_t  padding_sys64;
    } ptr;
}
ISD_RAND_EXTEND_SEED_t;

typedef struct ISD_RAND_GENERATE
{
    union
    {
        uint32_t        *p_block_out;
        uint64_t        padding_sys64;
    } ptr;
    uint32_t            nb_blocks;
    r_job_slice_t       job_slice;
}
ISD_RAND_GENERATE_t;

#endif /* R_ICUMIF_API_RAND_GENERATE_H */
