1/* MI Command Set - target commands.
2   Copyright (C) 2007, 2008, 2009, 2010, 2011 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
26void
27mi_cmd_target_file_get (char *command, char **argv, int argc)
28{
29  int optind = 0;
30  char *optarg;
31  const char *remote_file, *local_file;
32  static 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, &optind, &optarg) != -1
39      || optind != argc - 2)
40    error (_("-target-file-get: Usage: REMOTE_FILE LOCAL_FILE"));
41
42  remote_file = argv[optind];
43  local_file = argv[optind + 1];
44
45  remote_file_get (remote_file, local_file, 0);
46}
47
48/* Send a file to the target.  */
49
50void
51mi_cmd_target_file_put (char *command, char **argv, int argc)
52{
53  int optind = 0;
54  char *optarg;
55  const char *remote_file, *local_file;
56  static 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, &optind, &optarg) != -1
63      || optind != argc - 2)
64    error (_("-target-file-put: Usage: LOCAL_FILE REMOTE_FILE"));
65
66  local_file = argv[optind];
67  remote_file = argv[optind + 1];
68
69  remote_file_put (local_file, remote_file, 0);
70}
71
72/* Delete a file on the target.  */
73
74void
75mi_cmd_target_file_delete (char *command, char **argv, int argc)
76{
77  int optind = 0;
78  char *optarg;
79  const char *remote_file;
80  static 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, &optind, &optarg) != -1
87      || optind != argc - 1)
88    error (_("-target-file-delete: Usage: REMOTE_FILE"));
89
90  remote_file = argv[optind];
91
92  remote_file_delete (remote_file, 0);
93}
94
95