linux-wireless.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: "Franky Lin" <frankyl@broadcom.com>
To: gregkh@suse.de
Cc: devel@linuxdriverproject.org, linux-wireless@vger.kernel.org
Subject: [PATCH 005/119] staging: brcm80211: make use of linux error codes in srom.c
Date: Wed, 29 Jun 2011 16:46:29 -0700	[thread overview]
Message-ID: <1309391303-22741-6-git-send-email-frankyl@broadcom.com> (raw)
In-Reply-To: <1309391303-22741-1-git-send-email-frankyl@broadcom.com>

From: Arend van Spriel <arend@broadcom.com>

The source file srom.c used meaningless non-zero numbers to return
upon error conditions. These have been replaced by linux error codes.

Signed-off-by: Arend van Spriel <arend@broadcom.com>
Reviewed-by: Roland Vossen <rvossen@broadcom.com>
---
 drivers/staging/brcm80211/brcmsmac/srom.c |   36 +++++++++++++----------------
 1 files changed, 16 insertions(+), 20 deletions(-)

diff --git a/drivers/staging/brcm80211/brcmsmac/srom.c b/drivers/staging/brcm80211/brcmsmac/srom.c
index 31aa84d..34c19ef 100644
--- a/drivers/staging/brcm80211/brcmsmac/srom.c
+++ b/drivers/staging/brcm80211/brcmsmac/srom.c
@@ -870,7 +870,7 @@ int srom_var_init(struct si_pub *sih, uint bustype, void *curmap,
 	if (curmap != NULL && bustype == PCI_BUS)
 		return initvars_srom_pci(sih, curmap, vars, count);
 
-	return -1;
+	return -EINVAL;
 }
 
 /* In chips with chipcommon rev 32 and later, the srom is in chipcommon,
@@ -935,7 +935,7 @@ sprom_read_pci(struct si_pub *sih, u16 *sprom, uint wordoff,
 		if (sih->ccrev > 31 && ISSIM_ENAB(sih)) {
 			/* use indirect since direct is too slow on QT */
 			if ((sih->cccaps & CC_CAP_SROM) == 0)
-				return 1;
+				return -ENODEV;
 
 			ccregs = (void *)((u8 *) sprom - CC_SROM_OTP);
 			buf[i] =
@@ -953,7 +953,7 @@ sprom_read_pci(struct si_pub *sih, u16 *sprom, uint wordoff,
 
 	/* bypass crc checking for simulation to allow srom hack */
 	if (ISSIM_ENAB(sih))
-		return err;
+		return 0;
 
 	if (check_crc) {
 
@@ -962,7 +962,7 @@ sprom_read_pci(struct si_pub *sih, u16 *sprom, uint wordoff,
 			 * is blank, regardless of the rest of the content, so declare
 			 * it bad.
 			 */
-			return 1;
+			return -ENODATA;
 		}
 
 		/* fixup the endianness so crc8 will pass */
@@ -970,7 +970,7 @@ sprom_read_pci(struct si_pub *sih, u16 *sprom, uint wordoff,
 		if (brcmu_crc8((u8 *) buf, nwords * 2, CRC8_INIT_VALUE) !=
 		    CRC8_GOOD_VALUE) {
 			/* DBG only pci always read srom4 first, then srom8/9 */
-			err = 1;
+			err = -EIO;
 		}
 		/* now correct the endianness of the byte array */
 		ltoh16_buf(buf, nwords * 2);
@@ -987,7 +987,7 @@ static int otp_read_pci(struct si_pub *sih, u16 *buf, uint bufsz)
 
 	otp = kzalloc(OTP_SZ_MAX, GFP_ATOMIC);
 	if (otp == NULL) {
-		return -EBADE;
+		return -ENOMEM;
 	}
 
 	err = otp_read_region(sih, OTP_HW_RGN, (u16 *) otp, &sz);
@@ -1002,14 +1002,14 @@ static int otp_read_pci(struct si_pub *sih, u16 *buf, uint bufsz)
 		 * is blank, regardless of the rest of the content, so declare
 		 * it bad.
 		 */
-		return 1;
+		return -ENODATA;
 	}
 
 	/* fixup the endianness so crc8 will pass */
 	htol16_buf(buf, bufsz);
 	if (brcmu_crc8((u8 *) buf, SROM4_WORDS * 2, CRC8_INIT_VALUE) !=
 	    CRC8_GOOD_VALUE) {
-		err = 1;
+		err = -EIO;
 	}
 	/* now correct the endianness of the byte array */
 	ltoh16_buf(buf, bufsz);
@@ -1219,13 +1219,12 @@ static int initvars_srom_pci(struct si_pub *sih, void *curmap, char **vars,
 	 */
 	srom = kmalloc(SROM_MAX, GFP_ATOMIC);
 	if (!srom)
-		return -2;
+		return -ENOMEM;
 
 	sromwindow = (u16 *) SROM_OFFSET(sih);
 	if (ai_is_sprom_available(sih)) {
-		err =
-		    sprom_read_pci(sih, sromwindow, 0, srom, SROM_WORDS,
-				   true);
+		err = sprom_read_pci(sih, sromwindow, 0, srom, SROM_WORDS,
+				     true);
 
 		if ((srom[SROM4_SIGN] == SROM4_SIGNATURE) ||
 		    (((sih->buscoretype == PCIE_CORE_ID)
@@ -1233,9 +1232,8 @@ static int initvars_srom_pci(struct si_pub *sih, void *curmap, char **vars,
 		     || ((sih->buscoretype == PCI_CORE_ID)
 			 && (sih->buscorerev >= 0xe)))) {
 			/* sromrev >= 4, read more */
-			err =
-			    sprom_read_pci(sih, sromwindow, 0, srom,
-					   SROM4_WORDS, true);
+			err = sprom_read_pci(sih, sromwindow, 0, srom,
+					     SROM4_WORDS, true);
 			sromrev = srom[SROM4_CRCREV] & 0xff;
 		} else if (err == 0) {
 			/* srom is good and is rev < 4 */
@@ -1253,12 +1251,10 @@ static int initvars_srom_pci(struct si_pub *sih, void *curmap, char **vars,
 		if (err == 0)
 			/* OTP only contain SROM rev8/rev9 for now */
 			sromrev = srom[SROM4_CRCREV] & 0xff;
-		else
-			err = 1;
 	}
 #else
 	else
-		err = 1;
+		err = -ENODEV;
 #endif
 
 	if (!err) {
@@ -1267,13 +1263,13 @@ static int initvars_srom_pci(struct si_pub *sih, void *curmap, char **vars,
 
 		/* srom version check: Current valid versions: 1, 2, 3, 4, 5, 8, 9 */
 		if ((sr & 0x33e) == 0) {
-			err = -2;
+			err = -EINVAL;
 			goto errout;
 		}
 
 		base = kmalloc(MAXSZ_NVRAM_VARS, GFP_ATOMIC);
 		if (!base) {
-			err = -2;
+			err = -ENOMEM;
 			goto errout;
 		}
 
-- 
1.7.1



  parent reply	other threads:[~2011-06-29 23:48 UTC|newest]

Thread overview: 142+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-06-29 23:46 [PATCH 000/119] staging: brcm80211: more code cleanup and bug fixed Franky Lin
2011-06-29 23:46 ` [PATCH 001/119] staging: brcm80211: fix checkpatch errors in types.h Franky Lin
2011-06-29 23:46 ` [PATCH 002/119] staging:brcm80211:brcmfmac: CONNECTING status bit is set at appropriate location Franky Lin
2011-06-29 23:46 ` [PATCH 003/119] staging: brcm80211: remove flash related code from initvars_srom_pci() Franky Lin
2011-06-29 23:46 ` [PATCH 004/119] staging: brcm80211: minor cleanup in initvars_srom_pci() Franky Lin
2011-06-29 23:46 ` Franky Lin [this message]
2011-06-29 23:46 ` [PATCH 006/119] staging: brcm80211: remove unused sdtxlock from fullmac Franky Lin
2011-06-29 23:46 ` [PATCH 007/119] staging: brcm80211: remove empty sdrxqlock " Franky Lin
2011-06-29 23:46 ` [PATCH 008/119] staging: brcm80211: move sdtxqlock codes to dhd_sdio.c Franky Lin
2011-06-29 23:46 ` [PATCH 009/119] staging: brcm80211: remove unused files from fullmac Franky Lin
2011-06-29 23:46 ` [PATCH 010/119] staging: brcm80211: remove code for unsupported chipsets from brcmsmac Franky Lin
2011-06-29 23:46 ` [PATCH 011/119] staging: brcm80211: remove unsupported chipset code from brcmsmac phy Franky Lin
2011-06-29 23:46 ` [PATCH 012/119] staging: brcm80211: remove otp power control functions Franky Lin
2011-06-29 23:46 ` [PATCH 013/119] staging: brcm80211: remove code from pmu.c related to unsupported chipsets Franky Lin
2011-06-29 23:46 ` [PATCH 014/119] staging: brcm80211: remove unused macro definitions from pmu.c Franky Lin
2011-06-29 23:46 ` [PATCH 015/119] staging: brcm80211: remove chip simulation specific code Franky Lin
2011-06-29 23:46 ` [PATCH 016/119] staging: brcm80211: remove macro FOREACH_AS_STA Franky Lin
2011-06-29 23:46 ` [PATCH 017/119] staging: brcm80211: change FOREACH_BSS macro to remove checkpatch error Franky Lin
2011-06-30  8:37   ` Dan Carpenter
2011-06-30 10:19     ` Arend van Spriel
2011-07-05 14:11       ` Arend van Spriel
2011-07-05 16:59         ` Greg KH
2011-06-29 23:46 ` [PATCH 018/119] staging: brcm80211: remove macro definition DRV_MODULE_NAME Franky Lin
2011-06-29 23:46 ` [PATCH 019/119] staging: brcm80211: get rid on IS_CFG80211_FAVORITE macro Franky Lin
2011-06-29 23:46 ` [PATCH 020/119] staging: brcm80211: move assert function to dhd_linux.c Franky Lin
2011-06-29 23:46 ` [PATCH 021/119] staging: brcm80211: parsed ADDBA response ack window parameter Franky Lin
2011-06-29 23:46 ` [PATCH 022/119] staging: brcm80211: taking max AMPDU length advertized by peer into account Franky Lin
2011-06-29 23:46 ` [PATCH 023/119] staging: brcm80211: corrected tx status feedback for non AMPDU packets Franky Lin
2011-06-29 23:46 ` [PATCH 024/119] staging: brcm80211: Changed comments Franky Lin
2011-06-29 23:46 ` [PATCH 025/119] staging: brcm80211: removed unneeded 'if' statement Franky Lin
2011-06-29 23:46 ` [PATCH 026/119] staging: brcm80211: delete empty brcmfmac/README file Franky Lin
2011-06-29 23:46 ` [PATCH 027/119] staging: brcm80211: run scripts/cleanfile to remove whitespace errors Franky Lin
2011-06-29 23:46 ` [PATCH 028/119] staging: brcm80211: cleanup " Franky Lin
2011-06-29 23:46 ` [PATCH 029/119] staging: brcm80211: add missing KERN_ facility level to printk() Franky Lin
2011-06-29 23:46 ` [PATCH 030/119] staging: brcm80211: flatten wlc_phy_shared_detach() Franky Lin
2011-06-29 23:46 ` [PATCH 031/119] staging: brcm80211: remove unnecessary null check Franky Lin
2011-06-29 23:46 ` [PATCH 032/119] staging: brcm80211: reorg brcms_c_validboardtype for clarity Franky Lin
2011-06-29 23:46 ` [PATCH 033/119] staging: brcm80211: correct bcmsdh_recv_buf() calls Franky Lin
2011-06-29 23:46 ` [PATCH 034/119] staging: brcm80211: remove wireless extensions support from brcmfmac Franky Lin
2011-06-29 23:46 ` [PATCH 035/119] staging: brcm80211: replaced prefix of SDIO related functions Franky Lin
2011-06-29 23:47 ` [PATCH 036/119] staging: brcm80211: remove dhd_set_timer function prototype Franky Lin
2011-06-29 23:47 ` [PATCH 037/119] staging: brcm80211: remove unused globals from dhd_common.c Franky Lin
2011-06-29 23:47 ` [PATCH 038/119] staging: brcm80211: remove extern function prototypes from c files Franky Lin
2011-06-29 23:47 ` [PATCH 039/119] staging: brcm80211: rename functions and variables in dhd_common.c Franky Lin
2011-06-29 23:47 ` [PATCH 040/119] staging: brcm80211: rename ioctl command codes in dhd.h Franky Lin
2011-06-29 23:47 ` [PATCH 041/119] staging: brcm80211: remove unused definitions from dhd.h Franky Lin
2011-06-29 23:47 ` [PATCH 042/119] staging: brcm80211: replace macro BCM_MSG_IFNAME_MAX with IFNAMSIZ Franky Lin
2011-06-29 23:47 ` [PATCH 043/119] staging: brcm80211: rename event handling definition Franky Lin
2011-06-29 23:47 ` [PATCH 044/119] staging: brcm80211: rename module parameters Franky Lin
2011-06-29 23:47 ` [PATCH 045/119] staging: brcm80211: remove unnecessary abstraction for scheduler Franky Lin
2011-06-29 23:47 ` [PATCH 046/119] staging: brcm80211: rename fullmac functions Franky Lin
2011-06-29 23:47 ` [PATCH 047/119] staging: brcm80211: remove unused prototypes from dhd.h Franky Lin
2011-06-29 23:47 ` [PATCH 048/119] staging: brcm80211: removed BDC defines Franky Lin
2011-06-29 23:47 ` [PATCH 049/119] staging: brcm80211: rename fullmac protocol related functions Franky Lin
2011-06-29 23:47 ` [PATCH 050/119] staging: brcm80211: get rid of PKT[TO/FROM]NATIVE macros Franky Lin
2011-06-29 23:47 ` [PATCH 051/119] staging: brcm80211: rename dhd_prot and get rid of dhd_prot_t typedef Franky Lin
2011-06-29 23:47 ` [PATCH 052/119] staging: brcm80211: remove conditional SIMPLE_ISCAN code Franky Lin
2011-06-29 23:47 ` [PATCH 053/119] staging: brcm80211: rename netdevice related functions in fullmac Franky Lin
2011-06-29 23:47 ` [PATCH 054/119] staging: brcm80211: rename static functions in dhd_linux.c Franky Lin
2011-06-29 23:47 ` [PATCH 055/119] staging: brcm80211: rename more brcmfmac module parameters Franky Lin
2011-06-29 23:47 ` [PATCH 056/119] staging: brcm80211: replaced typedef sdioh_info_t by struct sdioh_info Franky Lin
2011-06-29 23:47 ` [PATCH 057/119] staging: brcm80211: replaced typedef bcmsdh_info_t by struct brcmf_sdio Franky Lin
2011-06-29 23:47 ` [PATCH 058/119] staging: brcm80211: replaced typedef by struct for several sdio types Franky Lin
2011-06-29 23:47 ` [PATCH 059/119] staging: brcm80211: replaced typedef SDIOH_API_RC by int Franky Lin
2011-06-29 23:47 ` [PATCH 060/119] staging: brcm80211: replaced more sdio related typedefs by structs Franky Lin
2011-06-29 23:47 ` [PATCH 061/119] staging: brcm80211: further renaming in fullmac sources Franky Lin
2011-07-05  7:36   ` Dan Carpenter
2011-07-05 14:15     ` Roland Vossen
2011-07-05 17:38       ` Dan Carpenter
2011-06-29 23:47 ` [PATCH 062/119] staging: brcm80211: remove ARP_OFFLOAD_SUPPORT macro definition Franky Lin
2011-06-29 23:47 ` [PATCH 063/119] staging: brcm80211: remove PKT_FILTER_SUPPORT " Franky Lin
2011-06-29 23:47 ` [PATCH 064/119] staging: brcm80211: remove BCMLXSDMMC " Franky Lin
2011-06-29 23:47 ` [PATCH 065/119] staging: brcm80211: always enable code for PLATFORM_BUS functionality Franky Lin
2011-06-29 23:47 ` [PATCH 066/119] staging: brcm80211: remove DHD_SCHED macro definition Franky Lin
2011-06-29 23:47 ` [PATCH 067/119] staging: brcm80211: remove EMBEDDED_PLATFORM " Franky Lin
2011-06-29 23:47 ` [PATCH 068/119] staging: brcm80211: remove MMC_SDIO_ABORT " Franky Lin
2011-06-29 23:47 ` [PATCH 069/119] staging: brcm80211: remove TOE " Franky Lin
2011-06-29 23:47 ` [PATCH 070/119] staging: brcm80211: define SHOW_EVENTS macro only for debugging Franky Lin
2011-06-29 23:47 ` [PATCH 071/119] staging: brcm80211: replace DHD_DEBUG macro with BCMDBG Franky Lin
2011-06-29 23:47 ` [PATCH 072/119] staging: brcm80211: remove unnecessary macro defintions Franky Lin
2011-06-29 23:47 ` [PATCH 073/119] staging: brcm80211: remove custom gpio support code Franky Lin
2011-06-29 23:47 ` [PATCH 074/119] staging: brcm80211: remove conditional code fragments from brcmfmac Franky Lin
2011-06-29 23:47 ` [PATCH 075/119] staging: brcm80211: rename EPI_VERSION_STR macro Franky Lin
2011-06-29 23:47 ` [PATCH 076/119] staging: brcm80211: use linux native ethertype iso ETH_P_BRCM Franky Lin
2011-06-29 23:47 ` [PATCH 077/119] staging: brcm80211: move sdio related suspend/resume code to bus interface layer Franky Lin
2011-06-29 23:47 ` [PATCH 078/119] staging: brcm80211: move waitqueue code to dhd_sdio.c Franky Lin
2011-06-29 23:47 ` [PATCH 079/119] staging: brcm80211: move fullmac watchdog timer " Franky Lin
2011-06-29 23:47 ` [PATCH 080/119] staging: brcm80211: move debug console related " Franky Lin
2011-06-29 23:47 ` [PATCH 081/119] staging: brcm80211: move dpc " Franky Lin
2011-06-29 23:47 ` [PATCH 082/119] staging: brcm80211: move sdio resource lock " Franky Lin
2011-06-29 23:47 ` [PATCH 083/119] staging: brcm80211: clean up firmware download code in fullmac Franky Lin
2011-06-29 23:47 ` [PATCH 084/119] staging: brcm80211: rename function variables Franky Lin
2011-06-29 23:47 ` [PATCH 085/119] staging: brcm80211: remove unused definitions from dhd.h Franky Lin
2011-06-29 23:47 ` [PATCH 086/119] staging: brcm80211: rename structure definitions in dhd.h Franky Lin
2011-06-29 23:47 ` [PATCH 087/119] staging: brcm80211: rename macro " Franky Lin
2011-06-29 23:47 ` [PATCH 088/119] staging: brcm80211: remove unused macro definitions from dhd.h Franky Lin
2011-06-29 23:47 ` [PATCH 089/119] staging: brcm80211: structure renaming in dhd.h Franky Lin
2011-06-29 23:47 ` [PATCH 090/119] staging: brcm80211: rename structure definitions in dhd_linux.c Franky Lin
2011-06-29 23:47 ` [PATCH 091/119] staging: brcm80211: rename struct dhd_pub to struct brcmf_pub Franky Lin
2011-06-29 23:47 ` [PATCH 092/119] staging: brmc80211: cleaned up sdio related error codes Franky Lin
2011-06-29 23:47 ` [PATCH 093/119] staging: brcm80211: removed global function declarations from .c files Franky Lin
2011-06-29 23:47 ` [PATCH 094/119] staging: brcm80211: removed last occurrences of bcmsdh/BCMSDH Franky Lin
2011-07-05  9:59   ` Dan Carpenter
2011-07-05 12:31     ` Arend van Spriel
2011-06-29 23:47 ` [PATCH 095/119] staging: brcm80211: sdh related code cleanup Franky Lin
2011-06-29 23:48 ` [PATCH 096/119] staging: brcm80211: removed brcmf_sdioh_interrupt_pending() Franky Lin
2011-06-29 23:48 ` [PATCH 097/119] staging: brcm80211: removed brcmf_sdioh_reset() Franky Lin
2011-06-29 23:48 ` [PATCH 098/119] staging: brcm80211: removed brcmf_sdioh_start() and brcmf_sdioh_stop() Franky Lin
2011-06-29 23:48 ` [PATCH 099/119] staging: brcm80211: removed file sdiovar.h Franky Lin
2011-06-29 23:48 ` [PATCH 100/119] staging: brcm80211: further cleaned fullmac header files Franky Lin
2011-06-29 23:48 ` [PATCH 101/119] staging: brcm80211: removed last global function declaration in .c file Franky Lin
2011-06-29 23:48 ` [PATCH 102/119] staging: brcm80211: rename function variables Franky Lin
2011-06-29 23:48 ` [PATCH 103/119] staging: brcm80211: remove unused macros from dhd_dbg.h Franky Lin
2011-06-29 23:48 ` [PATCH 104/119] staging: brcm80211: rename dhd_bus structure and functions Franky Lin
2011-06-29 23:48 ` [PATCH 105/119] staging: brcm80211: rename static functions in wl_cfg80211.c Franky Lin
2011-06-29 23:48 ` [PATCH 106/119] staging: brcm80211: removed last typedefs from fullmac Franky Lin
2011-06-29 23:48 ` [PATCH 107/119] staging: brcm80211: removed unused code and definitions " Franky Lin
2011-06-29 23:48 ` [PATCH 108/119] staging: brcm80211: fullmac register access macro's take u32 instead of pointers Franky Lin
2011-06-29 23:48 ` [PATCH 109/119] staging: brcm80211: replaced macro R_SDREG by function r_sdreg() Franky Lin
2011-06-29 23:48 ` [PATCH 110/119] staging: brcm80211: replaced macro W_SDREG by function w_sdreg() Franky Lin
2011-06-29 23:48 ` [PATCH 111/119] staging: brcm80211: got rid of redundant member 'regs' of struct dhd_bus Franky Lin
2011-06-29 23:48 ` [PATCH 112/119] staging: brcm80211: removed last amd64 compiler warnings Franky Lin
2011-06-29 23:48 ` [PATCH 113/119] staging: brcm80211: W_REG macro cleanup in fullmac SDIO Franky Lin
2011-06-29 23:48 ` [PATCH 114/119] staging: brcm80211: removed unused definitions from dhd_sdio.c Franky Lin
2011-06-29 23:48 ` [PATCH 115/119] staging: brcm80211: rename structures and variables in wl_cfg80211.c Franky Lin
2011-06-29 23:48 ` [PATCH 116/119] staging: brcm80211: rename pointer conversion macros in wl_cfg80211.h Franky Lin
2011-06-29 23:48 ` [PATCH 117/119] staging: brcm80211: rename external function in wl_cfg80211.c Franky Lin
2011-06-29 23:48 ` [PATCH 118/119] staging: brcm80211: fix for reported log spam problem Franky Lin
2011-06-29 23:48 ` [PATCH 119/119] staging: brcm80211: updated TODO file Franky Lin
2011-06-30  6:29 ` [PATCH 000/119] staging: brcm80211: more code cleanup and bug fixed Rafał Miłecki
2011-06-30  6:59   ` Arend van Spriel
2011-06-30 17:42   ` Henry Ptasinski
2011-06-30 18:32     ` Dan Carpenter
2011-06-30 21:40       ` Henry Ptasinski
2011-07-01  0:05         ` Dan Carpenter
2011-07-01  0:14           ` Greg KH
2011-06-30 20:16     ` Luciano Coelho
2011-06-30 21:22       ` Henry Ptasinski
2011-07-05 16:59 ` Greg KH
2011-07-05 19:15   ` Arend van Spriel
2011-07-05 19:46     ` Arend van Spriel
2011-07-06  1:58       ` Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1309391303-22741-6-git-send-email-frankyl@broadcom.com \
    --to=frankyl@broadcom.com \
    --cc=devel@linuxdriverproject.org \
    --cc=gregkh@suse.de \
    --cc=linux-wireless@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).