mirror of
https://github.com/reactos/reactos.git
synced 2024-12-27 17:44:45 +00:00
Some more stubs files for the TDI kernel module.
svn path=/trunk/; revision=785
This commit is contained in:
parent
8a20ddc7d4
commit
174adb3955
8 changed files with 619 additions and 0 deletions
111
reactos/drivers/net/tdi/Makefile
Normal file
111
reactos/drivers/net/tdi/Makefile
Normal file
|
@ -0,0 +1,111 @@
|
|||
# $Id: Makefile,v 1.1 1999/11/20 20:41:28 ea Exp $
|
||||
#
|
||||
# TDI.SYS build spec
|
||||
#
|
||||
|
||||
TARGETNAME=tdi
|
||||
|
||||
BASE_CFLAGS = -I../../include
|
||||
|
||||
OBJECTS_CTE = cte/stubs.o
|
||||
OBJECTS_TDI = tdi/stubs.o tdi/obsolete.o
|
||||
|
||||
OBJECTS_MISC = misc/main.o misc/$(TARGETNAME).coff
|
||||
|
||||
OBJECTS = $(OBJECTS_CTE) $(OBJECTS_TDI) $(OBJECTS_MISC)
|
||||
|
||||
all: $(TARGETNAME).sys
|
||||
|
||||
misc/$(TARGETNAME).coff: misc/$(TARGETNAME).rc ../../include/reactos/resource.h
|
||||
|
||||
ifeq ($(DOSCLI),yes)
|
||||
CLEAN_FILES = \
|
||||
cte\*.o tdi\*.o misc\*.o misc\*.coff \
|
||||
$(TARGETNAME).o $(TARGETNAME).a \
|
||||
junk.tmp base.tmp temp.exp \
|
||||
$(TARGETNAME).sys $(TARGETNAME).sym
|
||||
else
|
||||
CLEAN_FILES = \
|
||||
cte/*.o tdi/*.o misc/*.o misc/*.coff \
|
||||
$(TARGETNAME).o $(TARGETNAME).a \
|
||||
junk.tmp base.tmp temp.exp \
|
||||
$(TARGETNAME).sys $(TARGETNAME).sym
|
||||
endif
|
||||
|
||||
$(TARGETNAME).sys: $(OBJECTS) $(TARGETNAME).def
|
||||
$(LD) -r $(OBJECTS) -o $(TARGETNAME).o
|
||||
$(DLLTOOL) \
|
||||
--dllname $(TARGETNAME).sys \
|
||||
--def $(TARGETNAME).def \
|
||||
--output-lib $(TARGETNAME).a
|
||||
$(CC) \
|
||||
--subsystem=native \
|
||||
-mdll \
|
||||
--dll \
|
||||
-e _DllMain@8 \
|
||||
-o junk.tmp \
|
||||
-Wl,--image-base,0x0 \
|
||||
-Wl,--file-alignment,0x1000 \
|
||||
-Wl,--section-alignment,0x1000 \
|
||||
-Wl,--defsym,_end=end \
|
||||
-Wl,--defsym,_edata=__data_end__ \
|
||||
-Wl,--defsym,_etext=etext \
|
||||
-Wl,--base-file,base.tmp $(TARGETNAME).o \
|
||||
-specs=../../specs \
|
||||
../../ntoskrnl/ntoskrnl.a
|
||||
- $(RM) junk.tmp
|
||||
$(DLLTOOL) \
|
||||
--dllname $(TARGETNAME).sys \
|
||||
--base-file base.tmp \
|
||||
--output-exp temp.exp \
|
||||
--def $(TARGETNAME).def
|
||||
- $(RM) base.tmp
|
||||
$(CC) \
|
||||
--subsystem=native \
|
||||
-mdll \
|
||||
--dll \
|
||||
-e _DllMain@8 \
|
||||
-o $(TARGETNAME).sys \
|
||||
$(TARGETNAME).o \
|
||||
../../ntoskrnl/ntoskrnl.a \
|
||||
-Wl,--image-base,0x0 \
|
||||
-Wl,--file-alignment,0x1000 \
|
||||
-Wl,--section-alignment,0x1000 \
|
||||
-Wl,--defsym,_end=end \
|
||||
-Wl,--defsym,_edata=__data_end__ \
|
||||
-Wl,--defsym,_etext=etext \
|
||||
-Wl,temp.exp \
|
||||
-specs=../../specs
|
||||
- $(RM) temp.exp
|
||||
$(NM) --numeric-sort $(TARGETNAME).sys > $(TARGETNAME).sym
|
||||
|
||||
clean: $(CLEAN_FILES:%=%_clean)
|
||||
|
||||
$(CLEAN_FILES:%=%_clean): %_clean:
|
||||
- $(RM) $*
|
||||
|
||||
.PHONY: clean $(CLEAN_FILES:%=%_clean)
|
||||
|
||||
floppy: $(FLOPPY_DIR)/drivers/$(TARGETNAME).sys
|
||||
|
||||
$(FLOPPY_DIR)/drivers/$(TARGETNAME).sys: $(TARGETNAME).sys
|
||||
ifeq ($(DOSCLI),yes)
|
||||
$(CP) $(TARGETNAME).sys $(FLOPPY_DIR)\drivers\$(TARGETNAME).sys
|
||||
else
|
||||
$(CP) $(TARGETNAME).sys $(FLOPPY_DIR)/drivers/$(TARGETNAME).sys
|
||||
endif
|
||||
|
||||
dist: $(DIST_DIR)/drivers/$(TARGETNAME).sys
|
||||
|
||||
$(DIST_DIR)/drivers/$(TARGETNAME).sys: $(TARGETNAME).sys
|
||||
ifeq ($(DOSCLI),yes)
|
||||
$(CP) $(TARGETNAME).sys ..\..\$(DIST_DIR)\drivers\$(TARGETNAME).sys
|
||||
else
|
||||
$(CP) $(TARGETNAME).sys ../../$(DIST_DIR)/drivers/$(TARGETNAME).sys
|
||||
endif
|
||||
|
||||
#WITH_DEBUGGING = yes
|
||||
#WIN32_LEAN_AND_MEAN = yes
|
||||
#WARNINGS_ARE_ERRORS = yes
|
||||
include ../../../rules.mak
|
||||
|
28
reactos/drivers/net/tdi/cte/string.c
Normal file
28
reactos/drivers/net/tdi/cte/string.c
Normal file
|
@ -0,0 +1,28 @@
|
|||
/* $Id: string.c,v 1.1 1999/11/20 20:41:29 ea Exp $
|
||||
*
|
||||
*/
|
||||
#include <ntos.h>
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
CTEAllocateString (
|
||||
DWORD Unknown0,
|
||||
DWORD Unknown1
|
||||
)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
CTEInitString (
|
||||
DWORD Unknown0,
|
||||
DWORD Unknown1
|
||||
)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
121
reactos/drivers/net/tdi/cte/stubs.c
Normal file
121
reactos/drivers/net/tdi/cte/stubs.c
Normal file
|
@ -0,0 +1,121 @@
|
|||
/* $Id: stubs.c,v 1.1 1999/11/20 20:41:29 ea Exp $
|
||||
*
|
||||
*/
|
||||
#include <ntos.h>
|
||||
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
CTEBlock (
|
||||
DWORD Unknown0
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
CTEInitEvent (
|
||||
DWORD Unknown0,
|
||||
DWORD Unknown1
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
CTEInitTimer (
|
||||
DWORD Unknown0
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
CTEInitialize (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
/* FIXME: what should it initialize? */
|
||||
return TRUE;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
CTELogEvent (
|
||||
DWORD Unknown0,
|
||||
DWORD Unknown1,
|
||||
DWORD Unknown2,
|
||||
DWORD Unknown3,
|
||||
DWORD Unknown4,
|
||||
DWORD Unknown5,
|
||||
DWORD Unknown6
|
||||
)
|
||||
{
|
||||
/* Probably call
|
||||
* IoAllocateErrorLogEntry and
|
||||
* IoWriteErrorLogEntry
|
||||
*/
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
CTEScheduleEvent (
|
||||
DWORD Unknown0,
|
||||
DWORD Unknown1
|
||||
)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
LONG
|
||||
STDCALL
|
||||
CTESignal (
|
||||
DWORD Unknown0,
|
||||
DWORD Unknown1
|
||||
)
|
||||
{
|
||||
#if 0
|
||||
PKEVENT kevent = (PKEVENT) Unknown0;
|
||||
|
||||
return KeSetEvent (
|
||||
kevent,
|
||||
0,
|
||||
FALSE
|
||||
);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
CTEStartTimer (
|
||||
DOWRD Unknown0,
|
||||
DOWRD Unknown1,
|
||||
DOWRD Unknown2,
|
||||
DOWRD Unknown3
|
||||
)
|
||||
{
|
||||
return FALSE;
|
||||
}
|
||||
|
||||
|
||||
ULONG
|
||||
STDCALL
|
||||
CTESystemUpTime (
|
||||
VOID
|
||||
)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
18
reactos/drivers/net/tdi/misc/main.c
Normal file
18
reactos/drivers/net/tdi/misc/main.c
Normal file
|
@ -0,0 +1,18 @@
|
|||
/* $Id: main.c,v 1.1 1999/11/20 20:41:29 ea Exp $
|
||||
*
|
||||
* DESCRIPTION: Entry point for TDI.SYS
|
||||
*/
|
||||
#include <ntos.h>
|
||||
|
||||
BOOLEAN
|
||||
STDCALL
|
||||
DllMain (
|
||||
IN PDRIVER_OBJECT DriverObject,
|
||||
IN PUNICODE_STRING RegistryPath
|
||||
)
|
||||
{
|
||||
return FALSE; /* ? */
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
39
reactos/drivers/net/tdi/misc/tdi.rc
Normal file
39
reactos/drivers/net/tdi/misc/tdi.rc
Normal file
|
@ -0,0 +1,39 @@
|
|||
/* $Id: tdi.rc,v 1.1 1999/11/20 20:41:29 ea Exp $ */
|
||||
#include <defines.h>
|
||||
#include <reactos/resource.h>
|
||||
|
||||
LANGUAGE LANG_ENGLISH, SUBLANG_ENGLISH_US
|
||||
|
||||
VS_VERSION_INFO VERSIONINFO
|
||||
FILEVERSION RES_UINT_FV_MAJOR,RES_UINT_FV_MINOR,RES_UINT_FV_REVISION,RES_UINT_FV_BUILD
|
||||
PRODUCTVERSION RES_UINT_PV_MAJOR,RES_UINT_PV_MINOR,RES_UINT_PV_REVISION,RES_UINT_PV_BUILD
|
||||
FILEFLAGSMASK 0x3fL
|
||||
#ifdef _DEBUG
|
||||
FILEFLAGS 0x1L
|
||||
#else
|
||||
FILEFLAGS 0x0L
|
||||
#endif
|
||||
FILEOS 0x40004L
|
||||
FILETYPE 0x2L
|
||||
FILESUBTYPE 0x0L
|
||||
BEGIN
|
||||
BLOCK "StringFileInfo"
|
||||
BEGIN
|
||||
BLOCK "040904b0"
|
||||
BEGIN
|
||||
VALUE "CompanyName", RES_STR_COMPANY_NAME
|
||||
VALUE "FileDescription", "TDI wrapper kernel module\0"
|
||||
VALUE "FileVersion", "0.0.0\0"
|
||||
VALUE "InternalName", "tdi\0"
|
||||
VALUE "LegalCopyright", RES_STR_LEGAL_COPYRIGHT
|
||||
VALUE "OriginalFilename", "tdi.sys\0"
|
||||
VALUE "ProductName", RES_STR_PRODUCT_NAME
|
||||
VALUE "ProductVersion", RES_STR_PRODUCT_VERSION
|
||||
END
|
||||
END
|
||||
BLOCK "VarFileInfo"
|
||||
BEGIN
|
||||
VALUE "Translation", 0x409, 1200
|
||||
END
|
||||
END
|
||||
|
181
reactos/drivers/net/tdi/tdi/handler.c
Normal file
181
reactos/drivers/net/tdi/tdi/handler.c
Normal file
|
@ -0,0 +1,181 @@
|
|||
/* $Id: handler.c,v 1.1 1999/11/20 20:41:29 ea Exp $
|
||||
*
|
||||
* DESCRIPTION: Default TDI event handlers.
|
||||
*/
|
||||
#include <ntos.h>
|
||||
|
||||
|
||||
|
||||
/* ClientEventChainedReceiveDatagram */
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiDefaultChainedRcvDatagramHandler (
|
||||
IN PVOID TdiEventContext,
|
||||
IN LONG SourceAddressLength,
|
||||
IN PVOID SourceAddress,
|
||||
IN LONG OptionsLength,
|
||||
IN PVOID Options,
|
||||
IN ULONG ReceiveDatagramFlags,
|
||||
IN ULONG ReceiveDatagramLength,
|
||||
IN ULONG StartingOffset,
|
||||
IN PMDL Tsdu,
|
||||
IN PVOID TsduDescriptor
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* ClientEventChainedReceiveExpedited */
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiDefaultChainedRcvExpeditedHandler (
|
||||
IN PVOID TdiEventContext,
|
||||
IN CONNECTION_CONTEXT ConnectionContext,
|
||||
IN ULONG ReceiveFlags,
|
||||
IN ULONG ReceiveLength,
|
||||
IN ULONG StartingOffset,
|
||||
IN PMDL Tsdu,
|
||||
IN PVOID TsduDescriptor
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* ClientEventChainedReceive */
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiDefaultChainedReceiveHandler (
|
||||
IN PVOID TdiEventContext,
|
||||
IN CONNECTION_CONTEXT ConnectionContext,
|
||||
IN ULONG ReceiveFlags,
|
||||
IN ULONG ReceiveLength,
|
||||
IN ULONG StartingOffset,
|
||||
IN PMDL Tsdu,
|
||||
IN PVOID TsduDescriptor
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* ClientEventConnect */
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiDefaultConnectHandler (
|
||||
IN PVOID TdiEventContext,
|
||||
IN LONG RemoteAddressLength,
|
||||
IN PVOID RemoteAddress,
|
||||
IN LONG UserDataLength,
|
||||
IN PVOID UserData,
|
||||
IN LONG OptionsLength,
|
||||
IN PVOID Options,
|
||||
OUT CONNECTION_CONTEXT * ConnectionContext,
|
||||
OUT PIRP * AcceptIrp
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* ClientEventDisconnect */
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiDefaultDisconnectHandler (
|
||||
IN PVOID TdiEventContext,
|
||||
IN CONNECTION_CONTEXT ConnectionContext,
|
||||
IN LONG DisconnectDataLength,
|
||||
IN PVOID DisconnectData,
|
||||
IN LONG DisconnectInformationLength,
|
||||
IN PVOID DisconnectInformation,
|
||||
IN ULONG DisconnectFlags
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* ClientEventError */
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiDefaultErrorHandler (
|
||||
IN PVOID TdiEventContext,
|
||||
IN NTSTATUS Status
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* ClientEventReceiveDatagram */
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiDefaultRcvDatagramHandler (
|
||||
IN PVOID TdiEventContext,
|
||||
IN LONG SourceAddressLength,
|
||||
IN PVOID SourceAddress,
|
||||
IN LONG OptionsLength,
|
||||
IN PVOID Options,
|
||||
IN ULONG ReceiveDatagramFlags,
|
||||
IN ULONG BytesIndicated,
|
||||
IN ULONG BytesAvailable,
|
||||
OUT ULONG * BytesTaken,
|
||||
IN PVOID Tsdu,
|
||||
OUT PIRP * IoRequestPacket
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* ClientEventReceiveExpedited */
|
||||
TDI_STATUS
|
||||
STDCALL
|
||||
TdiDefaultRcvExpeditedHandler (
|
||||
IN PVOID TdiEventContext,
|
||||
IN CONNECTION_CONTEXT ConnectionContext,
|
||||
IN ULONG ReceiveFlags,
|
||||
IN ULONG BytesIndicated,
|
||||
IN ULONG BytesAvailable,
|
||||
OUT ULONG * BytesTaken,
|
||||
IN PVOID Tsdu,
|
||||
OUT PIRP * IoRequestPacket
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* ClientEventReceive */
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiDefaultReceiveHandler (
|
||||
IN PVOID TdiEventContext,
|
||||
IN CONNECTION_CONTEXT ConnectionContext,
|
||||
IN ULONG ReceiveFlags,
|
||||
IN ULONG BytesIndicated,
|
||||
IN ULONG BytesAvailable,
|
||||
OUT ULONG * BytesTaken,
|
||||
IN PVOID Tsdu,
|
||||
OUT PIRP * IoRequestPacket
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* ClientEventSendPossible */
|
||||
TDI_STATUS
|
||||
STDCALL
|
||||
TdiDefaultSendPossibleHandler (
|
||||
IN PVOID TdiEventContext,
|
||||
IN PVOID ConnectionContext,
|
||||
IN ULONG BytesAvailable
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
22
reactos/drivers/net/tdi/tdi/obsolete.c
Normal file
22
reactos/drivers/net/tdi/tdi/obsolete.c
Normal file
|
@ -0,0 +1,22 @@
|
|||
/* $Id: obsolete.c,v 1.1 1999/11/20 20:41:29 ea Exp $
|
||||
*
|
||||
*/
|
||||
VOID
|
||||
STDCALL
|
||||
TdiMapBuffer (
|
||||
)
|
||||
{
|
||||
/* This function is absolete */
|
||||
}
|
||||
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
TdiUnmapBuffer (
|
||||
)
|
||||
{
|
||||
/* This function is obsolete */
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
99
reactos/drivers/net/tdi/tdi/stubs.c
Normal file
99
reactos/drivers/net/tdi/tdi/stubs.c
Normal file
|
@ -0,0 +1,99 @@
|
|||
/* $Id: stubs.c,v 1.1 1999/11/20 20:41:29 ea Exp $
|
||||
*
|
||||
*/
|
||||
#include <ntos.h>
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
TdiBuildNetbiosAddress (
|
||||
IN PUCHAR NetbiosName,
|
||||
IN BOOLEAN IsGroupName,
|
||||
IN OUT PTA_NETBIOS_ADDRESS NetworkName
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiBuildNetbiosAddressEa (
|
||||
IN PUCHAR Buffer,
|
||||
IN BOOLEAN GroupName,
|
||||
IN PUCHAR NetbiosName
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiCopyBufferToMdl (
|
||||
IN PVOID SourceBuffer,
|
||||
IN ULONG SourceOffset,
|
||||
IN ULONG SourceBytesToCopy,
|
||||
IN PMDL DestinationMdlChain,
|
||||
IN ULONG DestinationOffset,
|
||||
IN PULONG BytesCopied
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiCopyMdlToBuffer (
|
||||
IN PMDL SourceMdlChain,
|
||||
IN ULONG SourceOffset,
|
||||
IN PVOID DestinationBuffer,
|
||||
IN ULONG DestinationOffset,
|
||||
IN ULONG DestinationBufferSize,
|
||||
OUT PULONG BytesCopied
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
|
||||
/*
|
||||
TdiDeregisterAddressChangeHandler
|
||||
TdiDeregisterDeviceObject
|
||||
TdiDeregisterNetAddress
|
||||
TdiDeregisterNotificationHandler
|
||||
|
||||
TdiInitialize
|
||||
*/
|
||||
|
||||
NTSTATUS
|
||||
STDCALL
|
||||
TdiMapUserRequest (
|
||||
IN PDEVICE_OBJECT DeviceObject,
|
||||
IN PIRP Irp,
|
||||
IN PIO_STACK_LOCATION IrpSp
|
||||
)
|
||||
{
|
||||
return STATUS_NOT_IMPLEMENTED;
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
TdiOpenNetbiosAddress
|
||||
TdiRegisterAddressChangeHandler
|
||||
TdiRegisterDeviceObject
|
||||
TdiRegisterNetAddress
|
||||
TdiRegisterNotificationHandler
|
||||
*/
|
||||
|
||||
VOID
|
||||
STDCALL
|
||||
TdiReturnChainedReceives (
|
||||
IN PVOID * TsduDescriptors,
|
||||
IN ULONG NumberOfTsdus
|
||||
)
|
||||
{
|
||||
}
|
||||
|
||||
|
||||
/* EOF */
|
Loading…
Reference in a new issue