X-Git-Url: https://git.gag.com/?p=fw%2Faltos;a=blobdiff_plain;f=cctools%2Flib%2Fccdbg-io.c;fp=cctools%2Flib%2Fccdbg-io.c;h=0000000000000000000000000000000000000000;hp=9c6693cdbe0ad5a0698cdcfc8b214761b877b148;hb=9789ca5e8caa9a013e804f307b9da380e147bd75;hpb=a5782398d968e7cb11f7203afada7c216f233b3b diff --git a/cctools/lib/ccdbg-io.c b/cctools/lib/ccdbg-io.c deleted file mode 100644 index 9c6693cd..00000000 --- a/cctools/lib/ccdbg-io.c +++ /dev/null @@ -1,137 +0,0 @@ -/* - * Copyright © 2008 Keith Packard - * - * This program is free software; you can redistribute it and/or modify - * it under the terms of the GNU General Public License as published by - * the Free Software Foundation; either version 2 of the License, or - * (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU - * General Public License for more details. - * - * You should have received a copy of the GNU General Public License along - * with this program; if not, write to the Free Software Foundation, Inc., - * 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA. - */ - -#include "ccdbg.h" -#include -#include "cc-usb.h" -#include "cc-bitbang.h" - -struct ccdbg * -ccdbg_open(void) -{ - struct ccdbg *dbg; - char *tty; - - dbg = calloc(sizeof (struct ccdbg), 1); - if (!dbg) { - perror("calloc"); - return NULL; - } - tty = getenv("CCDBG_TTY"); - if (!tty || tty[0] == '/') - dbg->usb = cc_usb_open(tty); - if (!dbg->usb) { - dbg->bb = cc_bitbang_open(); - if (!dbg->bb) { - free(dbg); - return NULL; - } - } - return dbg; -} - -void -ccdbg_close(struct ccdbg *dbg) -{ - if (dbg->usb) - cc_usb_close(dbg->usb); - if (dbg->bb) - cc_bitbang_close(dbg->bb); - free (dbg); -} - -void -ccdbg_debug_mode(struct ccdbg *dbg) -{ - if (dbg->usb) - cc_usb_debug_mode(dbg->usb); - else if (dbg->bb) - cc_bitbang_debug_mode(dbg->bb); -} - -void -ccdbg_reset(struct ccdbg *dbg) -{ - if (dbg->usb) - cc_usb_reset(dbg->usb); - else if (dbg->bb) - cc_bitbang_reset(dbg->bb); -} - -void -ccdbg_send_bytes(struct ccdbg *dbg, uint8_t *bytes, int nbytes) -{ - if (dbg->usb) - cc_usb_send_bytes(dbg->usb, bytes, nbytes); - else if (dbg->bb) - cc_bitbang_send_bytes(dbg->bb, bytes, nbytes); -} - -void -ccdbg_recv_bytes(struct ccdbg *dbg, uint8_t *bytes, int nbytes) -{ - if (dbg->usb) - cc_usb_recv_bytes(dbg->usb, bytes, nbytes); - else if (dbg->bb) - cc_bitbang_recv_bytes(dbg->bb, bytes, nbytes); -} - -void -ccdbg_sync(struct ccdbg *dbg) -{ - if (dbg->usb) - cc_usb_sync(dbg->usb); - else if (dbg->bb) - cc_bitbang_sync(dbg->bb); -} - -void -ccdbg_cmd_write(struct ccdbg *dbg, uint8_t cmd, uint8_t *data, int len) -{ - ccdbg_send_bytes(dbg, &cmd, 1); - ccdbg_send_bytes(dbg, data, len); -} - -uint8_t -ccdbg_cmd_write_read8(struct ccdbg *dbg, uint8_t cmd, uint8_t *data, int len) -{ - uint8_t byte[1]; - ccdbg_cmd_write(dbg, cmd, data, len); - ccdbg_recv_bytes(dbg, byte, 1); - ccdbg_sync(dbg); - return byte[0]; -} - -uint16_t -ccdbg_cmd_write_read16(struct ccdbg *dbg, uint8_t cmd, uint8_t *data, int len) -{ - uint8_t byte[2]; - ccdbg_cmd_write(dbg, cmd, data, len); - ccdbg_recv_bytes(dbg, byte, 2); - ccdbg_sync(dbg); - return (byte[0] << 8) | byte[1]; -} - -void -ccdbg_cmd_write_queue8(struct ccdbg *dbg, uint8_t cmd, - uint8_t *data, int len, - uint8_t *reply) -{ - ccdbg_cmd_write(dbg, cmd, data, len); - ccdbg_recv_bytes(dbg, reply, 1); -}