Skip to content

Commit

Permalink
ACPICA: Common: Enhance acpi_getopt() to improve portability
Browse files Browse the repository at this point in the history
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 <[email protected]>
Signed-off-by: Bob Moore <[email protected]>
Signed-off-by: Rafael J. Wysocki <[email protected]>
  • Loading branch information
Lv Zheng authored and rafaeljw committed Jul 8, 2014
1 parent 3c9349c commit a92e957
Show file tree
Hide file tree
Showing 4 changed files with 14 additions and 9 deletions.
2 changes: 2 additions & 0 deletions drivers/acpi/acpica/acutils.h
Original file line number Diff line number Diff line change
Expand Up @@ -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,
Expand Down
4 changes: 4 additions & 0 deletions include/acpi/actypes.h
Original file line number Diff line number Diff line change
Expand Up @@ -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__ */
14 changes: 6 additions & 8 deletions tools/power/acpi/common/getopt.c
Original file line number Diff line number Diff line change
Expand Up @@ -51,14 +51,12 @@
* "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;
Expand Down Expand Up @@ -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
*
Expand All @@ -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);
}
}

Expand All @@ -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') {
Expand Down
3 changes: 2 additions & 1 deletion tools/power/acpi/tools/acpidump/apmain.c
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

0 comments on commit a92e957

Please sign in to comment.