SEcube
SEcube Open Source Library - Device
Data Structures | Macros | Typedefs | Functions | Variables
se3c0.h File Reference

L0 structures and functions. More...

#include <stdint.h>
#include <stdbool.h>
#include <stddef.h>
#include "sha256.h"
#include "aes256.h"
#include "se3c0def.h"
#include "se3_common.h"

Go to the source code of this file.

Data Structures

struct  SE3_COMM_STATUS_
 structure holding host-device communication status and buffers More...
 
struct  SE3_FLASH_INFO_
 Flash management structure. More...
 
struct  SE3_SERIAL_
 serial number data and state More...
 
struct  se3c0_req_header_
 decoded request header More...
 
struct  se3c0_resp_header_
 response header to be encoded More...
 
struct  SE3_L0_GLOBALS_
 L0 globals structure. More...
 

Macros

#define SE3_ALIGN_16
 
#define SE3_BMAP_MAKE(n)   ((uint32_t)(0xFFFFFFFF >> (32 - (n))))
 

Typedefs

typedef struct SE3_COMM_STATUS_ SE3_COMM_STATUS
 structure holding host-device communication status and buffers More...
 
typedef struct SE3_FLASH_INFO_ SE3_FLASH_INFO
 Flash management structure.
 
typedef struct SE3_SERIAL_ SE3_SERIAL
 serial number data and state
 
typedef struct se3c0_req_header_ se3c0_req_header
 decoded request header
 
typedef struct se3c0_resp_header_ se3c0_resp_header
 response header to be encoded
 
typedef uint16_t(* se3_cmd_func) (uint16_t, const uint8_t *, uint16_t *, uint8_t *)
 
typedef struct SE3_L0_GLOBALS_ SE3_L0_GLOBALS
 L0 globals structure.
 

Functions

void se3c0_init ()
 
uint64_t se3c0_time_get ()
 
void se3c0_time_set (uint64_t t)
 
void se3c0_time_inc ()
 

Variables

const uint8_t se3_hello [SE3_HELLO_SIZE]
 
uint8_t se3_comm_request_buffer [SE3_COMM_N *SE3_COMM_BLOCK]
 
uint8_t se3_comm_response_buffer [SE3_COMM_N *SE3_COMM_BLOCK]
 
SE3_L0_GLOBALS se3c0
 

Detailed Description

L0 structures and functions.

Author
Nicola Ferri

Typedef Documentation

typedef uint16_t(* se3_cmd_func) (uint16_t, const uint8_t *, uint16_t *, uint8_t *)

L0 command handler

structure holding host-device communication status and buffers

req_ready and resp_ready must be volatile, otherwise -O3 optimization will not work.