4.5.2. Mem#

4.5.2.1. Interface#

Functions

void SimbricksMemIfDefaultParams(struct SimbricksBaseIfParams *params)#
SIMBRICKS_BASEIF_GENERIC(SimbricksMemIfH2M, SimbricksProtoMemH2M, SimbricksMemIf)#

Generate queue access functions for both directions

SIMBRICKS_BASEIF_GENERIC(SimbricksMemIfM2H, SimbricksProtoMemM2H, SimbricksMemIf)#
struct SimbricksMemIf#

Public Members

struct SimbricksBaseIf base#

4.5.2.2. Protocol#

Defines

SIMBRICKS_PROTO_MEM_M2H_MSG_READCOMP#

Mask for type value in own_type field

SIMBRICKS_PROTO_MEM_M2H_MSG_WRITECOMP#
SIMBRICKS_PROTO_MEM_H2M_MSG_READ#
SIMBRICKS_PROTO_MEM_H2M_MSG_WRITE#
SIMBRICKS_PROTO_MEM_H2M_MSG_WRITE_POSTED#

Functions

struct SimbricksProtoMemMemIntro __attribute__ ((packed))
SIMBRICKS_PROTO_MSG_SZCHECK(struct SimbricksProtoMemM2HReadcomp)#
SIMBRICKS_PROTO_MSG_SZCHECK(struct SimbricksProtoMemM2HWritecomp)#
SIMBRICKS_PROTO_MSG_SZCHECK(union SimbricksProtoMemM2H)#
SIMBRICKS_PROTO_MSG_SZCHECK(struct SimbricksProtoMemH2MRead)#
SIMBRICKS_PROTO_MSG_SZCHECK(struct SimbricksProtoMemH2MWrite)#
SIMBRICKS_PROTO_MSG_SZCHECK(union SimbricksProtoMemH2M)#

Variables

uint32_t dummy#
uint64_t req_id#
uint8_t pad[40]
uint64_t timestamp
uint8_t pad_[7]
uint8_t own_type
uint8_t data[]#
union SimbricksProtoBaseMsg base#
struct SimbricksProtoMemM2HReadcomp readcomp#
struct SimbricksProtoMemM2HWritecomp writecomp#
uint64_t as_id#
uint64_t addr#
uint16_t len#

length of the bar in bytes (len = 0 indicates unused bar)

struct SimbricksProtoMemH2MRead read#
struct SimbricksProtoMemH2MWrite write#
struct SimbricksProtoMemMemIntro#
#include <proto.h>

welcome message sent by memory to host.

Public Members

uint32_t dummy#
struct SimbricksProtoMemHostIntro#
#include <proto.h>

welcome message sent by host to memory

Public Members

uint32_t dummy#
struct SimbricksProtoMemM2HReadcomp#

Public Members

uint64_t req_id#
uint8_t pad[40]#
uint64_t timestamp#
uint8_t pad_[7]#
uint8_t own_type#
uint8_t data[]#
struct SimbricksProtoMemM2HWritecomp#

Public Members

uint64_t req_id#
uint8_t pad[40]#
uint64_t timestamp#
uint8_t pad_[7]#
uint8_t own_type#
union SimbricksProtoMemM2H#

Public Members

union SimbricksProtoBaseMsg base#
struct SimbricksProtoMemM2HReadcomp readcomp#
struct SimbricksProtoMemM2HWritecomp writecomp#
struct SimbricksProtoMemH2MRead#

Public Members

uint64_t req_id#
uint64_t as_id#
uint64_t addr#
uint16_t len#
uint8_t pad[22]#
uint64_t timestamp#
uint8_t pad_[7]#
uint8_t own_type#
struct SimbricksProtoMemH2MWrite#

Public Members

uint64_t req_id#
uint64_t as_id#
uint64_t addr#
uint16_t len#
uint8_t pad[22]#
uint64_t timestamp#
uint8_t pad_[7]#
uint8_t own_type#
uint8_t data[]#
union SimbricksProtoMemH2M#

Public Members

union SimbricksProtoBaseMsg base#
struct SimbricksProtoMemH2MRead read#
struct SimbricksProtoMemH2MWrite write#