C++ Device API Reference Manual
Reference documentation for the Simics C++ Device API.
 
Loading...
Searching...
No Matches
bank-access.h
Go to the documentation of this file.
1// -*- mode: C++; c-file-style: "virtutech-c++" -*-
2
3/*
4 © 2022 Intel Corporation
5
6 This software and the related documents are Intel copyrighted materials, and
7 your use of them is governed by the express license under which they were
8 provided to you ("License"). Unless the License provides otherwise, you may
9 not use, modify, copy, publish, distribute, disclose or transmit this software
10 or the related documents without Intel's prior written permission.
11
12 This software and the related documents are provided as is, with no express or
13 implied warranties, other than those that are expressly stated in the License.
14*/
15
16#ifndef SIMICS_TYPE_BANK_ACCESS_H
17#define SIMICS_TYPE_BANK_ACCESS_H
18
19#include <simics/base/transaction.h>
20#include <cstdint>
21
22struct conf_object;
23typedef struct conf_object conf_object_t;
24
25// Same struct as defined in dmllib.h
26typedef struct bank_access {
28 bool *inquiry;
29 uint64_t *offset;
30 uint64_t size;
31
32 uint64_t *value;
33 bool *success;
34 bool *suppress;
37
38namespace simics {
39
40/*
41 * Type mainly used for bank instrumentation
42 */
43struct BankAccess {
45 : bank(bank),
46 initiator(SIM_transaction_initiator(t)),
47 inquiry(SIM_transaction_is_inquiry(t)),
49 size(SIM_transaction_size(t)) {}
50
52 uint64_t offset, uint64_t size)
53 : bank(bank),
54 initiator(ini),
57 size(size) {}
58
60 return {bank, &inquiry, &offset, size, &value,
62 }
63
66 bool inquiry;
67 uint64_t offset;
68 uint64_t size;
69 uint64_t value {0};
70 bool success {true};
71 bool suppress {false};
72};
73
74} // namespace simics
75
76#endif
struct conf_object conf_object_t
Definition: bank-access.h:23
struct bank_access bank_access_t
struct transaction transaction_t
Definition: bank-interface.h:30
struct conf_object conf_object_t
Definition: bank-issue-callbacks-interface.h:23
Definition: attr-value.h:23
Definition: bank-access.h:26
bool * suppress
Definition: bank-access.h:34
uint64_t * value
Definition: bank-access.h:32
conf_object_t * initiator
Definition: bank-access.h:35
uint64_t size
Definition: bank-access.h:30
conf_object_t * bank
Definition: bank-access.h:27
bool * success
Definition: bank-access.h:33
uint64_t * offset
Definition: bank-access.h:29
bool * inquiry
Definition: bank-access.h:28
Definition: bank-access.h:43
bank_access_t c_struct()
Definition: bank-access.h:59
uint64_t value
Definition: bank-access.h:69
BankAccess(conf_object_t *bank, conf_object_t *ini, bool inquiry, uint64_t offset, uint64_t size)
Definition: bank-access.h:51
uint64_t size
Definition: bank-access.h:68
conf_object_t * initiator
Definition: bank-access.h:65
BankAccess(conf_object_t *bank, transaction_t *t, uint64_t offset)
Definition: bank-access.h:44
uint64_t offset
Definition: bank-access.h:67
bool success
Definition: bank-access.h:70
conf_object_t * bank
Definition: bank-access.h:64
bool suppress
Definition: bank-access.h:71
bool inquiry
Definition: bank-access.h:66