aboutsummaryrefslogtreecommitdiff
path: root/malloclab-handout/fcyc.h
diff options
context:
space:
mode:
Diffstat (limited to 'malloclab-handout/fcyc.h')
-rw-r--r--malloclab-handout/fcyc.h68
1 files changed, 68 insertions, 0 deletions
diff --git a/malloclab-handout/fcyc.h b/malloclab-handout/fcyc.h
new file mode 100644
index 0000000..d398278
--- /dev/null
+++ b/malloclab-handout/fcyc.h
@@ -0,0 +1,68 @@
+/*
+ * fcyc.h - prototypes for the routines in fcyc.c that estimate the
+ * time in CPU cycles used by a test function f
+ *
+ * Copyright (c) 2002, R. Bryant and D. O'Hallaron, All rights reserved.
+ * May not be used, modified, or copied without permission.
+ *
+ */
+
+/* The test function takes a generic pointer as input */
+typedef void (*test_funct)(void *);
+
+/* Compute number of cycles used by test function f */
+double fcyc(test_funct f, void* argp);
+
+/*********************************************************
+ * Set the various parameters used by measurement routines
+ *********************************************************/
+
+/*
+ * set_fcyc_clear_cache - When set, will run code to clear cache
+ * before each measurement.
+ * Default = 0
+ */
+void set_fcyc_clear_cache(int clear);
+
+/*
+ * set_fcyc_cache_size - Set size of cache to use when clearing cache
+ * Default = 1<<19 (512KB)
+ */
+void set_fcyc_cache_size(int bytes);
+
+/*
+ * set_fcyc_cache_block - Set size of cache block
+ * Default = 32
+ */
+void set_fcyc_cache_block(int bytes);
+
+/*
+ * set_fcyc_compensate- When set, will attempt to compensate for
+ * timer interrupt overhead
+ * Default = 0
+ */
+void set_fcyc_compensate(int compensate_arg);
+
+/*
+ * set_fcyc_k - Value of K in K-best measurement scheme
+ * Default = 3
+ */
+void set_fcyc_k(int k);
+
+/*
+ * set_fcyc_maxsamples - Maximum number of samples attempting to find
+ * K-best within some tolerance.
+ * When exceeded, just return best sample found.
+ * Default = 20
+ */
+void set_fcyc_maxsamples(int maxsamples_arg);
+
+/*
+ * set_fcyc_epsilon - Tolerance required for K-best
+ * Default = 0.01
+ */
+void set_fcyc_epsilon(double epsilon_arg);
+
+
+
+