blob: a375b683d699844034f9e8550f914948ec220e43 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
|
#ifndef UTILS_H
#define UTILS_H
#include <string>
/**
* Parse an address into a tag, index into the cache table, and a line
* offset.
* @param the address to be parsed
* @param the resulting tag
* @param the resulting index
* @param the resulting offset
*/
void get_cache_fields(int address, int *tag, int *index, int *offset);
/**
* Formats a string using snprintf.
* @param an object that represents the format string
* @param arguments to be formatted
* @return a string object holding the formatted result
*/
const std::string string_format(const char *const zcFormat, ...);
/**
* Given `address`, returns an address that is within the current memory size
* using a clean wrap.
* @param an address
* @return an address guaranteed to be within range.
*/
int wrap_address(int address);
/**
* Given `address`, returns the line and word it is in.
* @param an address
* @param the line (row) `address` is in
* @param the word (column) `address` corresponds to
*/
void get_memory_index(int address, int &line, int &word);
#endif /* UTILS_H_INCLUDED */
|