1230557Sjimharris/*-
2230557Sjimharris * This file is provided under a dual BSD/GPLv2 license.  When using or
3230557Sjimharris * redistributing this file, you may do so under either license.
4230557Sjimharris *
5230557Sjimharris * GPL LICENSE SUMMARY
6230557Sjimharris *
7230557Sjimharris * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
8230557Sjimharris *
9230557Sjimharris * This program is free software; you can redistribute it and/or modify
10230557Sjimharris * it under the terms of version 2 of the GNU General Public License as
11230557Sjimharris * published by the Free Software Foundation.
12230557Sjimharris *
13230557Sjimharris * This program is distributed in the hope that it will be useful, but
14230557Sjimharris * WITHOUT ANY WARRANTY; without even the implied warranty of
15230557Sjimharris * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
16230557Sjimharris * General Public License for more details.
17230557Sjimharris *
18230557Sjimharris * You should have received a copy of the GNU General Public License
19230557Sjimharris * along with this program; if not, write to the Free Software
20230557Sjimharris * Foundation, Inc., 51 Franklin St - Fifth Floor, Boston, MA 02110-1301 USA.
21230557Sjimharris * The full GNU General Public License is included in this distribution
22230557Sjimharris * in the file called LICENSE.GPL.
23230557Sjimharris *
24230557Sjimharris * BSD LICENSE
25230557Sjimharris *
26230557Sjimharris * Copyright(c) 2008 - 2011 Intel Corporation. All rights reserved.
27230557Sjimharris * All rights reserved.
28230557Sjimharris *
29230557Sjimharris * Redistribution and use in source and binary forms, with or without
30230557Sjimharris * modification, are permitted provided that the following conditions
31230557Sjimharris * are met:
32230557Sjimharris *
33230557Sjimharris *   * Redistributions of source code must retain the above copyright
34230557Sjimharris *     notice, this list of conditions and the following disclaimer.
35230557Sjimharris *   * Redistributions in binary form must reproduce the above copyright
36230557Sjimharris *     notice, this list of conditions and the following disclaimer in
37230557Sjimharris *     the documentation and/or other materials provided with the
38230557Sjimharris *     distribution.
39230557Sjimharris *
40230557Sjimharris * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
41230557Sjimharris * "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
42230557Sjimharris * LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
43230557Sjimharris * A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
44230557Sjimharris * OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
45230557Sjimharris * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
46230557Sjimharris * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
47230557Sjimharris * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY
48230557Sjimharris * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
49230557Sjimharris * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
50230557Sjimharris * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
51230557Sjimharris *
52230557Sjimharris * $FreeBSD$
53230557Sjimharris */
54230557Sjimharris#ifndef __SCU_EVENT_CODES_HEADER__
55230557Sjimharris#define __SCU_EVENT_CODES_HEADER__
56230557Sjimharris
57230557Sjimharris/**
58230557Sjimharris * @file
59230557Sjimharris *
60230557Sjimharris * @brief This file contains the constants and macros for the SCU event codes.
61230557Sjimharris */
62230557Sjimharris
63230557Sjimharris#ifdef __cplusplus
64230557Sjimharrisextern "C" {
65230557Sjimharris#endif // __cplusplus
66230557Sjimharris
67230557Sjimharris#define SCU_EVENT_TYPE_CODE_SHIFT      24
68230557Sjimharris#define SCU_EVENT_TYPE_CODE_MASK       0x0F000000
69230557Sjimharris
70230557Sjimharris#define SCU_EVENT_SPECIFIC_CODE_SHIFT  18
71230557Sjimharris#define SCU_EVENT_SPECIFIC_CODE_MASK   0x00FC0000
72230557Sjimharris
73230557Sjimharris#define SCU_EVENT_CODE_MASK \
74230557Sjimharris   (SCU_EVENT_TYPE_CODE_MASK | SCU_EVENT_SPECIFIC_CODE_MASK)
75230557Sjimharris
76230557Sjimharris/**
77230557Sjimharris * This macro constructs an SCU event type from the type value.
78230557Sjimharris */
79230557Sjimharris#define SCU_EVENT_TYPE(type) \
80230557Sjimharris   ((U32)(type) << SCU_EVENT_TYPE_CODE_SHIFT)
81230557Sjimharris
82230557Sjimharris/**
83230557Sjimharris * This macro constructs an SCU event specifier from the code value.
84230557Sjimharris */
85230557Sjimharris#define SCU_EVENT_SPECIFIC(code) \
86230557Sjimharris   ((U32)(code) << SCU_EVENT_SPECIFIC_CODE_SHIFT)
87230557Sjimharris
88230557Sjimharris/**
89230557Sjimharris * This macro constructs a combines an SCU event type and SCU event specifier
90230557Sjimharris * from the type and code values.
91230557Sjimharris */
92230557Sjimharris#define SCU_EVENT_MESSAGE(type, code) \
93230557Sjimharris   ((type) | SCU_EVENT_SPECIFIC(code))
94230557Sjimharris
95230557Sjimharris/**
96230557Sjimharris * @name SCU_EVENT_TYPES
97230557Sjimharris */
98230557Sjimharris/*@{*/
99230557Sjimharris#define SCU_EVENT_TYPE_SMU_COMMAND_ERROR  SCU_EVENT_TYPE(0x08)
100230557Sjimharris#define SCU_EVENT_TYPE_SMU_PCQ_ERROR      SCU_EVENT_TYPE(0x09)
101230557Sjimharris#define SCU_EVENT_TYPE_SMU_ERROR          SCU_EVENT_TYPE(0x00)
102230557Sjimharris#define SCU_EVENT_TYPE_TRANSPORT_ERROR    SCU_EVENT_TYPE(0x01)
103230557Sjimharris#define SCU_EVENT_TYPE_BROADCAST_CHANGE   SCU_EVENT_TYPE(0x02)
104230557Sjimharris#define SCU_EVENT_TYPE_OSSP_EVENT         SCU_EVENT_TYPE(0x03)
105230557Sjimharris#define SCU_EVENT_TYPE_FATAL_MEMORY_ERROR SCU_EVENT_TYPE(0x0F)
106230557Sjimharris#define SCU_EVENT_TYPE_RNC_SUSPEND_TX     SCU_EVENT_TYPE(0x04)
107230557Sjimharris#define SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX  SCU_EVENT_TYPE(0x05)
108230557Sjimharris#define SCU_EVENT_TYPE_RNC_OPS_MISC       SCU_EVENT_TYPE(0x06)
109230557Sjimharris#define SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT SCU_EVENT_TYPE(0x07)
110230557Sjimharris#define SCU_EVENT_TYPE_ERR_CNT_EVENT      SCU_EVENT_TYPE(0x0A)
111230557Sjimharris/*@}*/
112230557Sjimharris
113230557Sjimharris/**
114230557Sjimharris * @name SCU_EVENT_SPECIFIERS
115230557Sjimharris */
116230557Sjimharris/*@{*/
117230557Sjimharris#define SCU_EVENT_SPECIFIER_DRIVER_SUSPEND 0x20
118230557Sjimharris#define SCU_EVENT_SPECIFIER_RNC_RELEASE    0x00
119230557Sjimharris/*@}*/
120230557Sjimharris
121230557Sjimharris/**
122230557Sjimharris * @name SMU_COMMAND_EVENTS
123230557Sjimharris */
124230557Sjimharris/*@{*/
125230557Sjimharris#define SCU_EVENT_INVALID_CONTEXT_COMMAND \
126230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_COMMAND_ERROR, 0x00)
127230557Sjimharris/*@}*/
128230557Sjimharris
129230557Sjimharris/**
130230557Sjimharris * @name SMU_PCQ_EVENTS
131230557Sjimharris */
132230557Sjimharris/*@{*/
133230557Sjimharris#define SCU_EVENT_UNCORRECTABLE_PCQ_ERROR \
134230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_PCQ_ERROR, 0x00)
135230557Sjimharris/*@}*/
136230557Sjimharris
137230557Sjimharris/**
138230557Sjimharris *  @name SMU_EVENTS
139230557Sjimharris */
140230557Sjimharris/*@{*/
141230557Sjimharris#define SCU_EVENT_UNCORRECTABLE_REGISTER_WRITE \
142230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x02)
143230557Sjimharris#define SCU_EVENT_UNCORRECTABLE_REGISTER_READ \
144230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x03)
145230557Sjimharris#define SCU_EVENT_PCIE_INTERFACE_ERROR \
146230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x04)
147230557Sjimharris#define SCU_EVENT_FUNCTION_LEVEL_RESET \
148230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_SMU_ERROR, 0x05)
149230557Sjimharris/*@}*/
150230557Sjimharris
151230557Sjimharris/**
152230557Sjimharris * @name TRANSPORT_LEVEL_ERRORS
153230557Sjimharris */
154230557Sjimharris/*@{*/
155230557Sjimharris#define SCU_EVENT_ACK_NAK_TIMEOUT_ERROR \
156230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_TRANSPORT_ERROR, 0x00)
157230557Sjimharris/*@}*/
158230557Sjimharris
159230557Sjimharris/**
160230557Sjimharris * @name BROADCAST_CHANGE_EVENTS
161230557Sjimharris */
162230557Sjimharris/*@{*/
163230557Sjimharris#define SCU_EVENT_BROADCAST_CHANGE \
164230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x01)
165230557Sjimharris#define SCU_EVENT_BROADCAST_RESERVED0 \
166230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x02)
167230557Sjimharris#define SCU_EVENT_BROADCAST_RESERVED1 \
168230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x03)
169230557Sjimharris#define SCU_EVENT_BROADCAST_SES \
170230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x04)
171230557Sjimharris#define SCU_EVENT_BROADCAST_EXPANDER \
172230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x05)
173230557Sjimharris#define SCU_EVENT_BROADCAST_AEN \
174230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x06)
175230557Sjimharris#define SCU_EVENT_BROADCAST_RESERVED3 \
176230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x07)
177230557Sjimharris#define SCU_EVENT_BROADCAST_RESERVED4 \
178230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x08)
179230557Sjimharris#define SCU_EVENT_PE_SUSPENDED \
180230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_BROADCAST_CHANGE, 0x09)
181230557Sjimharris/*@}*/
182230557Sjimharris
183230557Sjimharris/**
184230557Sjimharris * @name OSSP_EVENTS
185230557Sjimharris */
186230557Sjimharris/*@{*/
187230557Sjimharris#define SCU_EVENT_PORT_SELECTOR_DETECTED \
188230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x10)
189230557Sjimharris#define SCU_EVENT_SENT_PORT_SELECTION \
190230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x11)
191230557Sjimharris#define SCU_EVENT_HARD_RESET_TRANSMITTED \
192230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x12)
193230557Sjimharris#define SCU_EVENT_HARD_RESET_RECEIVED \
194230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x13)
195230557Sjimharris#define SCU_EVENT_RECEIVED_IDENTIFY_TIMEOUT \
196230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x15)
197230557Sjimharris#define SCU_EVENT_LINK_FAILURE \
198230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x16)
199230557Sjimharris#define SCU_EVENT_SATA_SPINUP_HOLD \
200230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x17)
201230557Sjimharris#define SCU_EVENT_SAS_15_SSC \
202230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x18)
203230557Sjimharris#define SCU_EVENT_SAS_15 \
204230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x19)
205230557Sjimharris#define SCU_EVENT_SAS_30_SSC \
206230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1A)
207230557Sjimharris#define SCU_EVENT_SAS_30 \
208230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1B)
209230557Sjimharris#define SCU_EVENT_SAS_60_SSC \
210230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1C)
211230557Sjimharris#define SCU_EVENT_SAS_60 \
212230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1D)
213230557Sjimharris#define SCU_EVENT_SATA_15_SSC \
214230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1E)
215230557Sjimharris#define SCU_EVENT_SATA_15 \
216230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x1F)
217230557Sjimharris#define SCU_EVENT_SATA_30_SSC \
218230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x20)
219230557Sjimharris#define SCU_EVENT_SATA_30 \
220230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x21)
221230557Sjimharris#define SCU_EVENT_SATA_60_SSC \
222230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x22)
223230557Sjimharris#define SCU_EVENT_SATA_60 \
224230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x23)
225230557Sjimharris#define SCU_EVENT_SAS_PHY_DETECTED \
226230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x24)
227230557Sjimharris#define SCU_EVENT_SATA_PHY_DETECTED \
228230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_OSSP_EVENT, 0x25)
229230557Sjimharris/*@}*/
230230557Sjimharris
231230557Sjimharris/**
232230557Sjimharris * @name FATAL_INTERNAL_MEMORY_ERROR_EVENTS
233230557Sjimharris */
234230557Sjimharris/*@{*/
235230557Sjimharris#define SCU_EVENT_TSC_RNSC_UNCORRECTABLE_ERROR \
236230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR,  0x00)
237230557Sjimharris#define SCU_EVENT_TC_RNC_UNCORRECTABLE_ERROR \
238230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR,  0x01)
239230557Sjimharris#define SCU_EVENT_ZPT_UNCORRECTABLE_ERROR \
240230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_FATAL_MEMORY_ERROR,  0x02)
241230557Sjimharris/*@}*/
242230557Sjimharris
243230557Sjimharris/**
244230557Sjimharris * @name REMOTE_NODE_SUSPEND_EVENTS
245230557Sjimharris */
246230557Sjimharris/*@{*/
247230557Sjimharris#define SCU_EVENT_TL_RNC_SUSPEND_TX \
248230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x00)
249230557Sjimharris#define SCU_EVENT_TL_RNC_SUSPEND_TX_RX \
250230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX, 0x00)
251230557Sjimharris#define SCU_EVENT_TL_RNC_SUSPEND_TX_DONE_DATA_LEN_ERR \
252230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x1A)
253230557Sjimharris#define SCU_EVENT_TL_RNC_SUSPEND_TX_DONE_OFFSET_ERR \
254230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x20)
255230557Sjimharris#define SCU_EVENT_TL_RNC_SUSPEND_TX_DONE_DMASETUP_DIERR \
256230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x27)
257230557Sjimharris#define SCU_EVENT_TL_RNC_SUSPEND_TX_DONE_XFERCNT_ERR \
258230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x28)
259230557Sjimharris#define SCU_EVENT_TL_RNC_SUSPEND_TX_RX_DONE_PLD_LEN_ERR \
260230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX, 0x21)
261230557Sjimharris#define SCU_EVENT_DRIVER_POST_RNC_SUSPEND_TX \
262230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX, 0x20)
263230557Sjimharris#define SCU_EVENT_DRIVER_POST_RNC_SUSPEND_TX_RX \
264230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_SUSPEND_TX_RX, 0x20)
265230557Sjimharris/*@}*/
266230557Sjimharris
267230557Sjimharris/**
268230557Sjimharris * @name REMOTE_NODE_MISC_EVENTS
269230557Sjimharris */
270230557Sjimharris/*@{*/
271230557Sjimharris#define SCU_EVENT_POST_RCN_RELEASE \
272230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC,SCU_EVENT_SPECIFIER_RNC_RELEASE)
273230557Sjimharris#define SCU_EVENT_POST_IT_NEXUS_LOSS_TIMER_ENABLE \
274230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x01)
275230557Sjimharris#define SCU_EVENT_POST_IT_NEXUS_LOSS_TIMER_DISABLE \
276230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x02)
277230557Sjimharris#define SCU_EVENT_POST_RNC_COMPLETE \
278230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x03)
279230557Sjimharris#define SCU_EVENT_POST_RNC_INVALIDATE_COMPLETE \
280230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_RNC_OPS_MISC, 0x04)
281230557Sjimharris/*@}*/
282230557Sjimharris
283230557Sjimharris/**
284230557Sjimharris * @name ERROR_COUNT_EVENT
285230557Sjimharris */
286230557Sjimharris/*@{*/
287230557Sjimharris#define SCU_ERR_CNT_RX_CREDIT_BLOCKED_RECEIVED_INDEX  0x00
288230557Sjimharris#define SCU_ERR_CNT_TX_DONE_CREDIT_TIMEOUT_INDEX      0x01
289230557Sjimharris#define SCU_ERR_CNT_RX_DONE_CREDIT_TIMEOUT_INDEX      0x02
290230557Sjimharris#define SCU_ERR_CNT_INACTIVITY_TIMER_EXPIRED_INDEX    0x03
291230557Sjimharris#define SCU_ERR_CNT_TX_DONE_ACK_NAK_TIMEOUT_INDEX     0x04
292230557Sjimharris#define SCU_ERR_CNT_RX_DONE_ACK_NAK_TIMEOUT_INDEX     0x05
293230557Sjimharris#define SCU_ERR_CNT_MAX_INDEX                         0x06
294230557Sjimharris
295230557Sjimharris#define SCU_EVENT_ERR_CNT(name) \
296230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_ERR_CNT_EVENT, SCU_ERR_CNT_ ## name ## _INDEX)
297230557Sjimharris/*@}*/
298230557Sjimharris
299230557Sjimharris/**
300230557Sjimharris * This macro returns the SCU event type from the event code.
301230557Sjimharris */
302230557Sjimharris#define scu_get_event_type(event_code) \
303230557Sjimharris   ((event_code) & SCU_EVENT_TYPE_CODE_MASK)
304230557Sjimharris
305230557Sjimharris/**
306230557Sjimharris * This macro returns the SCU event specifier from the event code.
307230557Sjimharris */
308230557Sjimharris#define scu_get_event_specifier(event_code) \
309230557Sjimharris   ((event_code) & SCU_EVENT_SPECIFIC_CODE_MASK)
310230557Sjimharris
311230557Sjimharris/**
312230557Sjimharris * This macro returns the combined SCU event type and SCU event specifier from
313230557Sjimharris * the event code.
314230557Sjimharris */
315230557Sjimharris#define scu_get_event_code(event_code) \
316230557Sjimharris   ((event_code) & SCU_EVENT_CODE_MASK)
317230557Sjimharris
318230557Sjimharris
319230557Sjimharris/**
320230557Sjimharris * @name PTS_SCHEDULE_EVENT
321230557Sjimharris */
322230557Sjimharris/*@{*/
323230557Sjimharris#define SCU_EVENT_SMP_RESPONSE_NO_PE \
324230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x00)
325230557Sjimharris#define SCU_EVENT_SPECIFIC_SMP_RESPONSE_NO_PE \
326230557Sjimharris   scu_get_event_specifier(SCU_EVENT_SMP_RESPONSE_NO_PE)
327230557Sjimharris
328230557Sjimharris#define SCU_EVENT_TASK_TIMEOUT \
329230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x01)
330230557Sjimharris#define SCU_EVENT_SPECIFIC_TASK_TIMEOUT \
331230557Sjimharris   scu_get_event_specifier(SCU_EVENT_TASK_TIMEOUT)
332230557Sjimharris
333230557Sjimharris#define SCU_EVENT_IT_NEXUS_TIMEOUT \
334230557Sjimharris   SCU_EVENT_MESSAGE(SCU_EVENT_TYPE_PTX_SCHEDULE_EVENT, 0x02)
335230557Sjimharris#define SCU_EVENT_SPECIFIC_IT_NEXUS_TIMEOUT \
336230557Sjimharris   scu_get_event_specifier(SCU_EVENT_IT_NEXUS_TIMEOUT)
337230557Sjimharris/*@}*/
338230557Sjimharris
339230557Sjimharris#ifdef __cplusplus
340230557Sjimharris}
341230557Sjimharris#endif // __cplusplus
342230557Sjimharris
343230557Sjimharris#endif // __SCU_EVENT_CODES_HEADER__
344