From ebbbf190825d6d098116f6bdd5245a4498b17815 Mon Sep 17 00:00:00 2001 From: bd Date: Sat, 8 Mar 2025 22:50:57 -0500 Subject: Add get_bit_fields, which parses cache fields from a memory address --- inc/definitions.h | 22 +++++++++++++++++++--- 1 file changed, 19 insertions(+), 3 deletions(-) (limited to 'inc/definitions.h') diff --git a/inc/definitions.h b/inc/definitions.h index 1593162..4b01be9 100644 --- a/inc/definitions.h +++ b/inc/definitions.h @@ -1,10 +1,26 @@ #ifndef DEFINITIONS_H #define DEFINITIONS_H +#include -/** - * Defines common macros. +/* The number of bits to specify a word in a line */ +#define LINE_SPEC 2 +#define LINE_SIZE (int)pow(2, 2) -#define LINE_SIZE 4 +/* The number of bits to specify a memory line + * (/ (expt 2 15) 4) + */ +#define MEM_SPEC 13 +#define MEM_SIZE (int)pow(2, MEM_SPEC) + +/* The number of bits to specify a l1 cache line + */ +#define L1_CACHE_SPEC 5 +#define L1_CACHE_SIZE (int)pow(2, L1_CACHE_SPEC) + +/* Parses some bits. + */ +#define LAST(k, n) ((k) & ((1 << (n)) - 1)) +#define MID(k, m, n) LAST((k) >> (m), ((n) - (m))) #endif /* DEFINITIONS_H_INCLUDED */ -- cgit v1.2.3