You've already forked linux-apfs
mirror of
https://github.com/linux-apfs/linux-apfs.git
synced 2026-05-01 15:00:59 -07:00
Merge branch 'master' into next
This commit is contained in:
@@ -100,7 +100,7 @@ as-option = $(call try-run,\
|
||||
# Usage: cflags-y += $(call as-instr,instr,option1,option2)
|
||||
|
||||
as-instr = $(call try-run,\
|
||||
echo -e "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" -,$(2),$(3))
|
||||
/bin/echo -e "$(1)" | $(CC) $(KBUILD_AFLAGS) -c -xassembler -o "$$TMP" -,$(2),$(3))
|
||||
|
||||
# cc-option
|
||||
# Usage: cflags-y += $(call cc-option,-march=winchip-c6,-march=i586)
|
||||
|
||||
@@ -208,7 +208,7 @@ cmd_gzip = (cat $(filter-out FORCE,$^) | gzip -f -9 > $@) || \
|
||||
|
||||
# Bzip2 and LZMA do not include size in file... so we have to fake that;
|
||||
# append the size as a 32-bit littleendian number as gzip does.
|
||||
size_append = echo -ne $(shell \
|
||||
size_append = /bin/echo -ne $(shell \
|
||||
dec_size=0; \
|
||||
for F in $1; do \
|
||||
fsize=$$(stat -c "%s" $$F); \
|
||||
|
||||
@@ -9,7 +9,7 @@ paths="$@"
|
||||
# Doing this once at the beginning saves a lot of time, on a cache-hot tree.
|
||||
Kconfigs="`find . -name 'Kconfig' -o -name 'Kconfig*[^~]'`"
|
||||
|
||||
echo -e "File list \tundefined symbol used"
|
||||
/bin/echo -e "File list \tundefined symbol used"
|
||||
find $paths -name '*.[chS]' -o -name 'Makefile' -o -name 'Makefile*[^~]'| while read i
|
||||
do
|
||||
# Output the bare Kconfig variable and the filename; the _MODULE part at
|
||||
@@ -54,6 +54,6 @@ while read symb files; do
|
||||
# beyond the purpose of this script.
|
||||
symb_bare=`echo $symb | sed -e 's/_MODULE//'`
|
||||
if ! grep -q "\<$symb_bare\>" $Kconfigs; then
|
||||
echo -e "$files: \t$symb"
|
||||
/bin/echo -e "$files: \t$symb"
|
||||
fi
|
||||
done|sort
|
||||
|
||||
+61
-23
@@ -2,7 +2,7 @@
|
||||
# (c) 2001, Dave Jones. <davej@redhat.com> (the file handling bit)
|
||||
# (c) 2005, Joel Schopp <jschopp@austin.ibm.com> (the ugly bit)
|
||||
# (c) 2007,2008, Andy Whitcroft <apw@uk.ibm.com> (new conditions, test suite)
|
||||
# (c) 2008, Andy Whitcroft <apw@canonical.com>
|
||||
# (c) 2008,2009, Andy Whitcroft <apw@canonical.com>
|
||||
# Licensed under the terms of the GNU GPL License version 2
|
||||
|
||||
use strict;
|
||||
@@ -10,7 +10,7 @@ use strict;
|
||||
my $P = $0;
|
||||
$P =~ s@.*/@@g;
|
||||
|
||||
my $V = '0.29';
|
||||
my $V = '0.30';
|
||||
|
||||
use Getopt::Long qw(:config no_auto_abbrev);
|
||||
|
||||
@@ -130,7 +130,10 @@ if ($tree) {
|
||||
|
||||
my $emitted_corrupt = 0;
|
||||
|
||||
our $Ident = qr{[A-Za-z_][A-Za-z\d_]*};
|
||||
our $Ident = qr{
|
||||
[A-Za-z_][A-Za-z\d_]*
|
||||
(?:\s*\#\#\s*[A-Za-z_][A-Za-z\d_]*)*
|
||||
}x;
|
||||
our $Storage = qr{extern|static|asmlinkage};
|
||||
our $Sparse = qr{
|
||||
__user|
|
||||
@@ -997,23 +1000,25 @@ sub annotate_values {
|
||||
|
||||
sub possible {
|
||||
my ($possible, $line) = @_;
|
||||
|
||||
print "CHECK<$possible> ($line)\n" if ($dbg_possible > 2);
|
||||
if ($possible !~ /(?:
|
||||
my $notPermitted = qr{(?:
|
||||
^(?:
|
||||
$Modifier|
|
||||
$Storage|
|
||||
$Type|
|
||||
DEFINE_\S+|
|
||||
DEFINE_\S+
|
||||
)$|
|
||||
^(?:
|
||||
goto|
|
||||
return|
|
||||
case|
|
||||
else|
|
||||
asm|__asm__|
|
||||
do
|
||||
)$|
|
||||
)(?:\s|$)|
|
||||
^(?:typedef|struct|enum)\b
|
||||
)/x) {
|
||||
)}x;
|
||||
warn "CHECK<$possible> ($line)\n" if ($dbg_possible > 2);
|
||||
if ($possible !~ $notPermitted) {
|
||||
# Check for modifiers.
|
||||
$possible =~ s/\s*$Storage\s*//g;
|
||||
$possible =~ s/\s*$Sparse\s*//g;
|
||||
@@ -1022,8 +1027,10 @@ sub possible {
|
||||
} elsif ($possible =~ /\s/) {
|
||||
$possible =~ s/\s*$Type\s*//g;
|
||||
for my $modifier (split(' ', $possible)) {
|
||||
warn "MODIFIER: $modifier ($possible) ($line)\n" if ($dbg_possible);
|
||||
push(@modifierList, $modifier);
|
||||
if ($modifier !~ $notPermitted) {
|
||||
warn "MODIFIER: $modifier ($possible) ($line)\n" if ($dbg_possible);
|
||||
push(@modifierList, $modifier);
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
@@ -1138,6 +1145,7 @@ sub process {
|
||||
# suppression flags
|
||||
my %suppress_ifbraces;
|
||||
my %suppress_whiletrailers;
|
||||
my %suppress_export;
|
||||
|
||||
# Pre-scan the patch sanitizing the lines.
|
||||
# Pre-scan the patch looking for any __setup documentation.
|
||||
@@ -1230,7 +1238,6 @@ sub process {
|
||||
$linenr++;
|
||||
|
||||
my $rawline = $rawlines[$linenr - 1];
|
||||
my $hunk_line = ($realcnt != 0);
|
||||
|
||||
#extract the line range in the file after the patch is applied
|
||||
if ($line=~/^\@\@ -\d+(?:,\d+)? \+(\d+)(,(\d+))? \@\@/) {
|
||||
@@ -1247,6 +1254,7 @@ sub process {
|
||||
|
||||
%suppress_ifbraces = ();
|
||||
%suppress_whiletrailers = ();
|
||||
%suppress_export = ();
|
||||
next;
|
||||
|
||||
# track the line number as we move through the hunk, note that
|
||||
@@ -1270,6 +1278,8 @@ sub process {
|
||||
$realcnt--;
|
||||
}
|
||||
|
||||
my $hunk_line = ($realcnt != 0);
|
||||
|
||||
#make up the handle for any error we report on this line
|
||||
$prefix = "$filename:$realline: " if ($emacs && $file);
|
||||
$prefix = "$filename:$linenr: " if ($emacs && !$file);
|
||||
@@ -1420,13 +1430,22 @@ sub process {
|
||||
}
|
||||
|
||||
# Check for potential 'bare' types
|
||||
my ($stat, $cond, $line_nr_next, $remain_next, $off_next);
|
||||
my ($stat, $cond, $line_nr_next, $remain_next, $off_next,
|
||||
$realline_next);
|
||||
if ($realcnt && $line =~ /.\s*\S/) {
|
||||
($stat, $cond, $line_nr_next, $remain_next, $off_next) =
|
||||
ctx_statement_block($linenr, $realcnt, 0);
|
||||
$stat =~ s/\n./\n /g;
|
||||
$cond =~ s/\n./\n /g;
|
||||
|
||||
# Find the real next line.
|
||||
$realline_next = $line_nr_next;
|
||||
if (defined $realline_next &&
|
||||
(!defined $lines[$realline_next - 1] ||
|
||||
substr($lines[$realline_next - 1], $off_next) =~ /^\s*$/)) {
|
||||
$realline_next++;
|
||||
}
|
||||
|
||||
my $s = $stat;
|
||||
$s =~ s/{.*$//s;
|
||||
|
||||
@@ -1661,8 +1680,8 @@ sub process {
|
||||
}
|
||||
|
||||
# check for initialisation to aggregates open brace on the next line
|
||||
if ($prevline =~ /$Declare\s*$Ident\s*=\s*$/ &&
|
||||
$line =~ /^.\s*{/) {
|
||||
if ($line =~ /^.\s*{/ &&
|
||||
$prevline =~ /(?:^|[^=])=\s*$/) {
|
||||
ERROR("that open brace { should be on the previous line\n" . $hereprev);
|
||||
}
|
||||
|
||||
@@ -1687,21 +1706,40 @@ sub process {
|
||||
$line =~ s@//.*@@;
|
||||
$opline =~ s@//.*@@;
|
||||
|
||||
#EXPORT_SYMBOL should immediately follow its function closing }.
|
||||
if (($line =~ /EXPORT_SYMBOL.*\((.*)\)/) ||
|
||||
($line =~ /EXPORT_UNUSED_SYMBOL.*\((.*)\)/)) {
|
||||
# EXPORT_SYMBOL should immediately follow the thing it is exporting, consider
|
||||
# the whole statement.
|
||||
#print "APW <$lines[$realline_next - 1]>\n";
|
||||
if (defined $realline_next &&
|
||||
exists $lines[$realline_next - 1] &&
|
||||
!defined $suppress_export{$realline_next} &&
|
||||
($lines[$realline_next - 1] =~ /EXPORT_SYMBOL.*\((.*)\)/ ||
|
||||
$lines[$realline_next - 1] =~ /EXPORT_UNUSED_SYMBOL.*\((.*)\)/)) {
|
||||
my $name = $1;
|
||||
if ($prevline !~ /(?:
|
||||
^.}|
|
||||
if ($stat !~ /(?:
|
||||
\n.}\s*$|
|
||||
^.DEFINE_$Ident\(\Q$name\E\)|
|
||||
^.DECLARE_$Ident\(\Q$name\E\)|
|
||||
^.LIST_HEAD\(\Q$name\E\)|
|
||||
^.$Type\s*\(\s*\*\s*\Q$name\E\s*\)\s*\(|
|
||||
\b\Q$name\E(?:\s+$Attribute)?\s*(?:;|=|\[)
|
||||
^.(?:$Storage\s+)?$Type\s*\(\s*\*\s*\Q$name\E\s*\)\s*\(|
|
||||
\b\Q$name\E(?:\s+$Attribute)*\s*(?:;|=|\[|\()
|
||||
)/x) {
|
||||
WARN("EXPORT_SYMBOL(foo); should immediately follow its function/variable\n" . $herecurr);
|
||||
#print "FOO A<$lines[$realline_next - 1]> stat<$stat> name<$name>\n";
|
||||
$suppress_export{$realline_next} = 2;
|
||||
} else {
|
||||
$suppress_export{$realline_next} = 1;
|
||||
}
|
||||
}
|
||||
if (!defined $suppress_export{$linenr} &&
|
||||
$prevline =~ /^.\s*$/ &&
|
||||
($line =~ /EXPORT_SYMBOL.*\((.*)\)/ ||
|
||||
$line =~ /EXPORT_UNUSED_SYMBOL.*\((.*)\)/)) {
|
||||
#print "FOO B <$lines[$linenr - 1]>\n";
|
||||
$suppress_export{$linenr} = 2;
|
||||
}
|
||||
if (defined $suppress_export{$linenr} &&
|
||||
$suppress_export{$linenr} == 2) {
|
||||
WARN("EXPORT_SYMBOL(foo); should immediately follow its function/variable\n" . $herecurr);
|
||||
}
|
||||
|
||||
# check for external initialisers.
|
||||
if ($line =~ /^.$Type\s*$Ident\s*(?:\s+$Modifier)*\s*=\s*(0|NULL|false)\s*;/) {
|
||||
|
||||
+1
-1
@@ -217,7 +217,7 @@ struct data data_insert_at_marker(struct data d, struct marker *m,
|
||||
return d;
|
||||
}
|
||||
|
||||
struct data data_append_markers(struct data d, struct marker *m)
|
||||
static struct data data_append_markers(struct data d, struct marker *m)
|
||||
{
|
||||
struct marker **mp = &d.markers;
|
||||
|
||||
|
||||
@@ -18,7 +18,7 @@
|
||||
* USA
|
||||
*/
|
||||
|
||||
%option noyywrap nounput yylineno
|
||||
%option noyywrap noinput nounput yylineno
|
||||
|
||||
%x INCLUDE
|
||||
%x BYTESTRING
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
#define FLEX_SCANNER
|
||||
#define YY_FLEX_MAJOR_VERSION 2
|
||||
#define YY_FLEX_MINOR_VERSION 5
|
||||
#define YY_FLEX_SUBMINOR_VERSION 34
|
||||
#define YY_FLEX_SUBMINOR_VERSION 35
|
||||
#if YY_FLEX_SUBMINOR_VERSION > 0
|
||||
#define FLEX_BETA
|
||||
#endif
|
||||
@@ -54,7 +54,6 @@ typedef int flex_int32_t;
|
||||
typedef unsigned char flex_uint8_t;
|
||||
typedef unsigned short int flex_uint16_t;
|
||||
typedef unsigned int flex_uint32_t;
|
||||
#endif /* ! C99 */
|
||||
|
||||
/* Limits of integral types. */
|
||||
#ifndef INT8_MIN
|
||||
@@ -85,6 +84,8 @@ typedef unsigned int flex_uint32_t;
|
||||
#define UINT32_MAX (4294967295U)
|
||||
#endif
|
||||
|
||||
#endif /* ! C99 */
|
||||
|
||||
#endif /* ! FLEXINT_H */
|
||||
|
||||
#ifdef __cplusplus
|
||||
@@ -141,7 +142,15 @@ typedef unsigned int flex_uint32_t;
|
||||
|
||||
/* Size of default input buffer. */
|
||||
#ifndef YY_BUF_SIZE
|
||||
#ifdef __ia64__
|
||||
/* On IA-64, the buffer size is 16k, not 8k.
|
||||
* Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
|
||||
* Ditto for the __ia64__ case accordingly.
|
||||
*/
|
||||
#define YY_BUF_SIZE 32768
|
||||
#else
|
||||
#define YY_BUF_SIZE 16384
|
||||
#endif /* __ia64__ */
|
||||
#endif
|
||||
|
||||
/* The state buf must be large enough to hold one state per character in the main buffer.
|
||||
@@ -192,13 +201,6 @@ extern FILE *yyin, *yyout;
|
||||
|
||||
#define unput(c) yyunput( c, (yytext_ptr) )
|
||||
|
||||
/* The following is because we cannot portably get our hands on size_t
|
||||
* (without autoconf's help, which isn't available because we want
|
||||
* flex-generated scanners to compile on their own).
|
||||
* Given that the standard has decreed that size_t exists since 1989,
|
||||
* I guess we can afford to depend on it. Manoj.
|
||||
*/
|
||||
|
||||
#ifndef YY_TYPEDEF_YY_SIZE_T
|
||||
#define YY_TYPEDEF_YY_SIZE_T
|
||||
typedef size_t yy_size_t;
|
||||
@@ -604,6 +606,7 @@ char *yytext;
|
||||
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307
|
||||
* USA
|
||||
*/
|
||||
#define YY_NO_INPUT 1
|
||||
|
||||
|
||||
|
||||
@@ -634,7 +637,7 @@ static int dts_version; /* = 0 */
|
||||
|
||||
static void push_input_file(const char *filename);
|
||||
static int pop_input_file(void);
|
||||
#line 638 "dtc-lexer.lex.c"
|
||||
#line 641 "dtc-lexer.lex.c"
|
||||
|
||||
#define INITIAL 0
|
||||
#define INCLUDE 1
|
||||
@@ -656,6 +659,35 @@ static int pop_input_file(void);
|
||||
|
||||
static int yy_init_globals (void );
|
||||
|
||||
/* Accessor methods to globals.
|
||||
These are made visible to non-reentrant scanners for convenience. */
|
||||
|
||||
int yylex_destroy (void );
|
||||
|
||||
int yyget_debug (void );
|
||||
|
||||
void yyset_debug (int debug_flag );
|
||||
|
||||
YY_EXTRA_TYPE yyget_extra (void );
|
||||
|
||||
void yyset_extra (YY_EXTRA_TYPE user_defined );
|
||||
|
||||
FILE *yyget_in (void );
|
||||
|
||||
void yyset_in (FILE * in_str );
|
||||
|
||||
FILE *yyget_out (void );
|
||||
|
||||
void yyset_out (FILE * out_str );
|
||||
|
||||
int yyget_leng (void );
|
||||
|
||||
char *yyget_text (void );
|
||||
|
||||
int yyget_lineno (void );
|
||||
|
||||
void yyset_lineno (int line_number );
|
||||
|
||||
/* Macros after this point can all be overridden by user definitions in
|
||||
* section 1.
|
||||
*/
|
||||
@@ -688,7 +720,12 @@ static int input (void );
|
||||
|
||||
/* Amount of stuff to slurp up with each read. */
|
||||
#ifndef YY_READ_BUF_SIZE
|
||||
#ifdef __ia64__
|
||||
/* On IA-64, the buffer size is 16k, not 8k */
|
||||
#define YY_READ_BUF_SIZE 16384
|
||||
#else
|
||||
#define YY_READ_BUF_SIZE 8192
|
||||
#endif /* __ia64__ */
|
||||
#endif
|
||||
|
||||
/* Copy whatever the last rule matched to the standard output. */
|
||||
@@ -696,7 +733,7 @@ static int input (void );
|
||||
/* This used to be an fputs(), but since the string might contain NUL's,
|
||||
* we now use fwrite().
|
||||
*/
|
||||
#define ECHO fwrite( yytext, yyleng, 1, yyout )
|
||||
#define ECHO do { if (fwrite( yytext, yyleng, 1, yyout )) {} } while (0)
|
||||
#endif
|
||||
|
||||
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
|
||||
@@ -707,7 +744,7 @@ static int input (void );
|
||||
if ( YY_CURRENT_BUFFER_LVALUE->yy_is_interactive ) \
|
||||
{ \
|
||||
int c = '*'; \
|
||||
int n; \
|
||||
size_t n; \
|
||||
for ( n = 0; n < max_size && \
|
||||
(c = getc( yyin )) != EOF && c != '\n'; ++n ) \
|
||||
buf[n] = (char) c; \
|
||||
@@ -791,7 +828,7 @@ YY_DECL
|
||||
|
||||
#line 64 "dtc-lexer.l"
|
||||
|
||||
#line 795 "dtc-lexer.lex.c"
|
||||
#line 832 "dtc-lexer.lex.c"
|
||||
|
||||
if ( !(yy_init) )
|
||||
{
|
||||
@@ -1116,7 +1153,7 @@ YY_RULE_SETUP
|
||||
#line 222 "dtc-lexer.l"
|
||||
ECHO;
|
||||
YY_BREAK
|
||||
#line 1120 "dtc-lexer.lex.c"
|
||||
#line 1157 "dtc-lexer.lex.c"
|
||||
|
||||
case YY_END_OF_BUFFER:
|
||||
{
|
||||
@@ -1840,8 +1877,8 @@ YY_BUFFER_STATE yy_scan_string (yyconst char * yystr )
|
||||
|
||||
/** Setup the input buffer state to scan the given bytes. The next call to yylex() will
|
||||
* scan from a @e copy of @a bytes.
|
||||
* @param bytes the byte buffer to scan
|
||||
* @param len the number of bytes in the buffer pointed to by @a bytes.
|
||||
* @param yybytes the byte buffer to scan
|
||||
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
|
||||
@@ -411,7 +411,7 @@ int fdt_node_offset_by_phandle(const void *fdt, uint32_t phandle)
|
||||
&phandle, sizeof(phandle));
|
||||
}
|
||||
|
||||
int _stringlist_contains(const char *strlist, int listlen, const char *str)
|
||||
static int _stringlist_contains(const char *strlist, int listlen, const char *str)
|
||||
{
|
||||
int len = strlen(str);
|
||||
const char *p;
|
||||
|
||||
@@ -52,7 +52,7 @@ static void write_prefix(FILE *f, int level)
|
||||
fputc('\t', f);
|
||||
}
|
||||
|
||||
int isstring(char c)
|
||||
static int isstring(char c)
|
||||
{
|
||||
return (isprint(c)
|
||||
|| (c == '\0')
|
||||
|
||||
@@ -1,4 +1,4 @@
|
||||
/* ANSI-C code produced by gperf version 3.0.2 */
|
||||
/* ANSI-C code produced by gperf version 3.0.3 */
|
||||
/* Command-line: gperf -L ANSI-C -a -C -E -g -H is_reserved_hash -k '1,3,$' -N is_reserved_word -p -t scripts/genksyms/keywords.gperf */
|
||||
|
||||
#if !((' ' == 32) && ('!' == 33) && ('"' == 34) && ('#' == 35) \
|
||||
@@ -30,7 +30,9 @@
|
||||
|
||||
#line 1 "scripts/genksyms/keywords.gperf"
|
||||
|
||||
#line 3 "scripts/genksyms/keywords.gperf"
|
||||
struct resword;
|
||||
static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
|
||||
#line 5 "scripts/genksyms/keywords.gperf"
|
||||
struct resword { const char *name; int token; };
|
||||
/* maximum key range = 62, duplicates = 0 */
|
||||
|
||||
@@ -78,6 +80,9 @@ is_reserved_hash (register const char *str, register unsigned int len)
|
||||
|
||||
#ifdef __GNUC__
|
||||
__inline
|
||||
#ifdef __GNUC_STDC_INLINE__
|
||||
__attribute__ ((__gnu_inline__))
|
||||
#endif
|
||||
#endif
|
||||
const struct resword *
|
||||
is_reserved_word (register const char *str, register unsigned int len)
|
||||
@@ -94,105 +99,105 @@ is_reserved_word (register const char *str, register unsigned int len)
|
||||
static const struct resword wordlist[] =
|
||||
{
|
||||
{""}, {""}, {""},
|
||||
#line 26 "scripts/genksyms/keywords.gperf"
|
||||
#line 28 "scripts/genksyms/keywords.gperf"
|
||||
{"asm", ASM_KEYW},
|
||||
{""},
|
||||
#line 8 "scripts/genksyms/keywords.gperf"
|
||||
#line 10 "scripts/genksyms/keywords.gperf"
|
||||
{"__asm", ASM_KEYW},
|
||||
{""},
|
||||
#line 9 "scripts/genksyms/keywords.gperf"
|
||||
#line 11 "scripts/genksyms/keywords.gperf"
|
||||
{"__asm__", ASM_KEYW},
|
||||
{""}, {""},
|
||||
#line 52 "scripts/genksyms/keywords.gperf"
|
||||
#line 54 "scripts/genksyms/keywords.gperf"
|
||||
{"__typeof__", TYPEOF_KEYW},
|
||||
{""},
|
||||
#line 12 "scripts/genksyms/keywords.gperf"
|
||||
#line 14 "scripts/genksyms/keywords.gperf"
|
||||
{"__const", CONST_KEYW},
|
||||
#line 11 "scripts/genksyms/keywords.gperf"
|
||||
{"__attribute__", ATTRIBUTE_KEYW},
|
||||
#line 13 "scripts/genksyms/keywords.gperf"
|
||||
{"__attribute__", ATTRIBUTE_KEYW},
|
||||
#line 15 "scripts/genksyms/keywords.gperf"
|
||||
{"__const__", CONST_KEYW},
|
||||
#line 18 "scripts/genksyms/keywords.gperf"
|
||||
{"__signed__", SIGNED_KEYW},
|
||||
#line 44 "scripts/genksyms/keywords.gperf"
|
||||
{"static", STATIC_KEYW},
|
||||
#line 20 "scripts/genksyms/keywords.gperf"
|
||||
{"__signed__", SIGNED_KEYW},
|
||||
#line 46 "scripts/genksyms/keywords.gperf"
|
||||
{"static", STATIC_KEYW},
|
||||
#line 22 "scripts/genksyms/keywords.gperf"
|
||||
{"__volatile__", VOLATILE_KEYW},
|
||||
#line 39 "scripts/genksyms/keywords.gperf"
|
||||
#line 41 "scripts/genksyms/keywords.gperf"
|
||||
{"int", INT_KEYW},
|
||||
#line 32 "scripts/genksyms/keywords.gperf"
|
||||
#line 34 "scripts/genksyms/keywords.gperf"
|
||||
{"char", CHAR_KEYW},
|
||||
#line 33 "scripts/genksyms/keywords.gperf"
|
||||
#line 35 "scripts/genksyms/keywords.gperf"
|
||||
{"const", CONST_KEYW},
|
||||
#line 45 "scripts/genksyms/keywords.gperf"
|
||||
#line 47 "scripts/genksyms/keywords.gperf"
|
||||
{"struct", STRUCT_KEYW},
|
||||
#line 24 "scripts/genksyms/keywords.gperf"
|
||||
#line 26 "scripts/genksyms/keywords.gperf"
|
||||
{"__restrict__", RESTRICT_KEYW},
|
||||
#line 25 "scripts/genksyms/keywords.gperf"
|
||||
#line 27 "scripts/genksyms/keywords.gperf"
|
||||
{"restrict", RESTRICT_KEYW},
|
||||
#line 23 "scripts/genksyms/keywords.gperf"
|
||||
#line 25 "scripts/genksyms/keywords.gperf"
|
||||
{"_restrict", RESTRICT_KEYW},
|
||||
#line 16 "scripts/genksyms/keywords.gperf"
|
||||
#line 18 "scripts/genksyms/keywords.gperf"
|
||||
{"__inline__", INLINE_KEYW},
|
||||
#line 10 "scripts/genksyms/keywords.gperf"
|
||||
#line 12 "scripts/genksyms/keywords.gperf"
|
||||
{"__attribute", ATTRIBUTE_KEYW},
|
||||
{""},
|
||||
#line 14 "scripts/genksyms/keywords.gperf"
|
||||
#line 16 "scripts/genksyms/keywords.gperf"
|
||||
{"__extension__", EXTENSION_KEYW},
|
||||
#line 35 "scripts/genksyms/keywords.gperf"
|
||||
#line 37 "scripts/genksyms/keywords.gperf"
|
||||
{"enum", ENUM_KEYW},
|
||||
#line 19 "scripts/genksyms/keywords.gperf"
|
||||
#line 21 "scripts/genksyms/keywords.gperf"
|
||||
{"__volatile", VOLATILE_KEYW},
|
||||
#line 36 "scripts/genksyms/keywords.gperf"
|
||||
#line 38 "scripts/genksyms/keywords.gperf"
|
||||
{"extern", EXTERN_KEYW},
|
||||
{""},
|
||||
#line 17 "scripts/genksyms/keywords.gperf"
|
||||
#line 19 "scripts/genksyms/keywords.gperf"
|
||||
{"__signed", SIGNED_KEYW},
|
||||
#line 7 "scripts/genksyms/keywords.gperf"
|
||||
#line 9 "scripts/genksyms/keywords.gperf"
|
||||
{"EXPORT_SYMBOL_GPL_FUTURE", EXPORT_SYMBOL_KEYW},
|
||||
{""},
|
||||
#line 51 "scripts/genksyms/keywords.gperf"
|
||||
#line 53 "scripts/genksyms/keywords.gperf"
|
||||
{"typeof", TYPEOF_KEYW},
|
||||
#line 46 "scripts/genksyms/keywords.gperf"
|
||||
#line 48 "scripts/genksyms/keywords.gperf"
|
||||
{"typedef", TYPEDEF_KEYW},
|
||||
#line 15 "scripts/genksyms/keywords.gperf"
|
||||
#line 17 "scripts/genksyms/keywords.gperf"
|
||||
{"__inline", INLINE_KEYW},
|
||||
#line 31 "scripts/genksyms/keywords.gperf"
|
||||
#line 33 "scripts/genksyms/keywords.gperf"
|
||||
{"auto", AUTO_KEYW},
|
||||
#line 47 "scripts/genksyms/keywords.gperf"
|
||||
#line 49 "scripts/genksyms/keywords.gperf"
|
||||
{"union", UNION_KEYW},
|
||||
{""}, {""},
|
||||
#line 48 "scripts/genksyms/keywords.gperf"
|
||||
#line 50 "scripts/genksyms/keywords.gperf"
|
||||
{"unsigned", UNSIGNED_KEYW},
|
||||
#line 49 "scripts/genksyms/keywords.gperf"
|
||||
#line 51 "scripts/genksyms/keywords.gperf"
|
||||
{"void", VOID_KEYW},
|
||||
#line 42 "scripts/genksyms/keywords.gperf"
|
||||
#line 44 "scripts/genksyms/keywords.gperf"
|
||||
{"short", SHORT_KEYW},
|
||||
{""}, {""},
|
||||
#line 50 "scripts/genksyms/keywords.gperf"
|
||||
#line 52 "scripts/genksyms/keywords.gperf"
|
||||
{"volatile", VOLATILE_KEYW},
|
||||
{""},
|
||||
#line 37 "scripts/genksyms/keywords.gperf"
|
||||
#line 39 "scripts/genksyms/keywords.gperf"
|
||||
{"float", FLOAT_KEYW},
|
||||
#line 34 "scripts/genksyms/keywords.gperf"
|
||||
#line 36 "scripts/genksyms/keywords.gperf"
|
||||
{"double", DOUBLE_KEYW},
|
||||
{""},
|
||||
#line 5 "scripts/genksyms/keywords.gperf"
|
||||
#line 7 "scripts/genksyms/keywords.gperf"
|
||||
{"EXPORT_SYMBOL", EXPORT_SYMBOL_KEYW},
|
||||
{""}, {""},
|
||||
#line 38 "scripts/genksyms/keywords.gperf"
|
||||
#line 40 "scripts/genksyms/keywords.gperf"
|
||||
{"inline", INLINE_KEYW},
|
||||
#line 6 "scripts/genksyms/keywords.gperf"
|
||||
#line 8 "scripts/genksyms/keywords.gperf"
|
||||
{"EXPORT_SYMBOL_GPL", EXPORT_SYMBOL_KEYW},
|
||||
#line 41 "scripts/genksyms/keywords.gperf"
|
||||
#line 43 "scripts/genksyms/keywords.gperf"
|
||||
{"register", REGISTER_KEYW},
|
||||
{""},
|
||||
#line 22 "scripts/genksyms/keywords.gperf"
|
||||
#line 24 "scripts/genksyms/keywords.gperf"
|
||||
{"_Bool", BOOL_KEYW},
|
||||
#line 43 "scripts/genksyms/keywords.gperf"
|
||||
#line 45 "scripts/genksyms/keywords.gperf"
|
||||
{"signed", SIGNED_KEYW},
|
||||
{""}, {""},
|
||||
#line 40 "scripts/genksyms/keywords.gperf"
|
||||
#line 42 "scripts/genksyms/keywords.gperf"
|
||||
{"long", LONG_KEYW}
|
||||
};
|
||||
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
%{
|
||||
struct resword;
|
||||
static const struct resword *is_reserved_word(register const char *str, register unsigned int len);
|
||||
%}
|
||||
struct resword { const char *name; int token; }
|
||||
%%
|
||||
|
||||
@@ -5,15 +5,15 @@
|
||||
# Print selected MAINTAINERS information for
|
||||
# the files modified in a patch or for a file
|
||||
#
|
||||
# usage: perl scripts/get_maintainers.pl [OPTIONS] <patch>
|
||||
# perl scripts/get_maintainers.pl [OPTIONS] -f <file>
|
||||
# usage: perl scripts/get_maintainer.pl [OPTIONS] <patch>
|
||||
# perl scripts/get_maintainer.pl [OPTIONS] -f <file>
|
||||
#
|
||||
# Licensed under the terms of the GNU GPL License version 2
|
||||
|
||||
use strict;
|
||||
|
||||
my $P = $0;
|
||||
my $V = '0.20';
|
||||
my $V = '0.21';
|
||||
|
||||
use Getopt::Long qw(:config no_auto_abbrev);
|
||||
|
||||
@@ -37,6 +37,7 @@ my $scm = 0;
|
||||
my $web = 0;
|
||||
my $subsystem = 0;
|
||||
my $status = 0;
|
||||
my $keywords = 1;
|
||||
my $from_filename = 0;
|
||||
my $pattern_depth = 0;
|
||||
my $version = 0;
|
||||
@@ -84,6 +85,7 @@ if (!GetOptions(
|
||||
'scm!' => \$scm,
|
||||
'web!' => \$web,
|
||||
'pattern-depth=i' => \$pattern_depth,
|
||||
'k|keywords!' => \$keywords,
|
||||
'f|file' => \$from_filename,
|
||||
'v|version' => \$version,
|
||||
'h|help' => \$help,
|
||||
@@ -132,6 +134,8 @@ if (!top_of_kernel_tree($lk_path)) {
|
||||
## Read MAINTAINERS for type/value pairs
|
||||
|
||||
my @typevalue = ();
|
||||
my %keyword_hash;
|
||||
|
||||
open(MAINT, "<${lk_path}MAINTAINERS") || die "$P: Can't open MAINTAINERS\n";
|
||||
while (<MAINT>) {
|
||||
my $line = $_;
|
||||
@@ -149,6 +153,8 @@ while (<MAINT>) {
|
||||
if ((-d $value)) {
|
||||
$value =~ s@([^/])$@$1/@;
|
||||
}
|
||||
} elsif ($type eq "K") {
|
||||
$keyword_hash{@typevalue} = $value;
|
||||
}
|
||||
push(@typevalue, "$type:$value");
|
||||
} elsif (!/^(\s)*$/) {
|
||||
@@ -188,6 +194,7 @@ if ($email_remove_duplicates) {
|
||||
|
||||
my @files = ();
|
||||
my @range = ();
|
||||
my @keyword_tvi = ();
|
||||
|
||||
foreach my $file (@ARGV) {
|
||||
##if $file is a directory and it lacks a trailing slash, add one
|
||||
@@ -198,11 +205,24 @@ foreach my $file (@ARGV) {
|
||||
}
|
||||
if ($from_filename) {
|
||||
push(@files, $file);
|
||||
if (-f $file && $keywords) {
|
||||
open(FILE, "<$file") or die "$P: Can't open ${file}\n";
|
||||
while (<FILE>) {
|
||||
my $patch_line = $_;
|
||||
foreach my $line (keys %keyword_hash) {
|
||||
if ($patch_line =~ m/^.*$keyword_hash{$line}/x) {
|
||||
push(@keyword_tvi, $line);
|
||||
}
|
||||
}
|
||||
}
|
||||
close(FILE);
|
||||
}
|
||||
} else {
|
||||
my $file_cnt = @files;
|
||||
my $lastfile;
|
||||
open(PATCH, "<$file") or die "$P: Can't open ${file}\n";
|
||||
while (<PATCH>) {
|
||||
my $patch_line = $_;
|
||||
if (m/^\+\+\+\s+(\S+)/) {
|
||||
my $filename = $1;
|
||||
$filename =~ s@^[^/]*/@@;
|
||||
@@ -213,6 +233,12 @@ foreach my $file (@ARGV) {
|
||||
if ($email_git_blame) {
|
||||
push(@range, "$lastfile:$1:$2");
|
||||
}
|
||||
} elsif ($keywords) {
|
||||
foreach my $line (keys %keyword_hash) {
|
||||
if ($patch_line =~ m/^[+-].*$keyword_hash{$line}/x) {
|
||||
push(@keyword_tvi, $line);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
close(PATCH);
|
||||
@@ -286,6 +312,13 @@ foreach my $file (@files) {
|
||||
}
|
||||
}
|
||||
|
||||
if ($keywords) {
|
||||
@keyword_tvi = sort_and_uniq(@keyword_tvi);
|
||||
foreach my $line (@keyword_tvi) {
|
||||
add_categories($line);
|
||||
}
|
||||
}
|
||||
|
||||
if ($email) {
|
||||
foreach my $chief (@penguin_chief) {
|
||||
if ($chief =~ m/^(.*):(.*)/) {
|
||||
@@ -384,6 +417,7 @@ Output type options:
|
||||
|
||||
Other options:
|
||||
--pattern-depth => Number of pattern directory traversals (default: 0 (all))
|
||||
--keywords => scan patch for keywords (default: 1 (on))
|
||||
--version => show version
|
||||
--help => show this help information
|
||||
|
||||
@@ -486,7 +520,6 @@ sub format_email {
|
||||
}
|
||||
|
||||
sub find_starting_index {
|
||||
|
||||
my ($index) = @_;
|
||||
|
||||
while ($index > 0) {
|
||||
|
||||
@@ -20,7 +20,7 @@ use strict;
|
||||
|
||||
my ($readdir, $installdir, $arch, @files) = @ARGV;
|
||||
|
||||
my $unifdef = "scripts/unifdef -U__KERNEL__";
|
||||
my $unifdef = "scripts/unifdef -U__KERNEL__ -D__EXPORTED_HEADERS__";
|
||||
|
||||
foreach my $file (@files) {
|
||||
local *INFILE;
|
||||
|
||||
@@ -30,7 +30,7 @@ silentoldconfig: $(obj)/conf
|
||||
$< -s $(Kconfig)
|
||||
|
||||
localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
|
||||
$(Q)perl $< $(Kconfig) > .tmp.config
|
||||
$(Q)perl $< $(srctree) $(Kconfig) > .tmp.config
|
||||
$(Q)if [ -f .config ]; then \
|
||||
cmp -s .tmp.config .config || \
|
||||
(mv -f .config .config.old.1; \
|
||||
@@ -44,7 +44,7 @@ localmodconfig: $(obj)/streamline_config.pl $(obj)/conf
|
||||
$(Q)rm -f .tmp.config
|
||||
|
||||
localyesconfig: $(obj)/streamline_config.pl $(obj)/conf
|
||||
$(Q)perl $< $(Kconfig) > .tmp.config
|
||||
$(Q)perl $< $(srctree) $(Kconfig) > .tmp.config
|
||||
$(Q)sed -i s/=m/=y/ .tmp.config
|
||||
$(Q)if [ -f .config ]; then \
|
||||
cmp -s .tmp.config .config || \
|
||||
|
||||
@@ -160,7 +160,15 @@ typedef unsigned int flex_uint32_t;
|
||||
|
||||
/* Size of default input buffer. */
|
||||
#ifndef YY_BUF_SIZE
|
||||
#ifdef __ia64__
|
||||
/* On IA-64, the buffer size is 16k, not 8k.
|
||||
* Moreover, YY_BUF_SIZE is 2*YY_READ_BUF_SIZE in the general case.
|
||||
* Ditto for the __ia64__ case accordingly.
|
||||
*/
|
||||
#define YY_BUF_SIZE 32768
|
||||
#else
|
||||
#define YY_BUF_SIZE 16384
|
||||
#endif /* __ia64__ */
|
||||
#endif
|
||||
|
||||
/* The state buf must be large enough to hold one state per character in the main buffer.
|
||||
@@ -802,7 +810,7 @@ static int last_ts, first_ts;
|
||||
static void zconf_endhelp(void);
|
||||
static void zconf_endfile(void);
|
||||
|
||||
void new_string(void)
|
||||
static void new_string(void)
|
||||
{
|
||||
text = malloc(START_STRSIZE);
|
||||
text_asize = START_STRSIZE;
|
||||
@@ -810,7 +818,7 @@ void new_string(void)
|
||||
*text = 0;
|
||||
}
|
||||
|
||||
void append_string(const char *str, int size)
|
||||
static void append_string(const char *str, int size)
|
||||
{
|
||||
int new_size = text_size + size + 1;
|
||||
if (new_size > text_asize) {
|
||||
@@ -824,7 +832,7 @@ void append_string(const char *str, int size)
|
||||
text[text_size] = 0;
|
||||
}
|
||||
|
||||
void alloc_string(const char *str, int size)
|
||||
static void alloc_string(const char *str, int size)
|
||||
{
|
||||
text = malloc(size + 1);
|
||||
memcpy(text, str, size);
|
||||
@@ -914,7 +922,12 @@ static int input (void );
|
||||
|
||||
/* Amount of stuff to slurp up with each read. */
|
||||
#ifndef YY_READ_BUF_SIZE
|
||||
#ifdef __ia64__
|
||||
/* On IA-64, the buffer size is 16k, not 8k */
|
||||
#define YY_READ_BUF_SIZE 16384
|
||||
#else
|
||||
#define YY_READ_BUF_SIZE 8192
|
||||
#endif /* __ia64__ */
|
||||
#endif
|
||||
|
||||
/* Copy whatever the last rule matched to the standard output. */
|
||||
@@ -922,7 +935,7 @@ static int input (void );
|
||||
/* This used to be an fputs(), but since the string might contain NUL's,
|
||||
* we now use fwrite().
|
||||
*/
|
||||
#define ECHO fwrite( zconftext, zconfleng, 1, zconfout )
|
||||
#define ECHO do { if (fwrite( zconftext, zconfleng, 1, zconfout )) {} } while (0)
|
||||
#endif
|
||||
|
||||
/* Gets input and stuffs it into "buf". number of characters read, or YY_NULL,
|
||||
@@ -2060,8 +2073,8 @@ YY_BUFFER_STATE zconf_scan_string (yyconst char * yystr )
|
||||
|
||||
/** Setup the input buffer state to scan the given bytes. The next call to zconflex() will
|
||||
* scan from a @e copy of @a bytes.
|
||||
* @param bytes the byte buffer to scan
|
||||
* @param len the number of bytes in the buffer pointed to by @a bytes.
|
||||
* @param yybytes the byte buffer to scan
|
||||
* @param _yybytes_len the number of bytes in the buffer pointed to by @a bytes.
|
||||
*
|
||||
* @return the newly allocated buffer state object.
|
||||
*/
|
||||
|
||||
@@ -43,7 +43,6 @@
|
||||
# make oldconfig
|
||||
#
|
||||
my $config = ".config";
|
||||
my $linuxpath = ".";
|
||||
|
||||
my $uname = `uname -r`;
|
||||
chomp $uname;
|
||||
@@ -111,7 +110,11 @@ sub find_config {
|
||||
|
||||
find_config;
|
||||
|
||||
my @makefiles = `find $linuxpath -name Makefile`;
|
||||
# Get the build source and top level Kconfig file (passed in)
|
||||
my $ksource = $ARGV[0];
|
||||
my $kconfig = $ARGV[1];
|
||||
|
||||
my @makefiles = `find $ksource -name Makefile`;
|
||||
my %depends;
|
||||
my %selects;
|
||||
my %prompts;
|
||||
@@ -119,9 +122,6 @@ my %objects;
|
||||
my $var;
|
||||
my $cont = 0;
|
||||
|
||||
# Get the top level Kconfig file (passed in)
|
||||
my $kconfig = $ARGV[0];
|
||||
|
||||
# prevent recursion
|
||||
my %read_kconfigs;
|
||||
|
||||
@@ -132,7 +132,7 @@ sub read_kconfig {
|
||||
my $config;
|
||||
my @kconfigs;
|
||||
|
||||
open(KIN, $kconfig) || die "Can't open $kconfig";
|
||||
open(KIN, "$ksource/$kconfig") || die "Can't open $kconfig";
|
||||
while (<KIN>) {
|
||||
chomp;
|
||||
|
||||
|
||||
@@ -9,6 +9,8 @@
|
||||
|
||||
struct kconf_id;
|
||||
|
||||
static struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
|
||||
|
||||
%%
|
||||
mainmenu, T_MAINMENU, TF_COMMAND
|
||||
menu, T_MENU, TF_COMMAND
|
||||
|
||||
@@ -30,6 +30,8 @@
|
||||
#endif
|
||||
|
||||
struct kconf_id;
|
||||
|
||||
static struct kconf_id *kconf_id_lookup(register const char *str, register unsigned int len);
|
||||
/* maximum key range = 47, duplicates = 0 */
|
||||
|
||||
#ifdef __GNUC__
|
||||
|
||||
@@ -39,7 +39,7 @@ static int last_ts, first_ts;
|
||||
static void zconf_endhelp(void);
|
||||
static void zconf_endfile(void);
|
||||
|
||||
void new_string(void)
|
||||
static void new_string(void)
|
||||
{
|
||||
text = malloc(START_STRSIZE);
|
||||
text_asize = START_STRSIZE;
|
||||
@@ -47,7 +47,7 @@ void new_string(void)
|
||||
*text = 0;
|
||||
}
|
||||
|
||||
void append_string(const char *str, int size)
|
||||
static void append_string(const char *str, int size)
|
||||
{
|
||||
int new_size = text_size + size + 1;
|
||||
if (new_size > text_asize) {
|
||||
@@ -61,7 +61,7 @@ void append_string(const char *str, int size)
|
||||
text[text_size] = 0;
|
||||
}
|
||||
|
||||
void alloc_string(const char *str, int size)
|
||||
static void alloc_string(const char *str, int size)
|
||||
{
|
||||
text = malloc(size + 1);
|
||||
memcpy(text, str, size);
|
||||
|
||||
+190
-225
File diff suppressed because it is too large
Load Diff
Some files were not shown because too many files have changed in this diff Show More
Reference in New Issue
Block a user