commit - c377c1b9cdc19b27f94694ca511b307b0a097f17
commit + 25359fc4c91dbddbc441294e9ba854761e864c54
blob - 2261c99c9de815aca46c97ad624aeb5d9501cd66
blob + f4a0ad42f226a508a7248caadfadb8e80faff193
--- kamirepl.c
+++ kamirepl.c
static void excmd_version(const char **, int);
static void excmd_attach(const char **, int);
+static void excmd_clunk(const char **, int);
static void excmd(const char **, int);
static const char *pp_qid_type(uint8_t);
log_warnx("usage: attach fid uname aname");
}
+/* clunk fid */
static void
+excmd_clunk(const char **argv, int argc)
+{
+ uint32_t len, fid;
+ const char *errstr;
+
+ if (argc != 2)
+ goto usage;
+
+ fid = strtonum(argv[1], 0, UINT32_MAX, &errstr);
+ if (errstr != NULL) {
+ log_warnx("fid is %s: %s", errstr, argv[1]);
+ return;
+ }
+
+ /* fid[4] */
+ len = sizeof(fid);
+ write_hdr_auto(len, Tclunk);
+ write_fid(fid);
+ return;
+
+usage:
+ log_warnx("usage: clunk fid");
+}
+
+static void
excmd(const char **argv, int argc)
{
struct cmd {
} cmds[] = {
{"version", excmd_version},
{"attach", excmd_attach},
+ {"clunk", excmd_clunk},
};
size_t i;
pp_qid(d, len);
break;
+ case Rclunk:
+ if (len != 0)
+ printf("invalid Rclunk: %"PRIu32" extra bytes", len);
+ break;
+
case Rerror:
memcpy(&slen, d, sizeof(slen));
d += sizeof(slen);