Kart-Public/tools/gdbst03/src/library/sva_layer.h
2014-03-15 13:11:35 -04:00

83 lines
2 KiB
C

//=======================================================================================================
// sva_layer.h - Serial command layer for SVAsync
//
//=======================================================================================================
//=======================================================================================================
//=======================================================================================================
#ifndef _SVA_LAYER_H
#define _SVA_LAYER_H
//===============================================================================
// Include files
//===============================================================================
#include "svasync.h"
//===============================================================================
// Inline function definitions
//===============================================================================
// Initialize the serial library
// Should return 0 if no error occurred
__inline int GDBStub_SerInit(int port)
{
int ret, init;
ret = init = SVAsyncInit(port - 1);
if (ret == 0)
ret = SVAsyncFifoInit();
if (init == 0)
atexit(SVAsyncStop);
return ret;
}
// Set the serial port speed (and other configurables)
// Should return 0 if the speed is set properly
__inline int GDBStub_SerSpeed(int speed)
{
SVAsyncSet(speed, BITS_8 | NO_PARITY | STOP_1);
SVAsyncHand(DTR | RTS);
return 0;
}
// Check to see if there's room in the buffer to send data
// Should return 0 if it is okay to send
__inline int GDBStub_SerSendOk(void)
{
return !SVAsyncOutStat();
}
// Send a character to the serial port
// Should return 0 if the send succeeds
__inline int GDBStub_SerSend(int c)
{
SVAsyncOut((char) c);
return 0;
}
// Check to see if there are characters waiting in the buffer
// Should return 0 if there's data waiting
__inline int GDBStub_SerRecvOk(void)
{
return SVAsyncInStat();
}
// Read a character from the serial port
// Should return the character read
__inline int GDBStub_SerRecv(void)
{
return SVAsyncIn();
}
#endif