1/*
2 * Copyright (c) 2007, 2008, 2009, 2010, ETH Zurich.
3 * All rights reserved.
4 *
5 * This file is distributed under the terms in the attached LICENSE file.
6 * If you do not find this file, copies can be found by writing to:
7 * ETH Zurich D-INFK, Universitaetstrasse 6, CH-8092 Zurich. Attn: Systems Group.
8 */
9
10interface bench "The bench Interface" {
11        /* Used for generic benchmarking code */
12
13	message init_request(uint8 coreid);
14	message init_reply();
15
16	message token_request();
17	message token_reply();
18
19	message busy_init_request();
20	message busy_init_reply();
21	message busy_ping();
22
23        /* Messages for ump benchmarks */
24        message ump_init_msg(uint8 coreid);
25
26        /* Messages for flounder_stub_bench */
27        message fsb_init_msg(uint8 coreid);
28	message fsb_empty_request();
29	message fsb_empty_reply();
30	message fsb_buffer_request(uint8 buf[size, 2048]);
31	message fsb_buffer_reply(uint8 buf[size, 2048]);
32
33	message fsb_payload_request(int word0, int word1, int word2, int word3);
34	message fsb_payload_reply(int word0, int word1, int word2, int word3);
35
36	message fsb_payload1_request(int word0);
37	message fsb_payload1_reply(int word0);
38
39	message fsb_payload2_request(int word0, int word1);
40	message fsb_payload2_reply(int word0, int word1);
41
42	message fsb_payload8_request(int word0, int word1, int word2, int word3,
43			  	int word4, int word5, int word6, int word7);
44	message fsb_payload8_reply(int word0, int word1, int word2, int word3,
45			  	int word4, int word5, int word6, int word7);
46
47	message fsb_payload16_request(int word0, int word1, int word2, int word3,
48			  	int word4, int word5, int word6, int word7,
49			  	int word8, int word9, int word10, int word11,
50			  	int word12, int word13, int word14, int word15);
51	message fsb_payload16_reply(int word0, int word1, int word2, int word3,
52			  	int word4, int word5, int word6, int word7,
53			  	int word8, int word9, int word10, int word11,
54			  	int word12, int word13, int word14, int word15);
55
56	message fsb_payload32_1_request(int32 word0);
57	message fsb_payload32_1_reply(int32 word0);
58	message fsb_payload64_1_request(int64 word0);
59	message fsb_payload64_1_reply(int64 word0);
60
61	message fsb_payload32_2_request(int32 word0, int32 word1);
62	message fsb_payload32_2_reply(int32 word0, int32 word1);
63	message fsb_payload64_2_request(int64 word0, int64 word1);
64	message fsb_payload64_2_reply(int64 word0, int64 word1);
65
66	message fsb_payload32_4_request(int32 word0, int32 word1, int32 word2, int32 word3);
67	message fsb_payload32_4_reply(int32 word0, int32 word1, int32 word2, int32 word3);
68	message fsb_payload64_4_request(int64 word0, int64 word1, int64 word2, int64 word3);
69	message fsb_payload64_4_reply(int64 word0, int64 word1, int64 word2, int64 word3);
70
71	message fsb_payload32_8_request(int32 word0, int32 word1, int32 word2, int32 word3,
72			  	int32 word4, int32 word5, int32 word6, int32 word7);
73	message fsb_payload32_8_reply(int32 word0, int32 word1, int32 word2, int32 word3,
74			  	int32 word4, int32 word5, int32 word6, int32 word7);
75	message fsb_payload64_8_request(int64 word0, int64 word1, int64 word2, int64 word3,
76			  	int64 word4, int64 word5, int64 word6, int64 word7);
77	message fsb_payload64_8_reply(int64 word0, int64 word1, int64 word2, int64 word3,
78			  	int64 word4, int64 word5, int64 word6, int64 word7);
79
80	message fsb_payload32_16_request(int32 word0, int32 word1, int32 word2, int32 word3,
81			  	int32 word4, int32 word5, int32 word6, int32 word7,
82			  	int32 word8, int32 word9, int32 word10, int32 word11,
83			  	int32 word12, int32 word13, int32 word14, int32 word15);
84	message fsb_payload32_16_reply(int32 word0, int32 word1, int32 word2, int32 word3,
85			  	int32 word4, int32 word5, int32 word6, int32 word7,
86			  	int32 word8, int32 word9, int32 word10, int32 word11,
87			  	int32 word12, int32 word13, int32 word14, int32 word15);
88	message fsb_payload64_16_request(int64 word0, int64 word1, int64 word2, int64 word3,
89			  	int64 word4, int64 word5, int64 word6, int64 word7,
90			  	int64 word8, int64 word9, int64 word10, int64 word11,
91			  	int64 word12, int64 word13, int64 word14, int64 word15);
92	message fsb_payload64_16_reply(int64 word0, int64 word1, int64 word2, int64 word3,
93			  	int64 word4, int64 word5, int64 word6, int64 word7,
94			  	int64 word8, int64 word9, int64 word10, int64 word11,
95			  	int64 word12, int64 word13, int64 word14, int64 word15);
96
97        message lrpc_init();
98        message lrpc_init_reply();
99
100        /* LRPC benchmark */
101        message lrpc_bench_reply(uint64 value);
102
103	/* Shared memory clock benchmark */
104	message shmc_init_request(uint8 coreid);
105	message shmc_init_reply(cap cap);
106	message shmc_start();
107	message shmc_done();
108};
109
110