sys: FSP_ENTER/FSP_LEAVE

This commit is contained in:
Bill Zissimopoulos
2015-11-17 11:50:12 -08:00
parent be46a057c5
commit ef2d278311
19 changed files with 136 additions and 120 deletions

View File

@ -11,6 +11,7 @@
#define DRIVER_NAME "winfsp"
/* DEBUGLOG */
#if DBG
#define DEBUGLOG(fmt, ...) \
DbgPrint(DRIVER_NAME "!" __FUNCTION__ ": " fmt "\n", __VA_ARGS__)
@ -18,6 +19,51 @@
#define DEBUGLOG(fmt, ...) ((void)0)
#endif
/* enter/leave*/
#if DBG
#define FSP_ENTER_(...) \
__VA_ARGS__; \
try \
{
#define FSP_LEAVE_(rfmt, r, fmt, ...) \
goto fsp_leave_label; \
fsp_leave_label:; \
} \
finally \
{ \
const char *fsp_leave_format = AbnormalTermination() ? \
DRIVER_NAME "!" __FUNCTION__ "(" fmt ") = !AbnormalTermination\n" : \
DRIVER_NAME "!" __FUNCTION__ "(" fmt ")" rfmt "\n"; \
DbgPrint(fsp_leave_format, __VA_ARGS__, r); \
}
#else
#define FSP_ENTER_(...) \
__VA_ARGS__; \
{
#define FSP_LEAVE_(rfmt, r, fmt, ...) \
goto fsp_leave_label; \
fsp_leave_label:; \
}
#endif
#define FSP_ENTER(...) \
NTSTATUS Result = STATUS_SUCCESS; FSP_ENTER_(__VA_ARGS__)
#define FSP_LEAVE(fmt, ...) \
FSP_LEAVE_(" = %#lx", (long)Result, fmt, __VA_ARGS__); return Result
#define FSP_ENTER_BOOL(...) \
BOOLEAN Result = TRUE; FSP_ENTER_(__VA_ARGS__)
#define FSP_LEAVE_BOOL(fmt, ...) \
FSP_LEAVE_(" = %d", (int)Result, fmt, __VA_ARGS__); return Result
#define FSP_ENTER_VOID(...) \
FSP_ENTER_(__VA_ARGS__)
#define FSP_LEAVE_VOID(fmt, ...) \
FSP_LEAVE_("", 0, fmt, __VA_ARGS__)
#define FSP_RETURN(...) \
do \
{ \
__VA_ARGS__; \
goto fsp_leave_label; \
} while (0,0)
/* driver major functions */
DRIVER_DISPATCH FspCleanup;
DRIVER_DISPATCH FspClose;
@ -53,4 +99,7 @@ FAST_IO_RELEASE_FOR_CCFLUSH FspReleaseForCcFlush;
/* extern */
extern PDEVICE_OBJECT FspDeviceObject;
/* disable warnings */
#pragma warning(disable:4100) /* unreferenced formal parameter */
#endif