Commit a92e9577 authored by Lv Zheng's avatar Lv Zheng Committed by Rafael J. Wysocki

ACPICA: Common: Enhance acpi_getopt() to improve portability

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: default avatarLv Zheng <lv.zheng@intel.com>
Signed-off-by: default avatarBob Moore <robert.moore@intel.com>
Signed-off-by: default avatarRafael J. Wysocki <rafael.j.wysocki@intel.com>
parent 3c9349c9
...@@ -210,6 +210,8 @@ void acpi_ut_subsystem_shutdown(void); ...@@ -210,6 +210,8 @@ void acpi_ut_subsystem_shutdown(void);
acpi_size acpi_ut_strlen(const char *string); 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_strcpy(char *dst_string, const char *src_string);
char *acpi_ut_strncpy(char *dst_string, char *acpi_ut_strncpy(char *dst_string,
......
...@@ -1254,4 +1254,8 @@ struct acpi_memory_list { ...@@ -1254,4 +1254,8 @@ struct acpi_memory_list {
#define ACPI_FILE_BEGIN 0x01 #define ACPI_FILE_BEGIN 0x01
#define ACPI_FILE_END 0x02 #define ACPI_FILE_END 0x02
/* Definitions of getopt */
#define ACPI_OPT_END -1
#endif /* __ACTYPES_H__ */ #endif /* __ACTYPES_H__ */
...@@ -51,14 +51,12 @@ ...@@ -51,14 +51,12 @@
* "f|" - Option has required single-char sub-options * "f|" - Option has required single-char sub-options
*/ */
#include <stdio.h>
#include <string.h>
#include <acpi/acpi.h> #include <acpi/acpi.h>
#include "accommon.h" #include "accommon.h"
#include "acapps.h" #include "acapps.h"
#define ACPI_OPTION_ERROR(msg, badchar) \ #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_opterr = 1;
int acpi_gbl_optind = 1; int acpi_gbl_optind = 1;
...@@ -113,7 +111,7 @@ int acpi_getopt_argument(int argc, char **argv) ...@@ -113,7 +111,7 @@ int acpi_getopt_argument(int argc, char **argv)
* PARAMETERS: argc, argv - from main * PARAMETERS: argc, argv - from main
* opts - options info list * opts - options info list
* *
* RETURN: Option character or EOF * RETURN: Option character or ACPI_OPT_END
* *
* DESCRIPTION: Get the next option * DESCRIPTION: Get the next option
* *
...@@ -128,10 +126,10 @@ int acpi_getopt(int argc, char **argv, char *opts) ...@@ -128,10 +126,10 @@ int acpi_getopt(int argc, char **argv, char *opts)
if (acpi_gbl_optind >= argc || if (acpi_gbl_optind >= argc ||
argv[acpi_gbl_optind][0] != '-' || argv[acpi_gbl_optind][0] != '-' ||
argv[acpi_gbl_optind][1] == '\0') { argv[acpi_gbl_optind][1] == '\0') {
return (EOF); return (ACPI_OPT_END);
} else if (strcmp(argv[acpi_gbl_optind], "--") == 0) { } else if (ACPI_STRCMP(argv[acpi_gbl_optind], "--") == 0) {
acpi_gbl_optind++; acpi_gbl_optind++;
return (EOF); return (ACPI_OPT_END);
} }
} }
...@@ -142,7 +140,7 @@ int acpi_getopt(int argc, char **argv, char *opts) ...@@ -142,7 +140,7 @@ int acpi_getopt(int argc, char **argv, char *opts)
/* Make sure that the option is legal */ /* Make sure that the option is legal */
if (current_char == ':' || 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); ACPI_OPTION_ERROR("Illegal option: -", current_char);
if (argv[acpi_gbl_optind][++current_char_ptr] == '\0') { if (argv[acpi_gbl_optind][++current_char_ptr] == '\0') {
......
...@@ -166,7 +166,8 @@ static int ap_do_options(int argc, char **argv) ...@@ -166,7 +166,8 @@ static int ap_do_options(int argc, char **argv)
/* Command line options */ /* 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) { switch (j) {
/* /*
* Global options * Global options
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment