All Data Structures Functions Variables Typedefs Enumerations Enumerator Groups Pages
LTC Non-blocking eDMA APIs
LTC: LP Trusted Cryptography

## Overview

This section describes the programming interface of the LTC eDMA Non Blocking functions

## Modules

| LTC eDMA AES driver
| LTC eDMA DES driver

## Data Structures

struct | ltc_edma_handle_t
| LTC eDMA handle. More...

## Typedefs

typedef void(* | ltc_edma_callback_t )(LTC_Type *base, ltc_edma_handle_t *handle, status_t status, void *userData)
| LTC eDMA callback function. More...
typedef status_t(* | ltc_edma_state_machine_t )(LTC_Type *base, ltc_edma_handle_t *handle)
| LTC eDMA state machine function. More...

## Functions

void | LTC_CreateHandleEDMA (LTC_Type *base, ltc_edma_handle_t *handle, ltc_edma_callback_t callback, void *userData, edma_handle_t *inputFifoEdmaHandle, edma_handle_t *outputFifoEdmaHandle)
| Init the LTC eDMA handle which is used in transcational functions. More...

## Data Structure Documentation

struct _ltc_edma_handle

It is defined only for private usage inside LTC eDMA driver.

### Data Fields

ltc_edma_callback_t | callback
| Callback function. More...
void * | userData
| LTC callback function parameter. More...
edma_handle_t * | inputFifoEdmaHandle
| The eDMA TX channel used. More...
edma_handle_t * | outputFifoEdmaHandle
| The eDMA RX channel used. More...
ltc_edma_state_machine_t | state_machine
| State machine. More...
uint32_t | state
| Internal state. More...
const uint8_t * | inData
| Input data. More...
uint8_t * | outData
| Output data. More...
uint32_t | size
| Size of input and output data in bytes. More...
uint32_t | modeReg
| LTC mode register. More...
uint8_t * | counter
| Input counter (updates on return)
const uint8_t * | key
| Input key to use for forward AES cipher.
uint32_t | keySize
| Size of the input key, in bytes. More...
uint8_t * | counterlast
| Output cipher of last counter, for chained CTR calls. More...
uint32_t * | szLeft
| Output number of bytes in left unused in counterlast block. More...
uint32_t | lastSize
| Last size. More...

#### Field Documentation

ltc_edma_callback_t ltc_edma_handle_t::callback

void* ltc_edma_handle_t::userData

edma_handle_t* ltc_edma_handle_t::inputFifoEdmaHandle

edma_handle_t* ltc_edma_handle_t::outputFifoEdmaHandle

ltc_edma_state_machine_t ltc_edma_handle_t::state_machine

uint32_t ltc_edma_handle_t::state

const uint8_t* ltc_edma_handle_t::inData

uint8_t* ltc_edma_handle_t::outData

uint32_t ltc_edma_handle_t::size

uint32_t ltc_edma_handle_t::modeReg

uint32_t ltc_edma_handle_t::keySize

Must be 16, 24, or 32.

uint8_t* ltc_edma_handle_t::counterlast

NULL can be passed if chained calls are not used.

uint32_t* ltc_edma_handle_t::szLeft

NULL can be passed if chained calls are not used.

uint32_t ltc_edma_handle_t::lastSize

## Typedef Documentation

typedef void(* ltc_edma_callback_t)(LTC_Type *base, ltc_edma_handle_t *handle, status_t status, void *userData)

typedef status_t(* ltc_edma_state_machine_t)(LTC_Type *base, ltc_edma_handle_t *handle)

It is defined only for private usage inside LTC eDMA driver.

## Function Documentation

void LTC_CreateHandleEDMA | ( | LTC_Type * | base,
|  | ltc_edma_handle_t * | handle,
|  | ltc_edma_callback_t | callback,
|  | void * | userData,
|  | edma_handle_t * | inputFifoEdmaHandle,
|  | edma_handle_t * | outputFifoEdmaHandle
| ) |  |

Parameters

  base | LTC module base address
  handle | Pointer to ltc_edma_handle_t structure
  callback | Callback function, NULL means no callback.
  userData | Callback function parameter.
  inputFifoEdmaHandle | User requested eDMA handle for Input FIFO eDMA.
  outputFifoEdmaHandle | User requested eDMA handle for Output FIFO eDMA.