* git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/driver-core-2.6: (46 commits) UIO: Fix mapping of logical and virtual memory UIO: add automata sercos3 pci card support UIO: Change driver name of uio_pdrv UIO: Add alignment warnings for uio-mem Driver core: add bus_sort_breadthfirst() function NET: convert the phy_device file to use bus_find_device_by_name kobject: Cleanup kobject_rename and !CONFIG_SYSFS kobject: Fix kobject_rename and !CONFIG_SYSFS sysfs: Make dir and name args to sysfs_notify() const platform: add new device registration helper sysfs: use ilookup5() instead of ilookup5_nowait() PNP: create device attributes via default device attributes Driver core: make bus_find_device_by_name() more robust usb: turn dev_warn+WARN_ON combos into dev_WARN debug: use dev_WARN() rather than WARN_ON() in device_pm_add() debug: Introduce a dev_WARN() function sysfs: fix deadlock device model: Do a quickcheck for driver binding before doing an expensive check Driver core: Fix cleanup in device_create_vargs(). Driver core: Clarify device cleanup. ...
Showing the changes to scripts (3 of 131 files). Show all
Unified · Split
| @@ -96,6 +96,14 @@ basename_flags = -D"KBUILD_BASENAME=KBUILD_STR($(call name-fix,$(basetarget)))" · 95 unmodified lines | ||
| 96 | 96 | modname_flags = $(if $(filter 1,$(words $(modname))),\ |
| 97 | 97 | -D"KBUILD_MODNAME=KBUILD_STR($(call name-fix,$(modname)))") |
| 98 | 98 | |
| 99 | +#hash values | |
| 100 | +ifdef CONFIG_DYNAMIC_PRINTK_DEBUG | |
| 101 | +debug_flags = -D"DEBUG_HASH=$(shell ./scripts/basic/hash djb2 $(@D)$(modname))"\ | |
| 102 | + -D"DEBUG_HASH2=$(shell ./scripts/basic/hash r5 $(@D)$(modname))" | |
| 103 | +else | |
| 104 | +debug_flags = | |
| 105 | +endif | |
| 106 | + | |
| 99 | 107 | orig_c_flags = $(KBUILD_CFLAGS) $(ccflags-y) $(CFLAGS_$(basetarget).o) |
| 100 | 108 | _c_flags = $(filter-out $(CFLAGS_REMOVE_$(basetarget).o), $(orig_c_flags)) |
| 101 | 109 | _a_flags = $(KBUILD_AFLAGS) $(asflags-y) $(AFLAGS_$(basetarget).o) |
| @@ -121,7 +129,8 @@ endif · 19 unmodified lines | ||
| 121 | 129 | |
| 122 | 130 | c_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \ |
| 123 | 131 | $(__c_flags) $(modkern_cflags) \ |
| 124 | − -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) | |
| 132 | + -D"KBUILD_STR(s)=\#s" $(basename_flags) $(modname_flags) \ | |
| 133 | + $(debug_flags) | |
| 125 | 134 | |
| 126 | 135 | a_flags = -Wp,-MD,$(depfile) $(NOSTDINC_FLAGS) $(KBUILD_CPPFLAGS) \ |
| 127 | 136 | $(__a_flags) $(modkern_aflags) |
| @@ -9,7 +9,7 @@ · 8 unmodified lines | ||
| 9 | 9 | # fixdep: Used to generate dependency information during build process |
| 10 | 10 | # docproc: Used in Documentation/DocBook |
| 11 | 11 | |
| 12 | −hostprogs-y := fixdep docproc | |
| 12 | +hostprogs-y := fixdep docproc hash | |
| 13 | 13 | always := $(hostprogs-y) |
| 14 | 14 | |
| 15 | 15 | # fixdep is needed to compile other host programs |
| @@ -0,0 +1,64 @@ | ||
| 1 | +/* | |
| 2 | + * Copyright (C) 2008 Red Hat, Inc., Jason Baron <jbaron@redhat.com> | |
| 3 | + * | |
| 4 | + */ | |
| 5 | + | |
| 6 | +#include <stdio.h> | |
| 7 | +#include <stdlib.h> | |
| 8 | +#include <string.h> | |
| 9 | + | |
| 10 | +#define DYNAMIC_DEBUG_HASH_BITS 6 | |
| 11 | + | |
| 12 | +static const char *program; | |
| 13 | + | |
| 14 | +static void usage(void) | |
| 15 | +{ | |
| 16 | + printf("Usage: %s <djb2|r5> <modname>\n", program); | |
| 17 | + exit(1); | |
| 18 | +} | |
| 19 | + | |
| 20 | +/* djb2 hashing algorithm by Dan Bernstein. From: | |
| 21 | + * http://www.cse.yorku.ca/~oz/hash.html | |
| 22 | + */ | |
| 23 | + | |
| 24 | +unsigned int djb2_hash(char *str) | |
| 25 | +{ | |
| 26 | + unsigned long hash = 5381; | |
| 27 | + int c; | |
| 28 | + | |
| 29 | + c = *str; | |
| 30 | + while (c) { | |
| 31 | + hash = ((hash << 5) + hash) + c; | |
| 32 | + c = *++str; | |
| 33 | + } | |
| 34 | + return (unsigned int)(hash & ((1 << DYNAMIC_DEBUG_HASH_BITS) - 1)); | |
| 35 | +} | |
| 36 | + | |
| 37 | +unsigned int r5_hash(char *str) | |
| 38 | +{ | |
| 39 | + unsigned long hash = 0; | |
| 40 | + int c; | |
| 41 | + | |
| 42 | + c = *str; | |
| 43 | + while (c) { | |
| 44 | + hash = (hash + (c << 4) + (c >> 4)) * 11; | |
| 45 | + c = *++str; | |
| 46 | + } | |
| 47 | + return (unsigned int)(hash & ((1 << DYNAMIC_DEBUG_HASH_BITS) - 1)); | |
| 48 | +} | |
| 49 | + | |
| 50 | +int main(int argc, char *argv[]) | |
| 51 | +{ | |
| 52 | + program = argv[0]; | |
| 53 | + | |
| 54 | + if (argc != 3) | |
| 55 | + usage(); | |
| 56 | + if (!strcmp(argv[1], "djb2")) | |
| 57 | + printf("%d\n", djb2_hash(argv[2])); | |
| 58 | + else if (!strcmp(argv[1], "r5")) | |
| 59 | + printf("%d\n", r5_hash(argv[2])); | |
| 60 | + else | |
| 61 | + usage(); | |
| 62 | + exit(0); | |
| 63 | +} | |
| 64 | + | |