Ok, you can add my review:
Reviewed-By: Allison Henderson <allison.henderson@xxxxxxxxxx>
On 11/22/18 10:59 AM, Darrick J. Wong wrote:
From: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
Add a five-argument logging function to support new operations.
Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
---
ltp/fsx.c | 45 ++++++++++++++++++++++++++++++++++++++++-----
1 file changed, 40 insertions(+), 5 deletions(-)
diff --git a/ltp/fsx.c b/ltp/fsx.c
index dabad302..c525ba13 100644
--- a/ltp/fsx.c
+++ b/ltp/fsx.c
@@ -51,7 +51,8 @@ enum opflags { FL_NONE = 0, FL_SKIPPED = 1, FL_CLOSE_OPEN = 2, FL_KEEP_SIZE = 4
struct log_entry {
int operation;
- int args[3];
+ int nr_args;
+ int args[4];
enum opflags flags;
};
@@ -278,6 +279,27 @@ static int op_code(const char *name)
return -1;
}
+void
+log5(int operation, int arg0, int arg1, int arg2, enum opflags flags)
+{
+ struct log_entry *le;
+
+ le = &oplog[logptr];
+ le->operation = operation;
+ if (closeopen)
+ flags |= FL_CLOSE_OPEN;
+ le->args[0] = arg0;
+ le->args[1] = arg1;
+ le->args[2] = arg2;
+ le->args[3] = file_size;
+ le->nr_args = 4;
+ le->flags = flags;
+ logptr++;
+ logcount++;
+ if (logptr >= LOGSIZE)
+ logptr = 0;
+}
+
void
log4(int operation, int arg0, int arg1, enum opflags flags)
{
@@ -290,6 +312,7 @@ log4(int operation, int arg0, int arg1, enum opflags flags)
le->args[0] = arg0;
le->args[1] = arg1;
le->args[2] = file_size;
+ le->nr_args = 3;
le->flags = flags;
logptr++;
logcount++;
@@ -439,11 +462,13 @@ logdump(void)
i = 0;
if (logopsf) {
+ int j;
+
if (lp->flags & FL_SKIPPED)
fprintf(logopsf, "skip ");
- fprintf(logopsf, "%s 0x%x 0x%x 0x%x",
- op_name(lp->operation),
- lp->args[0], lp->args[1], lp->args[2]);
+ fprintf(logopsf, "%s", op_name(lp->operation));
+ for (j = 0; j < lp->nr_args; j++)
+ fprintf(logopsf, " 0x%x", lp->args[j]);
if (lp->flags & FL_KEEP_SIZE)
fprintf(logopsf, " keep_size");
if (lp->flags & FL_CLOSE_OPEN)
@@ -1413,6 +1438,15 @@ cleanup(int sig)
exit(sig);
}
+static int
+op_args_count(int operation)
+{
+ switch (operation) {
+ default:
+ return 3;
+ }
+}
+
static int
read_op(struct log_entry *log_entry)
{
@@ -1445,7 +1479,8 @@ read_op(struct log_entry *log_entry)
log_entry->operation = op_code(str);
if (log_entry->operation == -1)
goto fail;
- for (i = 0; i < 3; i++) {
+ log_entry->nr_args = op_args_count(log_entry->operation);
+ for (i = 0; i < log_entry->nr_args; i++) {
char *end;
str = strtok(NULL, " \t\n");