ACPICA: Common: Enhance acpi_getopt() to improve portability
authorLv Zheng <lv.zheng@intel.com>
Tue, 8 Jul 2014 02:07:26 +0000 (10:07 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Tue, 8 Jul 2014 12:22:26 +0000 (14:22 +0200)
This patch enhances acpi_getopt() by converting the standard C library
invocations into portable ACPI string APIs and acpi_log_error() to improve
portability. Lv Zheng.

Signed-off-by: Lv Zheng <lv.zheng@intel.com>
Signed-off-by: Bob Moore <robert.moore@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/acpica/acutils.h
include/acpi/actypes.h
tools/power/acpi/common/getopt.c
tools/power/acpi/tools/acpidump/apmain.c

index 85871c639cc2019c942627a8c2860de57e2f2cd6..035dc29798bbf74a78c793f717a6d5d91ddb3b63 100644 (file)
@@ -210,6 +210,8 @@ void acpi_ut_subsystem_shutdown(void);
 
 acpi_size acpi_ut_strlen(const char *string);
 
+char *acpi_ut_strchr(const char *string, int ch);
+
 char *acpi_ut_strcpy(char *dst_string, const char *src_string);
 
 char *acpi_ut_strncpy(char *dst_string,
index 165abcae554804eabc2e477420cede44ed9b192c..608a04019372e56f59aeab4a323abe216bfce875 100644 (file)
@@ -1254,4 +1254,8 @@ struct acpi_memory_list {
 #define ACPI_FILE_BEGIN                 0x01
 #define ACPI_FILE_END                   0x02
 
+/* Definitions of getopt */
+
+#define ACPI_OPT_END                    -1
+
 #endif                         /* __ACTYPES_H__ */
index a302f52e4fd354d08aa2502ba181ae2fff566d5d..2f0f34a36db4440660c51366fa4f2bcf2aa6343d 100644 (file)
  *    "f|"      - Option has required single-char sub-options
  */
 
-#include <stdio.h>
-#include <string.h>
 #include <acpi/acpi.h>
 #include "accommon.h"
 #include "acapps.h"
 
 #define ACPI_OPTION_ERROR(msg, badchar) \
-       if (acpi_gbl_opterr) {fprintf (stderr, "%s%c\n", msg, badchar);}
+       if (acpi_gbl_opterr) {acpi_log_error ("%s%c\n", msg, badchar);}
 
 int acpi_gbl_opterr = 1;
 int acpi_gbl_optind = 1;
@@ -113,7 +111,7 @@ int acpi_getopt_argument(int argc, char **argv)
  * PARAMETERS:  argc, argv          - from main
  *              opts                - options info list
  *
- * RETURN:      Option character or EOF
+ * RETURN:      Option character or ACPI_OPT_END
  *
  * DESCRIPTION: Get the next option
  *
@@ -128,10 +126,10 @@ int acpi_getopt(int argc, char **argv, char *opts)
                if (acpi_gbl_optind >= argc ||
                    argv[acpi_gbl_optind][0] != '-' ||
                    argv[acpi_gbl_optind][1] == '\0') {
-                       return (EOF);
-               } else if (strcmp(argv[acpi_gbl_optind], "--") == 0) {
+                       return (ACPI_OPT_END);
+               } else if (ACPI_STRCMP(argv[acpi_gbl_optind], "--") == 0) {
                        acpi_gbl_optind++;
-                       return (EOF);
+                       return (ACPI_OPT_END);
                }
        }
 
@@ -142,7 +140,7 @@ int acpi_getopt(int argc, char **argv, char *opts)
        /* Make sure that the option is legal */
 
        if (current_char == ':' ||
-           (opts_ptr = strchr(opts, current_char)) == NULL) {
+           (opts_ptr = ACPI_STRCHR(opts, current_char)) == NULL) {
                ACPI_OPTION_ERROR("Illegal option: -", current_char);
 
                if (argv[acpi_gbl_optind][++current_char_ptr] == '\0') {
index 2a06a864c093a8e0b553395914c2d81e2c728cad..9c3b259aed2cd7b82235d58b9b79c7f8e2d44c85 100644 (file)
@@ -166,7 +166,8 @@ static int ap_do_options(int argc, char **argv)
 
        /* Command line options */
 
-       while ((j = acpi_getopt(argc, argv, AP_SUPPORTED_OPTIONS)) != EOF)
+       while ((j =
+               acpi_getopt(argc, argv, AP_SUPPORTED_OPTIONS)) != ACPI_OPT_END)
                switch (j) {
                        /*
                         * Global options