50 lines
1.2 KiB
C++
50 lines
1.2 KiB
C++
|
#include "protocol.h"
|
||
|
#include "kernel.h"
|
||
|
|
||
|
#pragma PAGEDCODE
|
||
|
CProtocol::CProtocol()
|
||
|
{
|
||
|
m_Status = STATUS_INSUFFICIENT_RESOURCES;
|
||
|
device = NULL;
|
||
|
memory = NULL;
|
||
|
debug = NULL;
|
||
|
m_Status = STATUS_SUCCESS;
|
||
|
};
|
||
|
|
||
|
CProtocol::CProtocol(CDevice* device)
|
||
|
{
|
||
|
m_Status = STATUS_INSUFFICIENT_RESOURCES;
|
||
|
this->device = device;
|
||
|
memory = kernel->createMemory();
|
||
|
|
||
|
debug = kernel->createDebug();
|
||
|
if(ALLOCATED_OK(memory))
|
||
|
{
|
||
|
pOutputBuffer = (PUCHAR) memory->allocate(NonPagedPool,PROTOCOL_OUTPUT_BUFFER_SIZE);
|
||
|
pInputBuffer = (PUCHAR) memory->allocate(NonPagedPool,PROTOCOL_INPUT_BUFFER_SIZE);
|
||
|
if(pOutputBuffer && pInputBuffer)
|
||
|
{
|
||
|
OutputBufferLength = PROTOCOL_OUTPUT_BUFFER_SIZE;
|
||
|
InputBufferLength = PROTOCOL_INPUT_BUFFER_SIZE;
|
||
|
}
|
||
|
else
|
||
|
{
|
||
|
if(pOutputBuffer) memory->free(pOutputBuffer);
|
||
|
if(pInputBuffer) memory->free(pInputBuffer);
|
||
|
pOutputBuffer = NULL;
|
||
|
pInputBuffer = NULL;
|
||
|
}
|
||
|
}
|
||
|
TRACE("New Protocol %8.8lX was created...\n",this);
|
||
|
if(ALLOCATED_OK(memory) && device) m_Status = STATUS_SUCCESS;
|
||
|
};
|
||
|
|
||
|
CProtocol::~CProtocol()
|
||
|
{
|
||
|
if(pOutputBuffer) memory->free(pOutputBuffer);
|
||
|
if(pInputBuffer) memory->free(pInputBuffer);
|
||
|
if(memory) memory->dispose();
|
||
|
if(debug) debug->dispose();
|
||
|
TRACE("Protocol %8.8lX was destroied...\n",this);
|
||
|
};
|