40 lines
1.5 KiB
C
40 lines
1.5 KiB
C
|
// -*- mode: C++; tab-width: 4; indent-tabs-mode: nil -*- (for GNU Emacs)
|
||
|
//
|
||
|
// Copyright (c) 1985-2000 Microsoft Corporation
|
||
|
//
|
||
|
// This file is part of the Microsoft Research IPv6 Network Protocol Stack.
|
||
|
// You should have received a copy of the Microsoft End-User License Agreement
|
||
|
// for this software along with this release; see the file "license.txt".
|
||
|
// If not, please see http://www.research.microsoft.com/msripv6/license.htm,
|
||
|
// or write to Microsoft Research, One Microsoft Way, Redmond, WA 98052-6399.
|
||
|
//
|
||
|
// Abstract:
|
||
|
//
|
||
|
// Transmission Control Protocol data delivery code definitions.
|
||
|
//
|
||
|
|
||
|
|
||
|
extern void FreeRcvReq(struct TCPRcvReq *FreedReq);
|
||
|
|
||
|
extern uint IndicateData(struct TCB *RcvTCB, uint RcvFlags,
|
||
|
IPv6Packet *InPacket, uint Size);
|
||
|
extern uint BufferData(struct TCB *RcvTCB, uint RcvFlags,
|
||
|
IPv6Packet *InPacket, uint Size);
|
||
|
extern uint PendData(struct TCB *RcvTCB, uint RcvFlags, IPv6Packet *InPacket,
|
||
|
uint Size);
|
||
|
|
||
|
extern void IndicatePendingData(struct TCB *RcvTCB, struct TCPRcvReq *RcvReq,
|
||
|
KIRQL Irql);
|
||
|
|
||
|
extern void HandleUrgent(struct TCB *RcvTCB, struct TCPRcvInfo *RcvInfo,
|
||
|
IPv6Packet *Packet, uint *Size);
|
||
|
|
||
|
extern TDI_STATUS TdiReceive(PTDI_REQUEST Request, ushort *Flags,
|
||
|
uint *RcvLength, PNDIS_BUFFER Buffer);
|
||
|
|
||
|
extern void PushData(struct TCB *PushTCB);
|
||
|
|
||
|
extern KSPIN_LOCK TCPRcvReqFreeLock; // Protects rcv req free list.
|
||
|
|
||
|
extern SLIST_HEADER TCPRcvReqFree;
|