This patch converts tools/power/acpi/tools/acpidbg/acpidbg to use the new
flushing mechanism.

Signed-off-by: Lv Zheng <lv.zh...@intel.com>
---
 tools/power/acpi/tools/acpidbg/acpidbg.c |   49 +++---------------------------
 1 file changed, 5 insertions(+), 44 deletions(-)

diff --git a/tools/power/acpi/tools/acpidbg/acpidbg.c 
b/tools/power/acpi/tools/acpidbg/acpidbg.c
index a88ac45..770b556 100644
--- a/tools/power/acpi/tools/acpidbg/acpidbg.c
+++ b/tools/power/acpi/tools/acpidbg/acpidbg.c
@@ -83,7 +83,6 @@ static const char *acpi_aml_file_path = ACPI_AML_FILE;
 static unsigned long acpi_aml_mode = ACPI_AML_INTERACTIVE;
 static bool acpi_aml_exit;
 
-static bool acpi_aml_batch_drain;
 static unsigned long acpi_aml_batch_state;
 static char acpi_aml_batch_prompt;
 static char acpi_aml_batch_roll;
@@ -239,11 +238,9 @@ static int acpi_aml_write_batch_log(int fd, struct 
circ_buf *crc)
 
        p = &crc->buf[crc->tail];
        len = circ_count_to_end(crc);
-       if (!acpi_aml_batch_drain) {
-               len = write(fd, p, len);
-               if (len < 0)
-                       perror("write");
-       }
+       len = write(fd, p, len);
+       if (len < 0)
+               perror("write");
        if (len > 0)
                crc->tail = (crc->tail + len) & (ACPI_AML_BUF_SIZE - 1);
        return len;
@@ -270,10 +267,7 @@ static void acpi_aml_loop(int fd)
        if (acpi_aml_mode == ACPI_AML_BATCH) {
                acpi_aml_log_state = ACPI_AML_LOG_START;
                acpi_aml_batch_pos = acpi_aml_batch_cmd;
-               if (acpi_aml_batch_drain)
-                       acpi_aml_batch_state = ACPI_AML_BATCH_READ_LOG;
-               else
-                       acpi_aml_batch_state = ACPI_AML_BATCH_WRITE_CMD;
+               acpi_aml_batch_state = ACPI_AML_BATCH_WRITE_CMD;
        }
        acpi_aml_exit = false;
        while (!acpi_aml_exit) {
@@ -330,39 +324,6 @@ static void acpi_aml_loop(int fd)
        }
 }
 
-static bool acpi_aml_readable(int fd)
-{
-       fd_set rfds;
-       struct timeval tv;
-       int ret;
-       int maxfd = 0;
-
-       tv.tv_sec = 0;
-       tv.tv_usec = ACPI_AML_USEC_PEEK;
-       FD_ZERO(&rfds);
-       maxfd = acpi_aml_set_fd(fd, maxfd, &rfds);
-       ret = select(maxfd+1, &rfds, NULL, NULL, &tv);
-       if (ret < 0)
-               perror("select");
-       if (ret > 0 && FD_ISSET(fd, &rfds))
-               return true;
-       return false;
-}
-
-/*
- * This is a userspace IO flush implementation, replying on the prompt
- * characters and can be turned into a flush() call after kernel implements
- * .flush() filesystem operation.
- */
-static void acpi_aml_flush(int fd)
-{
-       while (acpi_aml_readable(fd)) {
-               acpi_aml_batch_drain = true;
-               acpi_aml_loop(fd);
-               acpi_aml_batch_drain = false;
-       }
-}
-
 void usage(FILE *file, char *progname)
 {
        fprintf(file, "usage: %s [-b cmd] [-f file] [-h]\n", progname);
@@ -426,7 +387,7 @@ int main(int argc, char **argv)
        acpi_aml_set_fl(STDOUT_FILENO, O_NONBLOCK);
 
        if (acpi_aml_mode == ACPI_AML_BATCH)
-               acpi_aml_flush(fd);
+               fsync(fd);
        acpi_aml_loop(fd);
 
 exit:
-- 
1.7.10

Reply via email to