123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172 |
- /** \addtogroup hal */
- /** @{*/
- /* mbed Microcontroller Library
- * Copyright (c) 2016 ARM Limited
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
- #ifndef MBED_TRNG_API_H
- #define MBED_TRNG_API_H
- #include <stddef.h>
- #include "device.h"
- #if DEVICE_TRNG
- /** TRNG HAL structure. trng_s is declared in the target's HAL
- */
- typedef struct trng_s trng_t;
- #ifdef __cplusplus
- extern "C" {
- #endif
- /**
- * \defgroup hal_trng TRNG hal functions
- * @{
- */
- /** Initialize the TRNG peripheral
- *
- * @param obj The TRNG object
- */
- void trng_init(trng_t *obj);
- /** Deinitialize the TRNG peripheral
- *
- * @param obj The TRNG object
- */
- void trng_free(trng_t *obj);
- /** Get random data from TRNG peripheral
- *
- * @param obj The TRNG object
- * @param output The pointer to an output array
- * @param length The size of output data, to avoid buffer overwrite
- * @param output_length The length of generated data
- * @return 0 success, -1 fail
- */
- int trng_get_bytes(trng_t *obj, uint8_t *output, size_t length, size_t *output_length);
- /**@}*/
- #ifdef __cplusplus
- }
- #endif
- #endif
- #endif
- /** @}*/
|