1 /* MI Command Set - target commands. 2 Copyright (C) 2007-2013 Free Software Foundation, Inc. 3 4 This file is part of GDB. 5 6 This program is free software; you can redistribute it and/or modify 7 it under the terms of the GNU General Public License as published by 8 the Free Software Foundation; either version 3 of the License, or 9 (at your option) any later version. 10 11 This program is distributed in the hope that it will be useful, 12 but WITHOUT ANY WARRANTY; without even the implied warranty of 13 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 14 GNU General Public License for more details. 15 16 You should have received a copy of the GNU General Public License 17 along with this program. If not, see <http://www.gnu.org/licenses/>. */ 18 19 #include "defs.h" 20 #include "mi-cmds.h" 21 #include "mi-getopt.h" 22 #include "remote.h" 23 24 /* Get a file from the target. */ 25 26 void 27 mi_cmd_target_file_get (char *command, char **argv, int argc) 28 { 29 int oind = 0; 30 char *oarg; 31 const char *remote_file, *local_file; 32 static const struct mi_opt opts[] = 33 { 34 { 0, 0, 0 } 35 }; 36 static const char prefix[] = "-target-file-get"; 37 38 if (mi_getopt (prefix, argc, argv, opts, &oind, &oarg) != -1 39 || oind != argc - 2) 40 error (_("-target-file-get: Usage: REMOTE_FILE LOCAL_FILE")); 41 42 remote_file = argv[oind]; 43 local_file = argv[oind + 1]; 44 45 remote_file_get (remote_file, local_file, 0); 46 } 47 48 /* Send a file to the target. */ 49 50 void 51 mi_cmd_target_file_put (char *command, char **argv, int argc) 52 { 53 int oind = 0; 54 char *oarg; 55 const char *remote_file, *local_file; 56 static const struct mi_opt opts[] = 57 { 58 { 0, 0, 0 } 59 }; 60 static const char prefix[] = "-target-file-put"; 61 62 if (mi_getopt (prefix, argc, argv, opts, &oind, &oarg) != -1 63 || oind != argc - 2) 64 error (_("-target-file-put: Usage: LOCAL_FILE REMOTE_FILE")); 65 66 local_file = argv[oind]; 67 remote_file = argv[oind + 1]; 68 69 remote_file_put (local_file, remote_file, 0); 70 } 71 72 /* Delete a file on the target. */ 73 74 void 75 mi_cmd_target_file_delete (char *command, char **argv, int argc) 76 { 77 int oind = 0; 78 char *oarg; 79 const char *remote_file; 80 static const struct mi_opt opts[] = 81 { 82 { 0, 0, 0 } 83 }; 84 static const char prefix[] = "-target-file-delete"; 85 86 if (mi_getopt (prefix, argc, argv, opts, &oind, &oarg) != -1 87 || oind != argc - 1) 88 error (_("-target-file-delete: Usage: REMOTE_FILE")); 89 90 remote_file = argv[oind]; 91 92 remote_file_delete (remote_file, 0); 93 } 94 95