📄 ft.h
字号:
//
// Copyright (c) Microsoft Corporation. All rights reserved.
//
//
// Use of this source code is subject to the terms of the Microsoft end-user
// license agreement (EULA) under which you licensed this SOFTWARE PRODUCT.
// If you did not accept the terms of the EULA, you are not authorized to use
// this source code. For a copy of the EULA, please see the LICENSE.RTF on your
// install media.
//
////////////////////////////////////////////////////////////////////////////////
//
// SDMA TUX DLL
//
// Module: ft.h
// Declares the TUX function table and test function prototypes EXCEPT
// when included by globals.cpp, in which case it DEFINES the function
// table.
//
// Revision History:
//
////////////////////////////////////////////////////////////////////////////////
#if (!defined(__FT_H__) || defined(__GLOBALS_CPP__))
#ifndef __FT_H__
#define __FT_H__
#endif
////////////////////////////////////////////////////////////////////////////////
// Local macros
#ifdef __DEFINE_FTE__
#undef BEGIN_FTE
#undef FTE
#undef FTH
#undef END_FTE
#define BEGIN_FTE FUNCTION_TABLE_ENTRY g_lpFTE[] = {
#define FTH(a, b) { TEXT(b), a, 0, 0, NULL },
#define FTE(a, b, c, d, e) { TEXT(b), a, d, c, e },
#define END_FTE { NULL, 0, 0, 0, NULL } };
#else // __DEFINE_FTE__
#ifdef __GLOBALS_CPP__
#define BEGIN_FTE
#else // __GLOBALS_CPP__
#define BEGIN_FTE extern FUNCTION_TABLE_ENTRY g_lpFTE[];
#endif // __GLOBALS_CPP__
#define FTH(a, b)
#define FTE(a, b, c, d, e) TESTPROCAPI e(UINT, TPPARAM, LPFUNCTION_TABLE_ENTRY);
#define END_FTE
#endif // __DEFINE_FTE__
////////////////////////////////////////////////////////////////////////////////
// TUX Function table
// To create the function table and function prototypes, two macros are
// available:
//
// FTH(level, description)
// (Function Table Header) Used for entries that don't have functions,
// entered only as headers (or comments) into the function table.
//
// FTE(level, description, code, param, function)
// (Function Table Entry) Used for all functions. DON'T use this macro
// if the "function" field is NULL. In that case, use the FTH macro.
//
// You must not use the TEXT or _T macros here. This is done by the FTH and FTE
// macros.
//
// In addition, the table must be enclosed by the BEGIN_FTE and END_FTE macros.
BEGIN_FTE
FTH(0, "SDMA test cases")
FTE(1, "Channel open/close", 1, 0, OpenCloseChanTest)
FTE(1, "Memory-to-Memory transfer", 2, 0, Mem2MemTest)
END_FTE
////////////////////////////////////////////////////////////////////////////////
#endif // !__FT_H__ || __GLOBALS_CPP__
////////////////////////////////////////////////////////////////////////////////
//
// SDMA TUX DLL
// Copyright (c) Microsoft Corporation
//
// Module: globals.h
// Declares all global variables and test function prototypes EXCEPT
// when included by globals.cpp, in which case it DEFINES global
// variables, including the function table.
//
// Revision History:
//
////////////////////////////////////////////////////////////////////////////////
#ifndef __GLOBALS_H__
#define __GLOBALS_H__
////////////////////////////////////////////////////////////////////////////////
// Local macros
#ifdef __GLOBALS_CPP__
#define GLOBAL
#define INIT(x) = x
#else // __GLOBALS_CPP__
#define GLOBAL extern
#define INIT(x)
#endif // __GLOBALS_CPP__
////////////////////////////////////////////////////////////////////////////////
// Global macros
#define countof(x) (sizeof(x)/sizeof(*(x)))
////////////////////////////////////////////////////////////////////////////////
// Global function prototypes
void Debug(LPCTSTR, ...);
SHELLPROCAPI ShellProc(UINT, SPPARAM);
////////////////////////////////////////////////////////////////////////////////
// TUX Function table
#include "ft.h"
////////////////////////////////////////////////////////////////////////////////
// Globals
// Global CKato logging object. Set while processing SPM_LOAD_DLL message.
GLOBAL CKato *g_pKato INIT(NULL);
// Global shell info structure. Set while processing SPM_SHELL_INFO message.
GLOBAL SPS_SHELL_INFO *g_pShellInfo;
// Add more globals of your own here. There are two macros available for this:
// GLOBAL Precede each declaration/definition with this macro.
// INIT Use this macro to initialize globals, instead of typing "= ..."
//
// For example, to declare two DWORDs, one uninitialized and the other
// initialized to 0x80000000, you could enter the following code:
//
// GLOBAL DWORD g_dwUninit,
// g_dwInit INIT(0x80000000);
////////////////////////////////////////////////////////////////////////////////
#endif // __GLOBALS_H__
////////////////////////////////////////////////////////////////////////////////
//
// SDMA TUX DLL
// Copyright (c) Microsoft Corporation
//
// Module: main.h
// Header for all files in the project.
//
// Revision History:
//
////////////////////////////////////////////////////////////////////////////////
#ifndef __MAIN_H__
#define __MAIN_H__
////////////////////////////////////////////////////////////////////////////////
// Included files
#include <windows.h>
#include <stdlib.h>
#include <tchar.h>
#include <tux.h>
#include <kato.h>
////////////////////////////////////////////////////////////////////////////////
// Suggested log verbosities
#define LOG_EXCEPTION 0
#define LOG_FAIL 2
#define LOG_ABORT 4
#define LOG_SKIP 6
#define LOG_NOT_IMPLEMENTED 8
#define LOG_PASS 10
#define LOG_DETAIL 12
#define LOG_COMMENT 14
////////////////////////////////////////////////////////////////////////////////
#endif // __MAIN_H__
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -