lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Thu, 15 Jan 2015 02:00:51 +0000
From:	"Zheng, Lv" <lv.zheng@...el.com>
To:	Rickard Strandqvist <rickard_strandqvist@...ctrumdigital.se>
CC:	"Moore, Robert" <robert.moore@...el.com>,
	"Wysocki, Rafael J" <rafael.j.wysocki@...el.com>,
	Len Brown <lenb@...nel.org>,
	"linux-acpi@...r.kernel.org" <linux-acpi@...r.kernel.org>,
	"devel@...ica.org" <devel@...ica.org>,
	"linux-kernel@...r.kernel.org" <linux-kernel@...r.kernel.org>
Subject: RE: [PATCH] acpica: utpredef: Remove some unused functions

Hi,

> From: Rickard Strandqvist [mailto:rickard_strandqvist@...ctrumdigital.se]
> Sent: Thursday, January 15, 2015 6:50 AM
> 
> 2015-01-14 9:55 GMT+01:00 Zheng, Lv <lv.zheng@...el.com>:
> > Hi, Rickard
> >
> > The functions below seem already marked by "ACPI_ASL_COMPILER || ACPI_HELP_APP".
> > How did you detect them as used functions?

Do you mean something like this?

<?xml version="1.0"?>
<def>
  <define name="ACPI_ASL_COMPILER" value="0"/>
  <define name="ACPI_HELP_APP" value="0"/>
</def>

Can Cppcheck automatically remove code blocks depending on the define settings during preprocessor stage?

Thanks and best regards
-Lv

> >
> > Thanks
> > -Lv
> >
> >
> >> -----Original Message-----
> >> From: Rickard Strandqvist [mailto:rickard_strandqvist@...ctrumdigital.se]
> >> Sent: Sunday, January 04, 2015 11:23 PM
> >> To: Moore, Robert; Zheng, Lv
> >> Cc: Rickard Strandqvist; Wysocki, Rafael J; Len Brown; linux-acpi@...r.kernel.org; devel@...ica.org; linux-kernel@...r.kernel.org
> >> Subject: [PATCH] acpica: utpredef: Remove some unused functions
> >>
> >> Removes some functions that are not used anywhere:
> >> acpi_ut_get_resource_bit_width() acpi_ut_display_predefined_method() acpi_ut_match_resource_name()
> >>
> >> This was partially found by using a static code analysis program called cppcheck.
> >>
> >> Signed-off-by: Rickard Strandqvist <rickard_strandqvist@...ctrumdigital.se>
> >> ---
> >>  drivers/acpi/acpica/acutils.h  |    9 ---
> >>  drivers/acpi/acpica/utpredef.c |  134 ----------------------------------------
> >>  2 files changed, 143 deletions(-)
> >>
> >> diff --git a/drivers/acpi/acpica/acutils.h b/drivers/acpi/acpica/acutils.h
> >> index 486d342..9b3fab1 100644
> >> --- a/drivers/acpi/acpica/acutils.h
> >> +++ b/drivers/acpi/acpica/acutils.h
> >> @@ -502,17 +502,8 @@ const union acpi_predefined_info *acpi_ut_get_next_predefined_method(const union
> >>
> >>  const union acpi_predefined_info *acpi_ut_match_predefined_method(char *name);
> >>
> >> -const union acpi_predefined_info *acpi_ut_match_resource_name(char *name);
> >> -
> >> -void
> >> -acpi_ut_display_predefined_method(char *buffer,
> >> -                               const union acpi_predefined_info *this_name,
> >> -                               u8 multi_line);
> >> -
> >>  void acpi_ut_get_expected_return_types(char *buffer, u32 expected_btypes);
> >>
> >> -u32 acpi_ut_get_resource_bit_width(char *buffer, u16 types);
> >> -
> >>  /*
> >>   * utstate - Generic state creation/cache routines
> >>   */
> >> diff --git a/drivers/acpi/acpica/utpredef.c b/drivers/acpi/acpica/utpredef.c
> >> index db30caf..f1ff33c 100644
> >> --- a/drivers/acpi/acpica/utpredef.c
> >> +++ b/drivers/acpi/acpica/utpredef.c
> >> @@ -209,105 +209,6 @@ static const char *ut_resource_type_names[] = {
> >>
> >>  /*******************************************************************************
> >>   *
> >> - * FUNCTION:    acpi_ut_match_resource_name
> >> - *
> >> - * PARAMETERS:  name                - Name to find
> >> - *
> >> - * RETURN:      Pointer to entry in the resource table. NULL indicates not
> >> - *              found.
> >> - *
> >> - * DESCRIPTION: Check an object name against the predefined resource
> >> - *              descriptor object list.
> >> - *
> >> - ******************************************************************************/
> >> -
> >> -const union acpi_predefined_info *acpi_ut_match_resource_name(char *name)
> >> -{
> >> -     const union acpi_predefined_info *this_name;
> >> -
> >> -     /* Quick check for a predefined name, first character must be underscore */
> >> -
> >> -     if (name[0] != '_') {
> >> -             return (NULL);
> >> -     }
> >> -
> >> -     /* Search info table for a predefined method/object name */
> >> -
> >> -     this_name = acpi_gbl_resource_names;
> >> -     while (this_name->info.name[0]) {
> >> -             if (ACPI_COMPARE_NAME(name, this_name->info.name)) {
> >> -                     return (this_name);
> >> -             }
> >> -
> >> -             this_name++;
> >> -     }
> >> -
> >> -     return (NULL);          /* Not found */
> >> -}
> >> -
> >> -/*******************************************************************************
> >> - *
> >> - * FUNCTION:    acpi_ut_display_predefined_method
> >> - *
> >> - * PARAMETERS:  buffer              - Scratch buffer for this function
> >> - *              this_name           - Entry in the predefined method/name table
> >> - *              multi_line          - TRUE if output should be on >1 line
> >> - *
> >> - * RETURN:      None
> >> - *
> >> - * DESCRIPTION: Display information about a predefined method. Number and
> >> - *              type of the input arguments, and expected type(s) for the
> >> - *              return value, if any.
> >> - *
> >> - ******************************************************************************/
> >> -
> >> -void
> >> -acpi_ut_display_predefined_method(char *buffer,
> >> -                               const union acpi_predefined_info *this_name,
> >> -                               u8 multi_line)
> >> -{
> >> -     u32 arg_count;
> >> -
> >> -     /*
> >> -      * Get the argument count and the string buffer
> >> -      * containing all argument types
> >> -      */
> >> -     arg_count = acpi_ut_get_argument_types(buffer,
> >> -                                            this_name->info.argument_list);
> >> -
> >> -     if (multi_line) {
> >> -             printf("      ");
> >> -     }
> >> -
> >> -     printf("%4.4s    Requires %s%u argument%s",
> >> -            this_name->info.name,
> >> -            (this_name->info.argument_list & ARG_COUNT_IS_MINIMUM) ?
> >> -            "(at least) " : "", arg_count, arg_count != 1 ? "s" : "");
> >> -
> >> -     /* Display the types for any arguments */
> >> -
> >> -     if (arg_count > 0) {
> >> -             printf(" (%s)", buffer);
> >> -     }
> >> -
> >> -     if (multi_line) {
> >> -             printf("\n    ");
> >> -     }
> >> -
> >> -     /* Get the return value type(s) allowed */
> >> -
> >> -     if (this_name->info.expected_btypes) {
> >> -             acpi_ut_get_expected_return_types(buffer,
> >> -                                               this_name->info.
> >> -                                               expected_btypes);
> >> -             printf("  Return value types: %s\n", buffer);
> >> -     } else {
> >> -             printf("  No return value\n");
> >> -     }
> >> -}
> >> -
> >> -/*******************************************************************************
> >> - *
> >>   * FUNCTION:    acpi_ut_get_argument_types
> >>   *
> >>   * PARAMETERS:  buffer              - Where to return the formatted types
> >> @@ -361,39 +262,4 @@ static u32 acpi_ut_get_argument_types(char *buffer, u16 argument_types)
> >>       return (arg_count);
> >>  }
> >>
> >> -/*******************************************************************************
> >> - *
> >> - * FUNCTION:    acpi_ut_get_resource_bit_width
> >> - *
> >> - * PARAMETERS:  buffer              - Where the formatted string is returned
> >> - *              types               - Bitfield of expected data types
> >> - *
> >> - * RETURN:      Count of return types. Formatted string in Buffer.
> >> - *
> >> - * DESCRIPTION: Format the resource bit widths into a printable string.
> >> - *
> >> - ******************************************************************************/
> >> -
> >> -u32 acpi_ut_get_resource_bit_width(char *buffer, u16 types)
> >> -{
> >> -     u32 i;
> >> -     u16 sub_index;
> >> -     u32 found;
> >> -
> >> -     *buffer = 0;
> >> -     sub_index = 1;
> >> -     found = 0;
> >> -
> >> -     for (i = 0; i < NUM_RESOURCE_WIDTHS; i++) {
> >> -             if (types & 1) {
> >> -                     strcat(buffer, &(ut_resource_type_names[i][sub_index]));
> >> -                     sub_index = 0;
> >> -                     found++;
> >> -             }
> >> -
> >> -             types >>= 1;
> >> -     }
> >> -
> >> -     return (found);
> >> -}
> >>  #endif
> >> --
> >> 1.7.10.4
> >
> 
> Hi
> 
> Cppcheck running depending on the settings all define on and off, if
> that's what you wonder.
> 
> Otherwise, I did a little deeper explanation how I made did this with
> cppcheck, and same scripts.
> https://lkml.org/lkml/2015/1/9/531
> 
> 
> Kind regards
> Rickard Strandqvist

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ