X-Git-Url: https://jxself.org/git/?a=blobdiff_plain;f=deblob-check;h=58af8535174620256fc689c8f83214cb8603c3fe;hb=0d3c0a07aaae93163e5ce2e115964988afa2026e;hp=41906f6776e51577f7bff296b0cb124607303f03;hpb=e32592a4bb48f6acee2ea423600e2a69c2ad8a66;p=releases.git diff --git a/deblob-check b/deblob-check index 41906f6776e5..58af85351746 100755 --- a/deblob-check +++ b/deblob-check @@ -1,6 +1,6 @@ #! /bin/sh -# deblob-check version 2009-03-18 +# deblob-check version 2009-03-24 # Inspired in gNewSense's find-firmware script. # Written by Alexandre Oliva @@ -226,6 +226,25 @@ case ${LANG+set} in set) LANG=C; export LANG;; esac rm="rm -f" + +for echo in 'echo' 'printf %s\n'; do + case `$echo '\nx'` in + '\nx') break;; + esac +done +case `$echo '\nx'` in +'\nx') ;; *) echo Cannot find out what echo to use >&2; exit 1;; +esac + +for echo_n in "echo -n" "printf %s"; do + case `$echo_n '\na'; $echo_n '\nb'` in + '\na\nb') break;; + esac +done +case `$echo_n a; $echo_n b` in +'ab') ;; *) echo Cannot find out an echo -n equivalent to use >&2; exit 1;; +esac + case $1 in --save-scripts | -S) shift @@ -395,7 +414,9 @@ case $1 in set_sed_cmd () { set_sedmain "" "" " i\\ -$file +$file\\ +/*(DEBLOB-\\ +ERROR)*/ q 1;" } ;; @@ -405,10 +426,14 @@ q 1;" set_sed_cmd () { set_sedmain " i\\ -$file +$file\\ +/*(DEBLOB-\\ +ERROR)*/ q 1;" "" " i\\ -$file +$file\\ +/*(DEBLOB-\\ +ERROR)*/ q 1;" } ;; @@ -438,7 +463,9 @@ q 1;" set_sed_cmd () { set_sedmain " i\\ -$file +$file\\ +/*(DEBLOB-\\ +ERROR)*/ q 1;" } ;; @@ -839,14 +866,15 @@ set_except () { accept 'There is an USB interface for downloading[/]uploading.*request_firmware interface\.' Documentation/video4linux/si470x.txt accept '[\t]- move firmware loading to request_firmware()' drivers/staging/slicoss/README accept 'config FIRMWARE_IN_KERNEL.*let firmware be loaded from userspace\.' drivers/base/Kconfig + accept '[ ]*and request_firmware() in the source' drivers/base/Kconfig accept 'static int[\n]_request_firmware(const struct firmware \*\*firmware_p, const char \*name,[^{]*[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}[\n]' drivers/base/firmware_class.c accept 'static int[\n]request_firmware_work_func(void \*arg)[\n]{[\n]\([^}]\|[^\n}]}*\)*ret = _request_firmware(\([^}]\|[^\n}]}*\)*[\n]}[\n]' drivers/base/firmware_class.c accept '[/][*][*][\n] [*] request_firmware: - send firmware [^{]*[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}[\n]' drivers/base/firmware_class.c accept '[/][*][*][\n] [*] request_firmware_nowait: asynchronous version[^{]*[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}[\n]' drivers/base/firmware_class.c accept 'EXPORT_SYMBOL(request_firmware\(_nowait\)\?);' drivers/base/firmware_class.c accept 'int request_firmware\(_nowait\)\?([^;]*);' include/linux/firmware.h - accept 'static inline int request_firmware\(_nowait\)\?([^{]*)[\n]{[\n][\t]return -EINVAL;[\n]}[\n]' include/linux/firmware.h - accept 'static inline int \(maybe_\)\?reject_firmware\(_nowait\)\?([^{;]*)[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}[\n]' include/linux/firmware.h + accept 'static inline int request_firmware\(_nowait\)\?([^{]*)[\n]{[\n][\t]return -EINVAL;[\n]}' include/linux/firmware.h + accept 'static inline int[\n]\(maybe_\)\?reject_firmware\(_nowait\)\?([^{;]*)[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}' include/linux/firmware.h accept 'static inline int request_ihex_firmware\?([^{]*)[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}[\n]' include/linux/ihex.h ocomment '[/][*] Optional firmware\([^\n]*[\n] [*]\)*[^\n]* MODULE_FIRMWARE()' @@ -889,7 +917,7 @@ set_except () { blob ' sprintf([^;]*fore200[^;]*FW_EXT[^;]*);' drivers/atm/fore200e.c blobname '\(pc\|sb\)a200e\(_ecd\)\?\.bin[12]?' drivers/atm/fore200e.c - blobna 'The supplied firmware images.*fore.*Rebuild and reinstall[^.]*\.' Documentation/networking/fore200e.txt + blobna 'The supplied firmware images.*fore.*Rebuild and re-install[^.]*\.' Documentation/networking/fore200e.txt blobname 'intelliport2\.bin' drivers/char/ip2/ip2main.c @@ -904,8 +932,8 @@ set_except () { blob ' r128_cce_load_microcode([^;]*);' drivers/gpu/drm/r128/r128_cce.c blob 'static const u32 R[S0-9]*0_cp_microcode\[\]\[2\] = {[^{};]*};\([\n][\n]*static const u32 R[S0-9]*0_cp_microcode\[\]\[2\] = {[^{};]*};\)*' drivers/gpu/drm/radeon/radeon_microcode.h - blob 'static void radeon_cp_load_microcode([^{]*)[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}[\n]' drivers/gpu/drm/radeon/radeon_cp.c - blob ' radeon_cp_load_microcode([^;]*);' drivers/gpu/drm/radeon/radeon_cp.c + blob '\([/][*] Load the microcode\([^/]\|[^*/][/]*\)*[*][/][\n]\)\?static void radeon_cp_load_microcode([^{]*)[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}[\n]' drivers/gpu/drm/radeon/radeon_cp.c + blobna 'radeon_cp_load_microcode([^;]*);' drivers/gpu/drm/radeon/radeon_cp.c blob 'sub \(sp887[0x]\|tda1004\(5\|6\(lifeview\)\?\)\|av7110\|dec\(2\(00\|54\)0t\|3000s\)\|opera1\|vp7041\|dibusb\|nxt200[24]\|or51\(211\|132_\(qam\|vsb\)\)\|bluebird\) *{\([^}]*\|[^\n]}*\)[\n]}\([\n][\n]*sub \(sp887[0x]\|tda1004\(5\|6\(lifeview\)\?\)\|av7110\|dec\(2\(00\|54\)0t\|3000s\)\|opera1\|vp7041\|dibusb\|nxt200[24]\|or51\(211\|132_\(qam\|vsb\)\)\|bluebird\) *{\([^}]*\|[^\n]}*\)[\n]}\)*' Documentation/dvb/get_dvb_firmware blobna 'Please use[^\n]*firmware[^\n]*sp887x[^\n]*\([\n][^\n]\+\)\+' Documentation/dvb/avermedia.txt @@ -939,13 +967,15 @@ set_except () { blob 'static u32 tigon2\?Fw\(Text\|Rodata\|Data\)\[(MAX_\(TEXT\|RODATA\|DATA\)_LEN\/4) + 1\] __devinitdata = {[^}]*};\([\n]static u32 tigon2\?Fw\(Text\|Rodata\|Data\)\[(MAX_\(TEXT\|RODATA\|DATA\)_LEN\/4) + 1\] __devinitdata = {[^}]*};\)*' drivers/net/acenic_firwmare.h blob '#define tigon2\?Fw[^ ]*\(Addr\|Len\) 0x[^\n]*\([\n]#define tigon2\?Fw[^ ]*\(Addr\|Len\) 0x[^\n]*\)\+' drivers/net/acenic_firmware.h - blob '\([/][*]\([^/]*\|[^*/][/]*\)*Do not try to clear\([^/]*\|[^*/][/]*\)*[*][/][\n] \)\?ace_clear[^;]*;[\n]\([^}]*{[^}]*ace_copy[^}]*tigon2\?Fw[^}]*}\)*[\n]\+ return 0;[\n]}' + blob '\([/][*]\([^/]*\|[^*/][/]*\)*Do not try to clear\([^/]*\|[^*/][/]*\)*[*][/][\n] \)\?ace_clear[^;]*;[\n]\([^}]*{[^}]*ace_copy[^}]*tigon2\?Fw[^}]*}\)*[\n]\+ return 0;[\n]}' drivers/net/acenic.c + blob 'if (\(ACE_IS_TIGON_I(ap)\|ap->version == 2\))[\n] writel(tigon2\?FwStartAddr, [&]regs->Pc);\([\n] if (\(ACE_IS_TIGON_I(ap)\|ap->version == 2\))[\n] writel(tigon2\?FwStartAddr, [&]regs->Pc);\)*' drivers/net/acenic.c blob '#include "starfire_firmware\.h"' drivers/net/starfire.c blob '[/][*]\([^/]*\|[^*/][/]*\)*Load Rx\/Tx firmware\([^/]*\|[^*/][/]*\)*[*][/]\([\n] for ([^)]*FIRMWARE_[RT]X_SIZE[^)]*)[\n] writel[^;]*firmware_[rt]x[^;]*;\)\+' drivers/net/starfire.c blob 'static \(u8\|const u32\|struct fw_info\) bnx2_\(\(COM\|CP\|[RT]XP\|TPAT\)_b0[69]Fw\(Text\|Data\|Rodata\)\|\(xi_\)\?rv2p_proc[12]\|\(com\|cp\|[rt]xp\|tpat\)_fw_0[69]\)\(\[[^]};]*\]\)* = {[^}]*};\([\n][\n]*static \(u8\|const u32\|struct fw_info\) bnx2_\(\(COM\|CP\|[RT]XP\|TPAT\)_b0[69]Fw\(Text\|Data\|Rodata\)\|\(xi_\)\?rv2p_proc[12]\|\(com\|cp\|[rt]xp\|tpat\)_fw_0[69]\)\(\[[^]};]*\]\)* = {[^}]*};\)*' 'drivers/net/bnx2_fw2\?.h' blob '#include "bnx2_fw2\?\.h"\([\n][\n]*#include "bnx2_fw2\?\.h"\)*' drivers/net/bnx2.c + blob 'static void[\n]load_rv2p_fw([^{]*)[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}' drivers/net/bnx2.c blob 'static int[\n]bnx2_init_cpus([^{]*)[\n]{[\n]\([^}]\|[^\n}]}*\)*[\n]}' drivers/net/bnx2.c # init_data_e1h? might actually be just data, but it doesn't @@ -957,6 +987,7 @@ set_except () { blobna 'static u16 \(sr\|twinax\)_edc\[\] = {[^;]*};' drivers/net/cxgb3/ael1002.c blobna 'for ([^\n]*ARRAY_SIZE(\(sr\|twinax\)_edc)[^\n]*)[\n][^;]*mdio_write[^;]*;' drivers/net/cxgb3/ael1002.c + blobname 't3fw\(_protocol_sram\)\?-\(%d\|[0-9]*\)\.\(%d\|[0-9]*\)\.\(%d\|[0-9]*\)\.bin' drivers/net/cxgb3/cxgb3_main.c blob '\([/][*][*]*[*][/][\n]*\)*\([/][*]\([^/]\|[^*/][/]*\)*Micro code\([^/]\|[^*/][/]*\)*8086:\([^/]\|[^*/][/]*\)*[*][/]\([\n]*[/][*]\([^/]\|[^*/][/]*\)*[*][/]\)*\|#define *D10\(1M\(_B\)\?\|1S\|2_E\)_\(CPUSAVER_\(TIMER\|BUNDLE\|MIN_SIZE\)_DWORD\|RCVBUNDLE_UCODE\)[ ]\(\\[\n]\|[^\n]\)*\)\([\n]*[/][*]\([^/]\|[^*/][/]*\|[*][/][\n]*[/][*]\)*Micro code\([^/]\|[^*/][/]*\)*8086:\([^/]\|[^*/][/]*\)*[*][/]\([\n]*[/][*]\([^/]\|[^*/][/]*\)*[*][/]\)*\|[\n][\n]*#define *D10\(1M\(_B\)\?\|1S\|2_E\)_\(CPUSAVER_\(TIMER\|BUNDLE\|MIN_SIZE\)_DWORD\|RCVBUNDLE_UCODE\)[ ]\(\\[\n]\|[^\n]\)*\)*' drivers/net/e100.c blobna '\([/][*]\([^/]\|[*][/]*\)*[*][/][\n]* \)\(ucode\[opts->\(timer\|bundle\|min_size\)_dword\] .= [^;]*;[\n][\n]* \)*[^}]*UCODE_SIZE[^}]*cb_ucode[^}]*return;[\n] }' drivers/net/e100.c @@ -990,7 +1021,7 @@ set_except () { blob 'static const u8 microcode\[\] = {[^}]*} *;' drivers/net/tokenring/3c359_microcode.h blob '#include "3c359_microcode\.h"' drivers/net/tokenring/3c359.c - blobna '\(printk(KERN_INFO "3C359: Uploading Microcode: ");[\n ]*\)\?for ([^{]*\(mc_size[^{]*) {[^}]*writeb(microcode\[\|) {[^}]*writeb(microcode\[mc_size\)[^}]*}\([\n][ ]*printk[^\n]*;[\n ]*for ([^{]*\(mc_size[^{]*) {[^}]*writeb(microcode\[\|) {[^}]*writeb(microcode\[mc_size\)[^}]*}\)*' drivers/net/tokenring/3c359.c + blobna 'start = (0xFFFF - (mc_size)[^;]*;[\n ]*[/][*]\([^/]\|[^*/][/]*\)*[*][/][\n ]*printk(KERN_INFO "3C359: Uploading Microcode: ");[\n ]*for ([^{]*\(mc_size[^{]*) {[^}]*writeb(microcode\[\|) {[^}]*writeb(microcode\[mc_size\)[^}]*}\([\n][ ]*printk[^\n]*;[\n ]*for ([^{]*\(mc_size[^{]*) {[^}]*writeb(microcode\[\|) {[^}]*writeb(microcode\[mc_size\)[^}]*}\)*' drivers/net/tokenring/3c359.c blobname 'tr_smctr\.bin' drivers/net/tokenring/smctr.c @@ -1051,6 +1082,7 @@ set_except () { accept 'int xc_request_firmware(struct xc *[*] *x);' arch/arm/mach-netx/include/mach/xc.h accept 'int xc_request_firmware(struct xc *[*] *x)[\n]{' arch/arm/mach-netx/xc.c + accept ' dev_err(x->dev, "request_firmware failed\\n");' arch/arm/mach-netx/xc.c accept 'EXPORT_SYMBOL(xc_request_firmware);' arch/arm/mach-netx/xc.c accept ' if (xc_request_firmware(priv->xc)) {' drivers/net/netx-eth.c @@ -1079,7 +1111,7 @@ set_except () { blobname 'isi\(6\(08\|\(08\|16\)em\)\|46\(08\|16\)\)\.bin' drivers/char/isicom.c - blobname 'c\(218t\|p204\|320t\)unx\.code' drivers/char/moxa.c + blobname 'c\(218t\|p204\|320t\)unx\.cod' drivers/char/moxa.c accept ' printk(KERN_ERR "MOXA: request_firmware failed' drivers/char/moxa.c # This driver enables the user to update the non-Free BIOS, but it @@ -1096,22 +1128,30 @@ set_except () { blobname 'dvb-fe-xc5000-1\.1\.fw' drivers/media/common/tuners/xc5000.c blobname '4210\(100[12]\|%4X\)\.sb' drivers/net/irda/irda-usb.c + blobna '[/][*][ \n*]* Known firmware\([^/]\|[^*/][/]*\)*\(STIR421x\|4210\(100[12]\|%4X\)\.sb\)\([^/]\|[^*/][/]*\)*[*][/]' drivers/net/irda/irda-usb.c blobname 'myri10ge_\(rss_\)\?ethp\?_z8e\.dat' drivers/net/myri10ge.c + blobna 'If the driver can neither enable ECRC\([^/]\|[^*/][/]*\)*myri10ge_\(rss_\)\?ethp\?_z8e\.dat\([^/]\|[^*/][/]*\)*[*][/]' drivers/net/myri10ge.c blobname 'spider_fw\.bin' drivers/net/spider_net.h blobname 'tms380tr\.bin' drivers/net/tokenring/tms380tr.c blobname 'atmel_at76c50\(2\([de]\|_3com\)\?\|4a\?\(_2958\)\?\|6\)\(\.bin\)\?' drivers/net/wireless/atmel.c + accept ' *priv->firmware = \(NULL\|new_firmware\);' drivers/net/wireless/atmel.c - blobname 'b43[^/]*[/]\(%s\|ucode\(5\|1[13]\)\|pcm5\|[abn]0g[01]initvals\(5\|1[13]\)\)\.fw' 'drivers/net/wireless/b43\(legacy\)\?/main.c' + blobname 'b43\(legacy\)\?\(%s\)\?[/]\(%s\|ucode\(5\|1[13]\)\|pcm5\|[abn]0g[01]initvals\(5\|1[13]\)\)\.fw' 'drivers/net/wireless/b43\(legacy\)\?/main.c' + blobna 'b43legacyerr([^;]*must go to http[^;]*b43#devicefirmware[^;]*);' drivers/net/wireless/b43legacy/main.c - blob '#define IPW2100_FW_\(\(MAJOR\|MINOR\)\(_VERSION\|(x)\)\|VERSION\) \([^\n]\|[\\][\n]\)*\([\n][\n]*#define IPW2100_FW_\(\(MAJOR\|MINOR\)\(_VERSION\|(x)\)\|VERSION\) \([^\n]\|[\\][\n]\)*\)*' drivers/net/wireless/ipw2100.c + blob '#define IPW2100_FW_\(\(\(MAJOR\|MINOR\)_VERSION\|\(MAJOR\|MINOR\)(x)\)\|VERSION\)\([^\n]*\\[\n]\)*[^\n]*\([\n][\n]*#define IPW2100_FW_\(\(\(MAJOR\|MINOR\)_VERSION\|\(MAJOR\|MINOR\)(x)\)\|VERSION\)\([^\n]*\\[\n]\)*[^\n]*\)*' drivers/net/wireless/ipw2100.c blobname 'ipw2100-\("\([^"\n]\|[\\][\n]\)*"\([^"]\|[\\]["]\)*\)\+' drivers/net/wireless/ipw2100.c blobname '__stringify(IPW2100_FW_MINOR_VERSION)' drivers/net/wireless/ipw2100.c + accept ' *Portions of ipw2100_\(do_\)\?mod_firmware_load[, ]*\(ipw2100_\(do_\)\?mod_firmware_load[, and\n]*\)*' drivers/net/wireless/ipw2100.c + accept ' ipw2100_mod_firmware_load(fw);' drivers/net/wireless/ipw2100.c + accept 'static int ipw2100_mod_firmware_load(' drivers/net/wireless/ipw2100.c + blobna 'if (IPW2100_FW_MAJOR[^{]*{[^}]* }' drivers/net/wireless/ipw2100.c - accept '[/][*] Call this function from process context\([^/]\|[^*][/]*\)*request_firmware' drivers/net/wireless/ipw2200.c + accept '[/][*] Call this function from process context\([^/]\|[^*/][/]*\)*request_firmware' drivers/net/wireless/ipw2200.c blobname 'ipw2200-\(i\?bss\|sniffer\)\.fw' drivers/net/wireless/ipw2200.c accept ' IPW_ERROR("%s request_firmware failed' drivers/net/wireless/ipw2200.c @@ -1120,7 +1160,9 @@ set_except () { blobname 'libertas_cs\(_helper\)\?\.fw' drivers/net/wireless/libertas/if_cs.c blobname 'sd\(8385\|8686\)\(_helper\)\?\.bin' drivers/net/wireless/libertas/if_sdio.c + accept ' *card->firmware = \(if_sdio\|lbs_fw\)' drivers/net/wireless/libertas/if_sdio.c blobname 'usb8388\(-5\.126\.0\.p5\)\?\.bin' drivers/net/wireless/libertas/if_usb.c + blob '[/][*]\([^/]\|[^*/][/]*\)*usb8388\(-5\.126\.0\.p5\)\?\.bin\([^/]\|[^*/][/]*\)*[*][/]' drivers/net/wireless/libertas/if_usb.c accept ' lbs_pr_err("request_firmware() failed' drivers/net/wireless/if_usb.c blobna 'o\. Copy the firmware image[^\n]*usb8388\([^\n]\|[\n][ ]*[^ \n]\)*' drivers/net/wireless/libertas/README blobna '\[fw_name=usb8388[^]]*\]' drivers/net/wireless/libertas/README @@ -1130,6 +1172,7 @@ set_except () { blobname 'lbtf_usb\.bin' drivers/net/wireless/libertas_tf/if_usb.c blobname 'isl38\(86\|87usb_bare\|90usb\)' 'drivers/net/wireless/p54/p54\(pci\.c\|usb\.[ch]\)' + blob '[/][*] for isl3886 register definitions\([^/]\|[^*/][/]*\)*[*][/]' drivers/net/wireless/p54/p54usb.h blobna 'If you enable this\([^\n]\|[\n][ ]*[^ \n]\)*isl3890\([^\n]\|[\n][ ]*[^ \n]\)*' drivers/net/wireless/Kconfig blobname 'isl38\(77\|86\|90\)' drivers/net/wireless/prism54/islpci_dev.c @@ -1171,7 +1214,7 @@ set_except () { blobname 'fsl_qe_ucode_uart_\(%u\|0-9]*\)_\(%u\|[0-9]*\)\(%u\|[0-9]*\)\.bin' drivers/serial/ucc_uart.c - blobname 'atmel_at76c50\(3-\(i386[13]\|rfmd\(-acc\)\?\|5\(a\(mx\)\?\)\?-rfmd\(2958\)\?\)\)\.bin' drivers/staging/at76_usb/at76_usb.c + blobname 'atmel_at76c50\(3-\(i386[13]\|rfmd\(-acc\)\?\)\|5\(a\(mx\)\?\)\?-rfmd\(2958\)\?\)\.bin' 'drivers/\(staging\|net/wireless\)/at76_usb/at76_usb\.c' blobname 'go7007\(fw\|tv\)\.bin' 'drivers/staging/go7007/\(go7007-\(driver\|usb\)\|saa7134-go7007\)\.c' @@ -1215,12 +1258,13 @@ set_except () { blobna 'You need to install[\n]*riptide\.hex[\n]\.[\n]' Documentation/sound/alsa/ALSA-Configuration.txt blobname 'riptide\.hex' sound/pci/riptide/riptide.c + defsnc 'static union firmware_version firmware_versions\[\] =' sound/pci/riptide/riptide.c blobname '\(multi\|digi\)face_firmware\(_rev11\)\?\.bin' sound/pci/rme9652/hdsp.c blobname 'aica_firmware\.bin' sound/sh/aica.c - accept ' [*]\([^/]\|[^*]*[/]*\)*Caution: This API\([^/]\|[^*]*[/]*\)*request_firmware.' sound/sound_firmware.c + accept ' [*]\([^/]\|[^*/][/]*\)*Caution: This API\([^/]\|[^*/][/]*\)*request_firmware.' sound/sound_firmware.c accept 'static int do_mod_firmware_load(' sound/sound_firmware.c accept 'int mod_firmware_load(' sound/sound_firmware.c accept ' r = do_mod_firmware_load(' sound/sound_firmware.c @@ -1233,18 +1277,23 @@ set_except () { blobname '\([/]etc[/]sound[/]\)\?msnd\(init\|perm\)\.bin' sound/oss/msnd_classic.h blobna '\(Important Notes - Read Before Using\|Obtaining and Creating Firmware Files\)[\n]# ~*\([^\n]\|[\n]# *\([\n]# *\([\n]# *For the[^\n]*[\n]# *~*[\n]\)\?\)\?[^\n ]\)*\.' Documentation/sound/oss/MultiSound - accept ' len = mod_firmware_load(fn, [&]data);[\n] if [^{]* {[\n] printk(KERN_ERR "sscape:' sound/oss/sscape.c + accept ' len = mod_firmware_load(fn, [&]data);[\n] if [^{]* {[\n] [ ]*printk(KERN_ERR "sscape:' sound/oss/sscape.c blobname '[/]sndscape[/]scope\.co[dx]' sound/oss/sscape.c accept ' trix_boot_len = mod_firmware_load(' sound/oss/trix.c blobname '\([/]etc[/]sound[/]\)\?trxpro\.bin' sound/oss/trix.c - accept ' smw_ucodeLen = mod_firwmare_load(' sound/oss/sb_common.c - blobname '\([/]etc[/]sound[/]\)\?msnd\(init\|perm\)\.bin' sound/oss/sb_common.c + accept ' smw_ucodeLen = mod_firmware_load(' sound/oss/sb_common.c + blobname '\([/]etc[/]sound[/]\)\?midi0001\.bin' sound/oss/sb_common.c + blobname '\([/]etc[/]sound[/]\)\?msnd\(init\|perm\)\.bin' sound/oss/Kconfig blob 'When the module is loaded\([^\n]\|[\n][^\n]\)*[/]pss_synth\([^\n]\|[\n][^\n]\)*' Documentation/sound/oss/PSS blob 'pss_firmware[ \n ]*This parameter\([^\n]\|[\n][^\n]\)*[/]pss_synth\([^\n]\|[\n][^\n]\)*' Documentation/sound/oss/PSS-updates - accept ' pss_synthLen = mod_firmware_load(pss_firmware' sound/oss/pss.c + accept ' pss_synthLen = mod_firmware_load(pss_firmware, (void [*]) [&]pss_synth);' sound/oss/pss.c + accept ' *if \?(\(!\|fw_load [&][&] \)\?pss_synth' sound/oss/pss.c + accept ' *if (!pss_download_boot(devc, pss_synth, pss_synthLen,' sound/oss/pss.c + accept ' *vfree(pss_synth);' sound/oss/pss.c + blob 'to allow the user \([^/"]\|[^*"][/]*\)*fir[em]ware file\([^/"]\|[^*"][/]*\)*"[^"]*"' sound/oss/pss.c blobname '\([/]etc[/]sound[/]\)\?pss_synth' sound/oss/pss.c accept ' \$(obj)[/]bin2hex pss_synth' sound/oss/Makefile accept ' *echo '"'"'static \(unsigned char [*] *\|int \)pss_synth\(Len\)\? = \(NULL\|0\);' sound/oss/Makefile @@ -1268,6 +1317,7 @@ set_except () { blobname 'dvb-fe-nxt2002\.fw' drivers/media/dvb/frontends/nxt200x.c + blob '[/][*][\n] [*] This driver needs two external firmware files\([^/]\|[^*/][/]*\)*dvb-fe-or51132-\(vsb\|qam\)\.fw\([^/]\|[^*/][/]*\)*[*][/]' drivers/media/dvb/frontends/or51132.c blobname 'dvb-fe-or51132-\(vsb\|qam\)\.fw' drivers/media/dvb/frontends/or51132.c blobname 'dvb-fe-or51211\.fw' drivers/media/dvb/frontends/or51211.c @@ -1745,6 +1795,8 @@ set_except () { defsnc 'static u8 serit_sp1511lhb_inittab\[\] =' drivers/media/dvb/frontends/si21xx.c defsnc 'static u8 stv0288_inittab\[\] =' drivers/media/dvb/frontends/stv0288.c + blobname 'haup-ir-blaster\.bin' drivers/input/lirc/lirc_zilog.c + # Suspicious, deblob for now, until contributor responds. # defsnc ' static u16 \(sr\|twinax\)_edc\[\] =' drivers/net/cxgb3/ael1002.cn # Non-Free license in entire file. @@ -1974,6 +2026,10 @@ set_except () { ;; */linux-2.6*-lirc.patch) initnc 'const unsigned char map_table\[\] =' + blobname 'haup-ir-blaster\.bin' drivers/input/lirc/lirc_zilog.c + ;; + */linux-2.6*-at76.patch) + blobname 'atmel_at76c50\(3-\(i386[13]\|rfmd\(-acc\)\?\)\|5\(a\(mx\)\?\)\?-rfmd\(2958\)\?\)\.bin' drivers/net/wireless/at76_usb/at76_usb.c ;; */linux-2.6-modsign-mpilib.patch) initnc 'const unsigned char __clz_tab\[\] =' @@ -2080,7 +2136,7 @@ bol="\\(^\\|[\\n]\\)" eol="\\([\\n]\\|\$\\)" # Regular expression that matches a C-style comment. -comment="\\([/][*]\\([^*]*\\|[*]\\+[^/*]\\)*[*]\\+[/]\\|[/][/][^\\n]*[\\n]\\)" +comment="\\([/][*]\\([^/]\\|[^*/][/]*\\)*[*][/]\\|[/][/][^\\n]*[\\n]\\)" # Regular expression that matches comments typically used in assembly. asmcomment="\\($comment\\|[;#][^\\n]*[\\n]\\)" @@ -2151,15 +2207,20 @@ g; fi sedmain=" -/^[\n]\?;[/][*]\\(end .*\\)\\?[*][/];$/{ +/^$/N; +/^[\\n]\\?;[/][*]\\(end .*\\)\\?[*][/];$/{ $4; d; } /^;[/][*]begin /!{ : internal_error + $v:internal_error i\\ Internal error at p; + i\\ +/*(DEBLOB-\\ +ERROR)*/ q 2; } $v:reading file in @@ -2174,8 +2235,9 @@ n; H; g; $4 -s/^\(;[/][*]begin [^\n]*[\n]\)*//; -s/\\($bol;[/][*]\\(end [^\n]*\\)\\?[*][/];\\)*$//; +$v:read all +s/^\\(;[/][*]begin [^\\n]*[\\n]\\)*//; +s/\\($bol[\n]\?;[/][*]\\(end [^\\n]*\\)\\?[*][/];\\)*$//; $v:???!blobfast /$blobfast/!b clean; $check_false_positives @@ -2705,7 +2767,7 @@ check () { # falsepos matches to files that match it. addx () { if test -n "$1"; then - echo -n "\\|$1" >> $falsepos_name + $echo_n "\\|$1" >> $falsepos_name fi } @@ -2714,7 +2776,7 @@ check () { # the falseneg matches to files that match it. badx () { if test -n "$1"; then - echo -n "\\|$1" >> $falseneg_name + $echo_n "\\|$1" >> $falseneg_name fi } @@ -2782,10 +2844,10 @@ check () { esac # Then run through the selected action. - if test "$rm" != "rm -f" || test ! `echo "$sedmain" | wc -c` -lt 1024; then + if test "$rm" != "rm -f" || test ! `$echo "$sedmain" | wc -c` -lt 1024; then scriptname=`mktemp -t deblob-check-sedmain-XXXXXX` tempfiles="$tempfiles $scriptname" - echo "$sedmain" > $scriptname + $echo "$sedmain" > $scriptname cmd="sed -n -f \"$scriptname\"" else cmd='sed -n "$sedmain"' @@ -2796,10 +2858,13 @@ check () { : restart; /[/][*](DEBLOB-$/ { N; + /[/][*](DEBLOB-[\n]ERROR)[*][/]/{q 1;} s,[/][*](DEBLOB-[\n]BED)[*][/],, b restart; -}' - cmd='sed "$sedunbreak"' +} +p +' + cmd='sed -n "$sedunbreak"' set "$@" "$cmd" # test $# = 1 || set "$@" "cat"