X-Git-Url: http://cvs.zerfleddert.de/cgi-bin/gitweb.cgi/proxmark3-svn/blobdiff_plain/7c5f70dd9f8805967628f429f96fe1159a8bb827..09181a54620f1f8feda0cada2daf7058cf482ad3:/common/cmd.c?ds=sidebyside diff --git a/common/cmd.c b/common/cmd.c index 66b93990..02257ac0 100644 --- a/common/cmd.c +++ b/common/cmd.c @@ -32,7 +32,7 @@ #include "cmd.h" #include "string.h" -#include "../include/proxmark3.h" +#include "proxmark3.h" bool cmd_receive(UsbCommand* cmd) { @@ -50,30 +50,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; }