mirror of https://github.com/tongzx/nt5src
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
75 lines
1.3 KiB
75 lines
1.3 KiB
/*++
|
|
|
|
Copyright (c) 1996 Microsoft Corporation
|
|
|
|
Module Name:
|
|
|
|
poll.c
|
|
|
|
Abstract:
|
|
|
|
This module contains code to poll for debugger breakin.
|
|
|
|
Author:
|
|
|
|
David N. Cutler (davec) 27-Nov-96
|
|
|
|
Revision History:
|
|
|
|
--*/
|
|
|
|
#include "bd.h"
|
|
|
|
LOGICAL
|
|
BdPollBreakIn(
|
|
VOID
|
|
)
|
|
|
|
/*++
|
|
|
|
Routine Description:
|
|
|
|
This function checks to determine if a breakin packet is pending.
|
|
If a packet is present.
|
|
|
|
A packet is present if:
|
|
|
|
There is a valid character which matches BREAK_CHAR.
|
|
|
|
Return Value:
|
|
|
|
A function value of TRUE is returned if a breakin packet is present.
|
|
Otherwise, a value of FALSE is returned.
|
|
|
|
--*/
|
|
|
|
{
|
|
|
|
LOGICAL BreakIn;
|
|
UCHAR Input;
|
|
ULONG Status;
|
|
|
|
//
|
|
// If the debugger is enabled, check if a breakin by the kernel
|
|
// debugger is pending.
|
|
//
|
|
|
|
BreakIn = FALSE;
|
|
if (BdDebuggerEnabled != FALSE) {
|
|
if (BdControlCPending != FALSE) {
|
|
BdControlCPressed = TRUE;
|
|
BreakIn = TRUE;
|
|
BdControlCPending = FALSE;
|
|
|
|
} else {
|
|
Status = BlPortPollByte(BdFileId, &Input);
|
|
if ((Status == CP_GET_SUCCESS) &&
|
|
(Input == BREAKIN_PACKET_BYTE)) {
|
|
BreakIn = TRUE;
|
|
BdControlCPressed = TRUE;
|
|
}
|
|
}
|
|
}
|
|
|
|
return BreakIn;
|
|
}
|