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 <simics/base/types.h> // conf_object_t
21
22#include <cstdint>
23
24// Same struct as defined in dmllib.h
25typedef struct bank_access {
26 conf_object_t *bank;
27 bool *inquiry;
28 uint64_t *offset;
29 uint64_t size;
30
31 uint64_t *value;
32 bool *success;
33 bool *suppress;
34 conf_object_t *initiator;
36
37namespace simics {
38
39/*
40 * Type mainly used for bank instrumentation
41 */
42struct BankAccess {
43 BankAccess(conf_object_t *bank, transaction_t *t, uint64_t offset)
44 : bank(bank),
45 initiator(SIM_transaction_initiator(t)),
46 inquiry(SIM_transaction_is_inquiry(t)),
48 size(SIM_transaction_size(t)) {}
49
50 BankAccess(conf_object_t *bank, conf_object_t *ini, bool inquiry,
51 uint64_t offset, uint64_t size)
52 : bank(bank),
53 initiator(ini),
56 size(size) {}
57
59 return {bank, &inquiry, &offset, size, &value,
61 }
62
63 conf_object_t *bank;
64 conf_object_t *initiator;
65 bool inquiry;
66 uint64_t offset;
67 uint64_t size;
68 uint64_t value {0};
69 bool success {true};
70 bool suppress {false};
71};
72
73} // namespace simics
74
75#endif
struct bank_access bank_access_t
Definition: after-bank.h:33
Definition: bank-access.h:25
bool * suppress
Definition: bank-access.h:33
uint64_t * value
Definition: bank-access.h:31
conf_object_t * initiator
Definition: bank-access.h:34
uint64_t size
Definition: bank-access.h:29
conf_object_t * bank
Definition: bank-access.h:26
bool * success
Definition: bank-access.h:32
uint64_t * offset
Definition: bank-access.h:28
bool * inquiry
Definition: bank-access.h:27
Definition: bank-access.h:42
bank_access_t c_struct()
Definition: bank-access.h:58
uint64_t value
Definition: bank-access.h:68
BankAccess(conf_object_t *bank, conf_object_t *ini, bool inquiry, uint64_t offset, uint64_t size)
Definition: bank-access.h:50
uint64_t size
Definition: bank-access.h:67
conf_object_t * initiator
Definition: bank-access.h:64
BankAccess(conf_object_t *bank, transaction_t *t, uint64_t offset)
Definition: bank-access.h:43
uint64_t offset
Definition: bank-access.h:66
bool success
Definition: bank-access.h:69
conf_object_t * bank
Definition: bank-access.h:63
bool suppress
Definition: bank-access.h:70
bool inquiry
Definition: bank-access.h:65