From 8cd9b4c7c5e3703e7ecde252717cb517f94bcf3b Mon Sep 17 00:00:00 2001 From: hunt Date: Fri, 17 Aug 2007 20:02:15 +0000 Subject: [PATCH] 2007-08-17 Martin Hunt PR3857 From Masami Hiramatsu * utt.c (utt_subbuf_start_callback): Use overwrite flag. * control.c (_stp_ctl_open_cmd): Set overwrite_flag off. (_stp_ctl_close_cmd): Set overwrite flag on. --- runtime/transport/control.c | 3 +++ runtime/transport/utt.c | 4 +++- runtime/transport/utt.h | 2 ++ 3 files changed, 8 insertions(+), 1 deletion(-) diff --git a/runtime/transport/control.c b/runtime/transport/control.c index 1f7f70bdf..5242af495 100644 --- a/runtime/transport/control.c +++ b/runtime/transport/control.c @@ -239,6 +239,7 @@ static int _stp_ctl_open_cmd (struct inode *inode, struct file *file) _stp_ctl_opens++; _stp_pid = current->pid; + utt_overwrite_flag = 0; return 0; } @@ -247,6 +248,8 @@ static int _stp_ctl_close_cmd (struct inode *inode, struct file *file) if (_stp_ctl_opens) _stp_ctl_opens--; _stp_pid = 0; + if (!_stp_exit_flag) + utt_overwrite_flag = 1; return 0; } diff --git a/runtime/transport/utt.c b/runtime/transport/utt.c index 1ca595924..0871266a7 100644 --- a/runtime/transport/utt.c +++ b/runtime/transport/utt.c @@ -29,6 +29,8 @@ #include #include "utt.h" +int utt_overwrite_flag = 0; + static void utt_remove_root(struct utt_trace *utt) { if (utt->utt_tree_root) { @@ -129,7 +131,7 @@ static int utt_subbuf_start_callback(struct rchan_buf *buf, void *subbuf, { struct utt_trace *utt; - if (!relay_buf_full(buf)) + if (utt_overwrite_flag || !relay_buf_full(buf)) return 1; utt = buf->chan->private_data; diff --git a/runtime/transport/utt.h b/runtime/transport/utt.h index b2c9fa9ff..00da0f7eb 100644 --- a/runtime/transport/utt.h +++ b/runtime/transport/utt.h @@ -39,4 +39,6 @@ extern int utt_trace_startstop(struct utt_trace *utt, int start, extern void utt_trace_cleanup(struct utt_trace *utt); extern int utt_trace_remove(struct utt_trace *utt); +extern int utt_overwrite_flag; + #endif -- 2.43.5