X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/afdcb8c159a73aba95a017f1cfec98e8fa2b93c1..79d9ddc584b30654492d34081059f7e07696a14d:/client/comms.h?ds=sidebyside diff --git a/client/comms.h b/client/comms.h index 75adeea1..64957604 100644 --- a/client/comms.h +++ b/client/comms.h @@ -1,45 +1,32 @@ -#ifndef COMMS_H_ -#define COMMS_H_ - +//----------------------------------------------------------------------------- +// Copyright (C) 2009 Michael Gernoth +// Copyright (C) 2010 iZsh +// +// This code is licensed to you under the terms of the GNU GPL, version 2 or, +// at your option, any later version. See the LICENSE.txt file for the text of +// the license. +//----------------------------------------------------------------------------- +// Code for communicating with the proxmark3 hardware. +//----------------------------------------------------------------------------- + +#ifndef COMMS_H__ +#define COMMS_H__ + +#include +#include #include -#include - #include "usb_cmd.h" -#include "uart.h" - -#ifndef CMD_BUFFER_SIZE -#define CMD_BUFFER_SIZE 50 -#endif - -#ifndef MAX_DEMOD_BUF_LEN -#define MAX_DEMOD_BUF_LEN (1024*128) -#endif - -#ifndef BIGBUF_SIZE -#define BIGBUF_SIZE 40000 -#endif - -typedef struct { - // If TRUE, continue running the uart_receiver thread. - bool run; - - // Lock around serial port receives - pthread_mutex_t recv_lock; -} receiver_arg; - - -// Wrappers required as static variables can only be used in one file. -void SetSerialPort(serial_port* new_port); -serial_port* GetSerialPort(); -void SetOffline(bool new_offline); -bool IsOffline(); - -void SendCommand(UsbCommand *c); -void *uart_receiver(void *targ); -void UsbCommandReceived(UsbCommand *UC); -void clearCommandBuffer(); -bool WaitForResponseTimeoutW(uint64_t cmd, UsbCommand* response, size_t ms_timeout, bool show_warning); -bool WaitForResponseTimeout(uint64_t cmd, UsbCommand* response, size_t ms_timeout); -bool WaitForResponse(uint64_t cmd, UsbCommand* response); -#endif // COMMS_H_ +extern void SetOffline(bool new_offline); +extern bool IsOffline(); +extern bool OpenProxmark(void *port, bool wait_for_port, int timeout); +extern void CloseProxmark(void); +extern void SendCommand(UsbCommand *c); +extern void clearCommandBuffer(); +extern bool WaitForResponseTimeoutW(uint32_t cmd, UsbCommand* response, size_t ms_timeout, bool show_warning); +extern bool WaitForResponseTimeout(uint32_t cmd, UsbCommand* response, size_t ms_timeout); +extern bool WaitForResponse(uint32_t cmd, UsbCommand* response); +extern bool GetFromBigBuf(uint8_t *dest, int bytes, int start_index, UsbCommand *response, size_t ms_timeout, bool show_warning); +extern bool GetFromFpgaRAM(uint8_t *dest, int bytes); + +#endif // COMMS_H__