sc_target.cc (11818:f12963cb9dc2) sc_target.cc (12048:a280e9bc358d)
1/*
2 * Copyright (c) 2015, University of Kaiserslautern
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met:
8 *

--- 52 unchanged lines hidden (view full) ---

61 mem = new unsigned char[size];
62
63 SC_METHOD(execute_transaction_process);
64 sensitive << target_done_event;
65 dont_initialize();
66}
67
68void
1/*
2 * Copyright (c) 2015, University of Kaiserslautern
3 * All rights reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions are
7 * met:
8 *

--- 52 unchanged lines hidden (view full) ---

61 mem = new unsigned char[size];
62
63 SC_METHOD(execute_transaction_process);
64 sensitive << target_done_event;
65 dont_initialize();
66}
67
68void
69Target::check_address(unsigned long long int addr)
70{
71 if (addr < offset || addr >= offset + size)
72 SC_REPORT_FATAL("Target", "Address out of range. Did you set an "
73 "appropriate size and offset?");
74}
75
76void
69Target::b_transport(tlm::tlm_generic_payload& trans, sc_time& delay)
70{
71 /* Execute the read or write commands */
72 execute_transaction(trans);
73}
74
75unsigned int
76Target::transport_dbg(tlm::tlm_generic_payload& trans)
77{
77Target::b_transport(tlm::tlm_generic_payload& trans, sc_time& delay)
78{
79 /* Execute the read or write commands */
80 execute_transaction(trans);
81}
82
83unsigned int
84Target::transport_dbg(tlm::tlm_generic_payload& trans)
85{
86 check_address(trans.get_address());
87
78 tlm::tlm_command cmd = trans.get_command();
79 sc_dt::uint64 adr = trans.get_address() - offset;
80 unsigned char* ptr = trans.get_data_ptr();
81 unsigned int len = trans.get_data_length();
82
83 unsigned char *mem_array_ptr = mem + adr;
84
85 /* Load / Store the access: */

--- 112 unchanged lines hidden (view full) ---

198 } else {
199 send_response( *transaction_in_progress );
200 }
201}
202
203void
204Target::execute_transaction(tlm::tlm_generic_payload& trans)
205{
88 tlm::tlm_command cmd = trans.get_command();
89 sc_dt::uint64 adr = trans.get_address() - offset;
90 unsigned char* ptr = trans.get_data_ptr();
91 unsigned int len = trans.get_data_length();
92
93 unsigned char *mem_array_ptr = mem + adr;
94
95 /* Load / Store the access: */

--- 112 unchanged lines hidden (view full) ---

208 } else {
209 send_response( *transaction_in_progress );
210 }
211}
212
213void
214Target::execute_transaction(tlm::tlm_generic_payload& trans)
215{
216 check_address(trans.get_address());
217
206 tlm::tlm_command cmd = trans.get_command();
207 sc_dt::uint64 adr = trans.get_address() - offset;
208 unsigned char* ptr = trans.get_data_ptr();
209 unsigned int len = trans.get_data_length();
210 unsigned char* byt = trans.get_byte_enable_ptr();
211 unsigned int wid = trans.get_streaming_width();
212
213 if ( byt != 0 ) {

--- 51 unchanged lines hidden ---
218 tlm::tlm_command cmd = trans.get_command();
219 sc_dt::uint64 adr = trans.get_address() - offset;
220 unsigned char* ptr = trans.get_data_ptr();
221 unsigned int len = trans.get_data_length();
222 unsigned char* byt = trans.get_byte_enable_ptr();
223 unsigned int wid = trans.get_streaming_width();
224
225 if ( byt != 0 ) {

--- 51 unchanged lines hidden ---