#include "vud.h"
#include "vud_mem.h"
Go to the source code of this file.
|
| const char * | path |
| |
| size_t | n |
| |
| size_t const char ** | paths |
| |
| size_t const char const uint64_t * | addrs |
| |
◆ vud_ime_default_kernel
◆ vud_ime_default_kernel
| Enumerator |
|---|
| VUD_IME_SK_MSG | |
| VUD_IME_SK_XCHG_1 | |
| VUD_IME_SK_XCHG_2 | |
| VUD_IME_SK_XCHG_3 | |
◆ __attribute__()
| __attribute__ |
( |
(deprecated) |
| ) |
|
launch a subkernel on a rank of DPUs
deploy multiple subkernels to a rank of DPUs and launch the first one
- Parameters
-
| r | pointer to the concrete rank |
| path | path to the subkernel |
| r | rank to deploy subkernels on |
| n | number of subkernels |
| paths | array of paths to subkernels |
| addrs | addresses to deploy subkernels to - should not alias each other |
◆ vud_ime_install_key()
| void vud_ime_install_key |
( |
vud_rank * |
r, |
|
|
const uint8_t |
key[32], |
|
|
const uint64_t |
common_pk[32], |
|
|
const uint64_t |
pk[64][32] |
|
) |
| |
perform a key exchange with the rank and install a new user key
- Parameters
-
| r | rank to install key on |
| key | 256-bit key to install |
| common_pk | public key to expect of all DPUs - may be NULL |
| pk | public key to expect from each DPU - preferred if not NULL |
◆ vud_ime_launch()
load a subkernel (ELF file not .sk) on a rank of DPUs
This function requires that a key has been installed on the rank. It will load the ELF file into memory, convert it into the SK format and then encrypt and tag it. Only then will it be sent to the rank.
The file to load can be set using the vud_ime_load function.
- Parameters
-
| r | rank to load subkernel on |
◆ vud_ime_launch_default()
launch on of the system subkernels
- Parameters
-
| r | rank to launch on |
| kernel | chosen subkernel - note that the xchg sks call each other |
◆ vud_ime_load()
| void vud_ime_load |
( |
vud_rank * |
r, |
|
|
const char * |
path |
|
) |
| |
set the next subkernel (ELF file not .sk) to load
This function sets the next subkernel to load in the rank structure. Functions looking up symbol locations use this information. The vud_ime_launch function also relies on this information.
- Parameters
-
| r | rank to change the next subkernel location off |
| path | path to a subkernel |
◆ vud_ime_load_auth_only()
| void vud_ime_load_auth_only |
( |
vud_rank * |
r, |
|
|
const char * |
path |
|
) |
| |
set the next subkernel to load - do not encrypt; only authenticate
- Parameters
-
| r | rank to change the next subkernel location off |
| path | path to a subkernel |
◆ vud_ime_wait()
wait until the whole rank has exposed the MUX to the guest system
- Parameters
-
| r | pointer to the concrete rank |
◆ addrs
| size_t const char const uint64_t* addrs |
◆ path
◆ paths
| size_t const char** paths |