Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

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

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
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -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,
+4 −0
Original line number Diff line number Diff line
@@ -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__ */
+6 −8
Original line number Diff line number Diff line
@@ -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;
@@ -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') {
+2 −1
Original line number Diff line number Diff line
@@ -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