|
|
/*++
Copyright (c) 1991 Microsoft Corporation
Module Name:
sh_proto.h
Abstract:
This header file contains the prototypes of the functions that are local to this directory. Non-local items go to ..\inc.
Author:
Eric Chin (ericc) September 29, 1992
Revision History:
--*/
#ifndef _SH_PROTO_
#define _SH_PROTO_
//
// Stream Head Driver Dispatch Functions
//
NTSTATUS SHDispFdInsert( IN PIRP irp, IN PIO_STACK_LOCATION irpsp );
NTSTATUS SHDispGetMsg ( IN PIRP irp, IN PIO_STACK_LOCATION irpsp );
NTSTATUS SHDispIoctl ( IN PIRP irp, IN PIO_STACK_LOCATION irpsp );
NTSTATUS SHDispIStr( IN PIRP irp );
NTSTATUS SHDispPoll ( IN PIRP irp, IN PIO_STACK_LOCATION irpsp );
NTSTATUS SHDispPutMsg ( IN PIRP irp, IN PIO_STACK_LOCATION irpsp );
//
// Private Function Prototypes
//
NTSTATUS SHpCloseDelay ( IN strm_t *stream );
VOID SHpCloseRun ( VOID );
VOID SHpUnlinkRun ( VOID );
NTSTATUS SHpCloseStream ( IN PIRP irp );
VOID SHpGenReply( IN PIRP irp, IN int retval, IN int MyErrno );
NTSTATUS SHpOpenStream ( IN PIRP irp, IN dev_t sdevno );
NTSTATUS StrmpCreateThreads( VOID );
NTSTATUS StrmpTerminateThreads( VOID );
NTSTATUS do_link( IN PIRP irp, IN char *inbuf, IN ULONG nbytes, OUT int *pretval, OUT int *pMyErrno );
NTSTATUS do_poll( IN PIRP irp, IN OUT char *inbuf, IN ULONG nbytes, OUT int *pretval, OUT int *pMyErrno );
NTSTATUS do_push( IN PIRP irp, IN char *name, IN ULONG nbytes, OUT int *pretval, OUT int *pMyErrno );
NTSTATUS do_sdebug( IN PIRP irp, IN PFILE_OBJECT pfileobj, IN char *inbuf, IN ULONG nbytes, OUT int *pretval, OUT int *pMyErrno );
NTSTATUS do_unlink( IN PIRP irp, IN char *inbuf, IN ULONG nbytes, OUT int *pretval, OUT int *pMyErrno );
NTSTATUS init_poll( VOID );
NTSTATUS init_u( VOID );
void iocrdy( IN PSTREAM_ENDPOINT ms, IN mblk_t *mp, IN int *spl_levelp );
int iocreply( IN mblk_t *mp, IN PIRP irp );
mblk_t * irptomp( IN PIRP irp, IN int pri, IN int ctlsize, IN int datasize, IN char *mbuf );
void msgrdy( IN struct msg_strm *ms, IN int mtype );
int msgreply( IN STREAM_ENDPOINT *ms, IN PIRP irp );
int shopen( IN int dev, IN int flag, IN strm_t **sp, IN caddr_t handle );
int shortreply( IN PIRP irp, IN int status, IN int nbytes );
int shrange( IN strm_t *strm, IN int ctlsize, IN int datasize );
int shready( IN strm_t *strm, IN int pri );
int shtype( IN strm_t *strm );
void shwsrv( IN struct msg_strm *ms );
void sigevent( IN char *cp, IN int signo );
int st_getmsg( IN strm_t *s, IN int datasize, IN int ctlsize, IN OUT int *flags, IN OUT int *more, OUT mblk_t **mpp, OUT int *remains );
void st_putback( IN strm_t *s, IN mblk_t *mp, IN int remains );
void strmevent( IN PSTREAM_ENDPOINT ms, IN int rerror, IN int werror, IN int type );
void stropts( IN char *cp, IN struct stroptions *opts );
int st_getmsg( IN strm_t *s, IN int datasize, IN int ctlsize, IN OUT int *flags, IN OUT int *more, OUT mblk_t **mpp, OUT int *remains );
void st_putback( IN strm_t *s, IN mblk_t *mp, IN int remains );
void trypoll( );
STATIC int mptoirp( IN mblk_t *mp, IN PIRP irp );
#endif /* _SH_PROTO_ */
|