X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/75465377b93c9a27450a186342e9cfd2a84b4173..2839f12e8623cb48adf4d9af70212960caefc60d:/common/cmd.c diff --git a/common/cmd.c b/common/cmd.c index dae3a8da..2111a8f5 100644 --- a/common/cmd.c +++ b/common/cmd.c @@ -31,10 +31,6 @@ */ #include "cmd.h" -#include "string.h" -#include "../include/proxmark3.h" - -//static UsbCommand txcmd; bool cmd_receive(UsbCommand* cmd) { @@ -52,30 +48,32 @@ bool cmd_receive(UsbCommand* cmd) { } bool cmd_send(uint32_t cmd, uint32_t arg0, uint32_t arg1, uint32_t arg2, void* data, size_t len) { - UsbCommand txcmd; - for (size_t i=0; i<sizeof(UsbCommand); i++) { - ((byte_t*)&txcmd)[i] = 0x00; - } - - // Compose the outgoing command frame - txcmd.cmd = cmd; - txcmd.arg[0] = arg0; - txcmd.arg[1] = arg1; - txcmd.arg[2] = arg2; + UsbCommand txcmd; - // Add the (optional) content to the frame, with a maximum size of USB_CMD_DATA_SIZE - if (data && len) { - len = MIN(len,USB_CMD_DATA_SIZE); - for (size_t i=0; i<len; i++) { - txcmd.d.asBytes[i] = ((byte_t*)data)[i]; - } - } - - // Send frame and make sure all bytes are transmitted - if (usb_write((byte_t*)&txcmd,sizeof(UsbCommand)) != 0) return false; - - return true; + // 0x00 the whole command. + for (size_t i=0; i < sizeof(UsbCommand); i++) + ((byte_t*)&txcmd)[i] = 0x00; + + // Compose the outgoing command frame + txcmd.cmd = cmd; + txcmd.arg[0] = arg0; + txcmd.arg[1] = arg1; + txcmd.arg[2] = arg2; + + // Add the (optional) content to the frame, with a maximum size of USB_CMD_DATA_SIZE + if (data && len) { + len = MIN(len, USB_CMD_DATA_SIZE); + for (size_t i=0; i<len; i++) { + txcmd.d.asBytes[i] = ((byte_t*)data)[i]; + } + } + + // Send frame and make sure all bytes are transmitted + if ( usb_write( (byte_t*)&txcmd, sizeof(UsbCommand)) != 0) + return false; + + return true; }