EE445M RTOS
Taken at the University of Texas Spring 2015
|
Functions | |
void | DESReset (uint32_t ui32Base) |
void | DESConfigSet (uint32_t ui32Base, uint32_t ui32Config) |
void | DESKeySet (uint32_t ui32Base, uint32_t *pui32Key) |
bool | DESIVSet (uint32_t ui32Base, uint32_t *pui32IVdata) |
void | DESLengthSet (uint32_t ui32Base, uint32_t ui32Length) |
bool | DESDataReadNonBlocking (uint32_t ui32Base, uint32_t *pui32Dest) |
void | DESDataRead (uint32_t ui32Base, uint32_t *pui32Dest) |
bool | DESDataWriteNonBlocking (uint32_t ui32Base, uint32_t *pui32Src) |
void | DESDataWrite (uint32_t ui32Base, uint32_t *pui32Src) |
bool | DESDataProcess (uint32_t ui32Base, uint32_t *pui32Src, uint32_t *pui32Dest, uint32_t ui32Length) |
uint32_t | DESIntStatus (uint32_t ui32Base, bool bMasked) |
void | DESIntEnable (uint32_t ui32Base, uint32_t ui32IntFlags) |
void | DESIntDisable (uint32_t ui32Base, uint32_t ui32IntFlags) |
void | DESIntClear (uint32_t ui32Base, uint32_t ui32IntFlags) |
void | DESIntRegister (uint32_t ui32Base, void(*pfnHandler)(void)) |
void | DESIntUnregister (uint32_t ui32Base) |
void | DESDMAEnable (uint32_t ui32Base, uint32_t ui32Flags) |
void | DESDMADisable (uint32_t ui32Base, uint32_t ui32Flags) |
void DESConfigSet | ( | uint32_t | ui32Base, |
uint32_t | ui32Config | ||
) |
Configures the DES module for operation.
ui32Base | is the base address of the DES module. |
ui32Config | is the configuration of the DES module. |
This function configures the DES module for operation.
The ui32Config parameter is a bit-wise OR of a number of configuration flags. The valid flags are grouped below based on their function.
The direction of the operation is specified with one of the following two flags. Only one is permitted.
The operational mode of the DES engine is specified with one of the following flags. Only one is permitted.
The selection of single DES or triple DES is specified with one of the following two flags. Only one is permitted.
Definition at line 125 of file des.c.
References ASSERT, DES_BASE, DES_CTRL_CONTEXT, DES_O_CTRL, and HWREG.
bool DESDataProcess | ( | uint32_t | ui32Base, |
uint32_t * | pui32Src, | ||
uint32_t * | pui32Dest, | ||
uint32_t | ui32Length | ||
) |
Processes blocks of data through the DES module.
ui32Base | is the base address of the DES module. |
pui32Src | is a pointer to an array of words that contains the source data for processing. |
pui32Dest | is a pointer to an array of words consisting of the processed data. |
ui32Length | is the length of the cryptographic data in bytes. It must be a multiple of eight. |
This function takes the data contained in the pui32Src array and processes it using the DES engine. The resulting data is stored in the pui32Dest array. The function blocks until all of the data has been processed. If processing is successful, the function returns true.
Definition at line 438 of file des.c.
References ASSERT, DES_BASE, DES_CTRL_INPUT_READY, DES_CTRL_OUTPUT_READY, DES_O_CTRL, DES_O_LENGTH, DESDataReadNonBlocking(), DESDataWriteNonBlocking(), and HWREG.
void DESDataRead | ( | uint32_t | ui32Base, |
uint32_t * | pui32Dest | ||
) |
Reads plaintext/ciphertext from data registers with blocking.
ui32Base | is the base address of the DES module. |
pui32Dest | is a pointer to an array of bytes. |
This function waits until the DES module is finished and encrypted or decrypted data is ready. The output data is then stored in the pui32Dest array.
Definition at line 316 of file des.c.
References ASSERT, DES_BASE, DES_CTRL_OUTPUT_READY, DES_O_CTRL, DES_O_DATA_H, DES_O_DATA_L, and HWREG.
bool DESDataReadNonBlocking | ( | uint32_t | ui32Base, |
uint32_t * | pui32Dest | ||
) |
Reads plaintext/ciphertext from data registers without blocking
ui32Base | is the base address of the DES module. |
pui32Dest | is a pointer to an array of 2 words. |
This function returns true if the data was ready when the function was called. If the data was not ready, false is returned.
Definition at line 274 of file des.c.
References ASSERT, DES_BASE, DES_CTRL_OUTPUT_READY, DES_O_CTRL, DES_O_DATA_H, DES_O_DATA_L, and HWREG.
Referenced by DESDataProcess().
void DESDataWrite | ( | uint32_t | ui32Base, |
uint32_t * | pui32Src | ||
) |
Writes plaintext/ciphertext to data registers without blocking
ui32Base | is the base address of the DES module. |
pui32Src | is a pointer to an array of bytes. |
This function waits until the DES module is ready before writing the data contained in the pui32Src array.
Definition at line 393 of file des.c.
References ASSERT, DES_BASE, DES_CTRL_INPUT_READY, DES_O_CTRL, DES_O_DATA_H, DES_O_DATA_L, and HWREG.
bool DESDataWriteNonBlocking | ( | uint32_t | ui32Base, |
uint32_t * | pui32Src | ||
) |
Writes plaintext/ciphertext to data registers without blocking
ui32Base | is the base address of the DES module. |
pui32Src | is a pointer to an array of 2 words. |
This function returns false if the DES module is not ready to accept data. It returns true if the data was written successfully.
Definition at line 351 of file des.c.
References ASSERT, DES_BASE, DES_CTRL_INPUT_READY, DES_O_CTRL, DES_O_DATA_H, DES_O_DATA_L, and HWREG.
Referenced by DESDataProcess().
void DESDMADisable | ( | uint32_t | ui32Base, |
uint32_t | ui32Flags | ||
) |
Disables DMA request sources in the DES module.
ui32Base | is the base address of the DES module. |
ui32Flags | is a bit mask of the DMA requests to be disabled. |
This function disables DMA request sources in the DES module. The ui32Flags parameter should be the logical OR of any of the following:
Definition at line 786 of file des.c.
References ASSERT, DES_BASE, DES_DMA_CONTEXT_IN, DES_DMA_DATA_IN, DES_DMA_DATA_OUT, DES_O_SYSCONFIG, and HWREG.
void DESDMAEnable | ( | uint32_t | ui32Base, |
uint32_t | ui32Flags | ||
) |
Enables DMA request sources in the DES module.
ui32Base | is the base address of the DES module. |
ui32Flags | is a bit mask of the DMA requests to be enabled. |
This function enables DMA request sources in the DES module. The ui32Flags parameter should be the logical OR of any of the following:
Definition at line 752 of file des.c.
References ASSERT, DES_BASE, DES_DMA_CONTEXT_IN, DES_DMA_DATA_IN, DES_DMA_DATA_OUT, DES_O_SYSCONFIG, and HWREG.
void DESIntClear | ( | uint32_t | ui32Base, |
uint32_t | ui32IntFlags | ||
) |
Clears interrupts in the DES module.
ui32Base | is the base address of the DES module. |
ui32IntFlags | is a bit mask of the interrupts to be disabled. |
This function disables interrupt sources in the DES module. ui32IntFlags should be a logical OR of one or more of the following values:
Definition at line 643 of file des.c.
References ASSERT, DES_BASE, DES_INT_DMA_CONTEXT_IN, DES_INT_DMA_DATA_IN, DES_INT_DMA_DATA_OUT, DES_O_DMAIC, and HWREG.
void DESIntDisable | ( | uint32_t | ui32Base, |
uint32_t | ui32IntFlags | ||
) |
Disables interrupts in the DES module.
ui32Base | is the base address of the DES module. |
ui32IntFlags | is a bit mask of the interrupts to be disabled. |
This function disables interrupt sources in the DES module. ui32IntFlags should be a logical OR of one or more of the following values:
Definition at line 601 of file des.c.
References ASSERT, DES_BASE, DES_INT_CONTEXT_IN, DES_INT_DATA_IN, DES_INT_DATA_OUT, DES_INT_DMA_CONTEXT_IN, DES_INT_DMA_DATA_IN, DES_INT_DMA_DATA_OUT, DES_O_DMAIM, DES_O_IRQENABLE, and HWREG.
void DESIntEnable | ( | uint32_t | ui32Base, |
uint32_t | ui32IntFlags | ||
) |
Enables interrupts in the DES module.
ui32Base | is the base address of the DES module. |
ui32IntFlags | is a bit mask of the interrupts to be enabled. |
ui32IntFlags should be a logical OR of one or more of the following values:
Definition at line 559 of file des.c.
References ASSERT, DES_BASE, DES_INT_CONTEXT_IN, DES_INT_DATA_IN, DES_INT_DATA_OUT, DES_INT_DMA_CONTEXT_IN, DES_INT_DMA_DATA_IN, DES_INT_DMA_DATA_OUT, DES_O_DMAIM, DES_O_IRQENABLE, and HWREG.
void DESIntRegister | ( | uint32_t | ui32Base, |
void(*)(void) | pfnHandler | ||
) |
Registers an interrupt handler for the DES module.
ui32Base | is the base address of the DES module. |
pfnHandler | is a pointer to the function to be called when the enabled DES interrupts occur. |
This function registers the interrupt handler in the interrupt vector table, and enables DES interrupts on the interrupt controller; specific DES interrupt sources must be enabled using DESIntEnable(). The interrupt handler being registered must clear the source of the interrupt using DESIntClear().
If the application is using a static interrupt vector table stored in flash, then it is not necessary to register the interrupt handler this way. Instead, IntEnable() should be used to enable DES interrupts on the interrupt controller.
Definition at line 682 of file des.c.
References ASSERT, DES_BASE, INT_DES0_TM4C129, IntEnable(), and IntRegister().
uint32_t DESIntStatus | ( | uint32_t | ui32Base, |
bool | bMasked | ||
) |
Returns the current interrupt status of the DES module.
ui32Base | is the base address of the DES module. |
bMasked | is false if the raw interrupt status is required and true if the masked interrupt status is required. |
This function gets the current interrupt status of the DES module. The value returned is a logical OR of the following values:
Definition at line 513 of file des.c.
References ASSERT, DES_BASE, DES_O_DMAMIS, DES_O_DMARIS, DES_O_IRQENABLE, DES_O_IRQSTATUS, and HWREG.
void DESIntUnregister | ( | uint32_t | ui32Base | ) |
Unregisters an interrupt handler for the DES module.
ui32Base | is the base address of the DES module. |
This function unregisters the previously registered interrupt handler and disables the interrupt in the interrupt controller.
Definition at line 716 of file des.c.
References ASSERT, DES_BASE, INT_DES0_TM4C129, IntDisable(), and IntUnregister().
bool DESIVSet | ( | uint32_t | ui32Base, |
uint32_t * | pui32IVdata | ||
) |
Sets the initialization vector in the DES module.
ui32Base | is the base address of the DES module. |
pui32IVdata | is a pointer to an array of 64 bits (2 words) of data to be written into the initialization vectors registers. |
This function sets the initialization vector in the DES module. It returns true if the registers were successfully written. If the context registers cannot be written at the time the function was called, then false is returned.
Definition at line 202 of file des.c.
References ASSERT, DES_BASE, DES_CTRL_CONTEXT, DES_O_CTRL, DES_O_IV_H, DES_O_IV_L, and HWREG.
void DESKeySet | ( | uint32_t | ui32Base, |
uint32_t * | pui32Key | ||
) |
Sets the key used for DES operations.
ui32Base | is the base address of the DES module. |
pui32Key | is a pointer to an array that holds the key |
This function sets the key used for DES operations.
pui32Key should be 64 bits long (2 words) if single DES is being used or 192 bits (6 words) if triple DES is being used.
Definition at line 159 of file des.c.
References ASSERT, DES_BASE, DES_CFG_TRIPLE, DES_O_CTRL, DES_O_KEY1_H, DES_O_KEY1_L, DES_O_KEY2_H, DES_O_KEY2_L, DES_O_KEY3_H, DES_O_KEY3_L, and HWREG.
void DESLengthSet | ( | uint32_t | ui32Base, |
uint32_t | ui32Length | ||
) |
Sets the crytographic data length in the DES module.
ui32Base | is the base address of the DES module. |
ui32Length | is the length of the data in bytes. |
This function writes the cryptographic data length into the DES module. When this register is written, the engine is triggered to start using this context.
Definition at line 247 of file des.c.
References ASSERT, DES_BASE, DES_O_LENGTH, and HWREG.
void DESReset | ( | uint32_t | ui32Base | ) |
Resets the DES Module.
ui32Base | is the base address of the DES module. |
This function performs a soft-reset sequence of the DES module.
Definition at line 69 of file des.c.
References ASSERT, DES_BASE, DES_O_SYSCONFIG, DES_O_SYSSTATUS, DES_SYSCONFIG_SOFTRESET, DES_SYSSTATUS_RESETDONE, and HWREG.