All of lore.kernel.org
 help / color / mirror / Atom feed
From: Himanshu Madhani <himanshu.madhani@oracle.com>
To: Bart Van Assche <bvanassche@acm.org>
Cc: Martin Petersen <martin.petersen@oracle.com>,
	"linux-scsi@vger.kernel.org" <linux-scsi@vger.kernel.org>,
	Johannes Thumshirn <johannes.thumshirn@wdc.com>,
	"James E.J. Bottomley" <jejb@linux.ibm.com>
Subject: Re: [PATCH v2 02/44] nsp_cs: Use true and false instead of TRUE and FALSE
Date: Tue, 8 Feb 2022 19:22:14 +0000	[thread overview]
Message-ID: <B464FC7D-E068-4A6C-9131-4B899D15A68D@oracle.com> (raw)
In-Reply-To: <20220208172514.3481-3-bvanassche@acm.org>



> On Feb 8, 2022, at 9:24 AM, Bart Van Assche <bvanassche@acm.org> wrote:
> 
> Additionally, change the return type of the functions that always return
> TRUE from 'int' into 'void'. This patch prepares for removal of the
> drivers/scsi/scsi.h header file. That header file defines the 'TRUE' and
> 'FALSE' constants.
> 
> Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
> Signed-off-by: Bart Van Assche <bvanassche@acm.org>
> ---
> drivers/scsi/pcmcia/nsp_cs.c | 43 +++++++++++++++---------------------
> drivers/scsi/pcmcia/nsp_cs.h |  6 ++---
> 2 files changed, 21 insertions(+), 28 deletions(-)
> 
> diff --git a/drivers/scsi/pcmcia/nsp_cs.c b/drivers/scsi/pcmcia/nsp_cs.c
> index 92c818a8a84a..a78a86511e94 100644
> --- a/drivers/scsi/pcmcia/nsp_cs.c
> +++ b/drivers/scsi/pcmcia/nsp_cs.c
> @@ -243,7 +243,7 @@ static int nsp_queuecommand_lck(struct scsi_cmnd *SCpnt)
> 		SCpnt->SCp.buffers_residual = 0;
> 	}
> 
> -	if (nsphw_start_selection(SCpnt) == FALSE) {
> +	if (!nsphw_start_selection(SCpnt)) {
> 		nsp_dbg(NSP_DEBUG_QUEUECOMMAND, "selection fail");
> 		SCpnt->result   = DID_BUS_BUSY << 16;
> 		nsp_scsi_done(SCpnt);
> @@ -263,14 +263,14 @@ static DEF_SCSI_QCMD(nsp_queuecommand)
> /*
>  * setup PIO FIFO transfer mode and enable/disable to data out
>  */
> -static void nsp_setup_fifo(nsp_hw_data *data, int enabled)
> +static void nsp_setup_fifo(nsp_hw_data *data, bool enabled)
> {
> 	unsigned int  base = data->BaseAddress;
> 	unsigned char transfer_mode_reg;
> 
> 	//nsp_dbg(NSP_DEBUG_DATA_IO, "enabled=%d", enabled);
> 
> -	if (enabled != FALSE) {
> +	if (enabled) {
> 		transfer_mode_reg = TRANSFER_GO | BRAIND;
> 	} else {
> 		transfer_mode_reg = 0;
> @@ -298,7 +298,7 @@ static void nsphw_init_sync(nsp_hw_data *data)
> /*
>  * Initialize Ninja hardware
>  */
> -static int nsphw_init(nsp_hw_data *data)
> +static void nsphw_init(nsp_hw_data *data)
> {
> 	unsigned int base     = data->BaseAddress;
> 
> @@ -348,15 +348,13 @@ static int nsphw_init(nsp_hw_data *data)
> 					    SCSI_RESET_IRQ_EI	 );
> 	nsp_write(base,	      IRQCONTROL,   IRQCONTROL_ALLCLEAR);
> 
> -	nsp_setup_fifo(data, FALSE);
> -
> -	return TRUE;
> +	nsp_setup_fifo(data, false);
> }
> 
> /*
>  * Start selection phase
>  */
> -static int nsphw_start_selection(struct scsi_cmnd *SCpnt)
> +static bool nsphw_start_selection(struct scsi_cmnd *SCpnt)
> {
> 	unsigned int  host_id	 = SCpnt->device->host->this_id;
> 	unsigned int  base	 = SCpnt->device->host->io_port;
> @@ -370,7 +368,7 @@ static int nsphw_start_selection(struct scsi_cmnd *SCpnt)
> 	phase = nsp_index_read(base, SCSIBUSMON);
> 	if(phase != BUSMON_BUS_FREE) {
> 		//nsp_dbg(NSP_DEBUG_RESELECTION, "bus busy");
> -		return FALSE;
> +		return false;
> 	}
> 
> 	/* start arbitration */
> @@ -390,7 +388,7 @@ static int nsphw_start_selection(struct scsi_cmnd *SCpnt)
> 	if (!(arbit & ARBIT_WIN)) {
> 		//nsp_dbg(NSP_DEBUG_RESELECTION, "arbit fail");
> 		nsp_index_write(base, SETARBIT, ARBIT_FLAG_CLEAR);
> -		return FALSE;
> +		return false;
> 	}
> 
> 	/* assert select line */
> @@ -409,7 +407,7 @@ static int nsphw_start_selection(struct scsi_cmnd *SCpnt)
> 	nsp_start_timer(SCpnt, 1000/51);
> 	data->SelectionTimeOut = 1;
> 
> -	return TRUE;
> +	return true;
> }
> 
> struct nsp_sync_table {
> @@ -479,7 +477,7 @@ static int nsp_analyze_sdtr(struct scsi_cmnd *SCpnt)
> 		sync->SyncRegister    = 0;
> 		sync->AckWidth	      = 0;
> 
> -		return FALSE;
> +		return false;
> 	}
> 
> 	sync->SyncRegister    = (sync_table->chip_period << SYNCREG_PERIOD_SHIFT) |
> @@ -488,7 +486,7 @@ static int nsp_analyze_sdtr(struct scsi_cmnd *SCpnt)
> 
> 	nsp_dbg(NSP_DEBUG_SYNC, "sync_reg=0x%x, ack_width=0x%x", sync->SyncRegister, sync->AckWidth);
> 
> -	return TRUE;
> +	return true;
> }
> 
> 
> @@ -635,7 +633,7 @@ static int nsp_dataphase_bypass(struct scsi_cmnd *SCpnt)
> 	nsp_dbg(NSP_DEBUG_DATA_IO, "use bypass quirk");
> 	SCpnt->SCp.phase = PH_DATA;
> 	nsp_pio_read(SCpnt);
> -	nsp_setup_fifo(data, FALSE);
> +	nsp_setup_fifo(data, false);
> 
> 	return 0;
> }
> @@ -643,7 +641,7 @@ static int nsp_dataphase_bypass(struct scsi_cmnd *SCpnt)
> /*
>  * accept reselection
>  */
> -static int nsp_reselected(struct scsi_cmnd *SCpnt)
> +static void nsp_reselected(struct scsi_cmnd *SCpnt)
> {
> 	unsigned int  base    = SCpnt->device->host->io_port;
> 	unsigned int  host_id = SCpnt->device->host->this_id;
> @@ -675,8 +673,6 @@ static int nsp_reselected(struct scsi_cmnd *SCpnt)
> 	bus_reg = nsp_index_read(base, SCSIBUSCTRL) & ~(SCSI_BSY | SCSI_ATN);
> 	nsp_index_write(base, SCSIBUSCTRL, bus_reg);
> 	nsp_index_write(base, SCSIBUSCTRL, bus_reg | AUTODIRECTION | ACKENB);
> -
> -	return TRUE;
> }
> 
> /*
> @@ -931,7 +927,7 @@ static int nsp_nexus(struct scsi_cmnd *SCpnt)
> 	}
> 
> 	/* setup pdma fifo */
> -	nsp_setup_fifo(data, TRUE);
> +	nsp_setup_fifo(data, true);
> 
> 	/* clear ack counter */
>  	data->FifoCount = 0;
> @@ -1057,9 +1053,8 @@ static irqreturn_t nspintr(int irq, void *dev_id)
> 		if (irq_phase & RESELECT_IRQ) {
> 			nsp_dbg(NSP_DEBUG_INTR, "reselect");
> 			nsp_write(base, IRQCONTROL, IRQCONTROL_RESELECT_CLEAR);
> -			if (nsp_reselected(tmpSC) != FALSE) {
> -				return IRQ_HANDLED;
> -			}
> +			nsp_reselected(tmpSC);
> +			return IRQ_HANDLED;
> 		}
> 
> 		if ((irq_phase & (PHASE_CHANGE_IRQ | LATCHED_BUS_FREE)) == 0) {
> @@ -1215,7 +1210,7 @@ static irqreturn_t nspintr(int irq, void *dev_id)
> 		//*sync_neg = SYNC_NOT_YET;
> 
> 		data->MsgLen = i = 0;
> -		data->MsgBuffer[i] = IDENTIFY(TRUE, lun); i++;
> +		data->MsgBuffer[i] = IDENTIFY(true, lun); i++;
> 
> 		if (*sync_neg == SYNC_NOT_YET) {
> 			data->Sync[target].SyncPeriod = 0;
> @@ -1614,9 +1609,7 @@ static int nsp_cs_config(struct pcmcia_device *link)
> 	nsp_dbg(NSP_DEBUG_INIT, "I/O[0x%x+0x%x] IRQ %d",
> 		data->BaseAddress, data->NumAddress, data->IrqNumber);
> 
> -	if(nsphw_init(data) == FALSE) {
> -		goto cs_failed;
> -	}
> +	nsphw_init(data);
> 
> 	host = nsp_detect(&nsp_driver_template);
> 
> diff --git a/drivers/scsi/pcmcia/nsp_cs.h b/drivers/scsi/pcmcia/nsp_cs.h
> index 665bf8d0faf7..7d5d1a5b36e0 100644
> --- a/drivers/scsi/pcmcia/nsp_cs.h
> +++ b/drivers/scsi/pcmcia/nsp_cs.h
> @@ -304,8 +304,8 @@ static int nsp_eh_host_reset   (struct scsi_cmnd *SCpnt);
> static int nsp_bus_reset       (nsp_hw_data *data);
> 
> /* */
> -static int  nsphw_init           (nsp_hw_data *data);
> -static int  nsphw_start_selection(struct scsi_cmnd *SCpnt);
> +static void nsphw_init           (nsp_hw_data *data);
> +static bool nsphw_start_selection(struct scsi_cmnd *SCpnt);
> static void nsp_start_timer      (struct scsi_cmnd *SCpnt, int time);
> static int  nsp_fifo_count       (struct scsi_cmnd *SCpnt);
> static void nsp_pio_read         (struct scsi_cmnd *SCpnt);
> @@ -320,7 +320,7 @@ static int  nsp_expect_signal    (struct scsi_cmnd *SCpnt,
> 				  unsigned char  mask);
> static int  nsp_xfer             (struct scsi_cmnd *SCpnt, int phase);
> static int  nsp_dataphase_bypass (struct scsi_cmnd *SCpnt);
> -static int  nsp_reselected       (struct scsi_cmnd *SCpnt);
> +static void nsp_reselected       (struct scsi_cmnd *SCpnt);
> static struct Scsi_Host *nsp_detect(struct scsi_host_template *sht);
> 
> /* Interrupt handler */

Reviewed-by: Himanshu Madhani <himanshu.madhani@oracle.com>

--
Himanshu Madhani	 Oracle Linux Engineering


  reply	other threads:[~2022-02-08 19:22 UTC|newest]

Thread overview: 168+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-02-08 17:24 [PATCH v2 00/44] Remove the SCSI pointer from struct scsi_cmnd Bart Van Assche
2022-02-08 17:24 ` [PATCH v2 01/44] ips: Use true and false instead of TRUE and FALSE Bart Van Assche
2022-02-08 18:04   ` John Garry
2022-02-09  0:04     ` Bart Van Assche
2022-02-09  9:06       ` John Garry
2022-02-08 20:00   ` Himanshu Madhani
2022-02-09  7:23   ` Hannes Reinecke
2022-02-08 17:24 ` [PATCH v2 02/44] nsp_cs: " Bart Van Assche
2022-02-08 19:22   ` Himanshu Madhani [this message]
2022-02-09  7:23   ` Hannes Reinecke
2022-02-09  9:11   ` John Garry
2022-02-08 17:24 ` [PATCH v2 03/44] scsi: Remove drivers/scsi/scsi.h Bart Van Assche
2022-02-08 19:22   ` Himanshu Madhani
2022-02-09  7:26   ` Hannes Reinecke
2022-02-09 17:39     ` Bart Van Assche
2022-02-09  8:55   ` Johannes Thumshirn
2022-02-09  9:17   ` John Garry
2022-02-09 18:21     ` John Garry
2022-02-08 17:24 ` [PATCH v2 04/44] NCR5380: Remove the NCR5380_CMD_SIZE macro Bart Van Assche
2022-02-08 19:22   ` Himanshu Madhani
2022-02-08 22:14   ` Finn Thain
2022-02-09  7:27   ` Hannes Reinecke
2022-02-08 17:24 ` [PATCH v2 05/44] NCR5380: Move the SCSI pointer to private command data Bart Van Assche
2022-02-08 19:48   ` Himanshu Madhani
2022-02-08 22:22   ` Finn Thain
2022-02-09  0:10     ` Bart Van Assche
2022-02-09  7:29   ` Hannes Reinecke
2022-02-09 17:58     ` Bart Van Assche
2022-02-08 17:24 ` [PATCH v2 06/44] scsi: arm: Rename arm/scsi.h into arm/arm_scsi.h Bart Van Assche
2022-02-08 19:49   ` Himanshu Madhani
2022-02-09  7:30   ` Hannes Reinecke
2022-02-08 17:24 ` [PATCH v2 07/44] scsi: arm: Move the SCSI pointer to private command data Bart Van Assche
2022-02-09  7:32   ` Hannes Reinecke
2022-02-09 17:49   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 08/44] 53c700: Stop clearing SCSI pointer fields Bart Van Assche
2022-02-08 19:58   ` Himanshu Madhani
2022-02-09  7:32   ` Hannes Reinecke
2022-02-08 17:24 ` [PATCH v2 09/44] aacraid: Move the SCSI pointer to private command data Bart Van Assche
2022-02-09  7:34   ` Hannes Reinecke
2022-02-09 17:47   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 10/44] advansys: " Bart Van Assche
2022-02-08 17:24 ` [PATCH v2 11/44] aha1542: Remove a set-but-not-used array Bart Van Assche
2022-02-09  7:35   ` Hannes Reinecke
2022-02-09 17:50   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 12/44] aha152x: Move the SCSI pointer to private command data Bart Van Assche
2022-02-09  7:35   ` Hannes Reinecke
2022-02-09 17:57   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 13/44] bfa: Stop using the SCSI pointer Bart Van Assche
2022-02-09  7:40   ` Hannes Reinecke
2022-02-09 18:19     ` Bart Van Assche
2022-02-10  7:29       ` Hannes Reinecke
2022-02-09 18:00   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 14/44] csio: " Bart Van Assche
2022-02-09  7:41   ` Hannes Reinecke
2022-02-09 18:03   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 15/44] dc395x: " Bart Van Assche
2022-02-09  7:42   ` Hannes Reinecke
2022-02-09 18:03   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 16/44] esp_scsi: " Bart Van Assche
2022-02-09  7:45   ` Hannes Reinecke
2022-02-09 18:04   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 17/44] fdomain: Move the SCSI pointer to private command data Bart Van Assche
2022-02-08 20:35   ` Himanshu Madhani
2022-02-09  7:46   ` Hannes Reinecke
2022-02-08 17:24 ` [PATCH v2 18/44] fnic: Fix a tracing statement Bart Van Assche
2022-02-09  7:46   ` Hannes Reinecke
2022-02-09 18:05   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 19/44] fnic: Stop using the SCSI pointer Bart Van Assche
2022-02-09  7:56   ` Hannes Reinecke
2022-02-09 18:22     ` Bart Van Assche
2022-02-10  7:30       ` Hannes Reinecke
2022-02-09 18:17   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 20/44] hptiop: " Bart Van Assche
2022-02-09  7:57   ` Hannes Reinecke
2022-02-09 18:24     ` Bart Van Assche
2022-02-10  7:32       ` Hannes Reinecke
2022-02-09 18:18   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 21/44] imm: Move the SCSI pointer to private command data Bart Van Assche
2022-02-09  7:58   ` Hannes Reinecke
2022-02-09 18:27     ` Bart Van Assche
2022-02-10  7:42       ` Hannes Reinecke
2022-02-10 23:54         ` Bart Van Assche
2022-02-09 18:19   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 22/44] iscsi: Stop using the SCSI pointer Bart Van Assche
2022-02-09  7:59   ` Hannes Reinecke
2022-02-09 18:22   ` Himanshu Madhani
2022-02-09 19:55   ` Lee Duncan
2022-02-09 21:24   ` Mike Christie
2022-02-09 23:35     ` Chris Leech
2022-02-10  1:21     ` Bart Van Assche
2022-02-09 23:37   ` Chris Leech
2022-02-10  1:26     ` Bart Van Assche
2022-02-08 17:24 ` [PATCH v2 23/44] initio: " Bart Van Assche
2022-02-09  8:04   ` Hannes Reinecke
2022-02-09 18:24   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 24/44] libfc: " Bart Van Assche
2022-02-09  8:10   ` Hannes Reinecke
2022-02-09 18:33     ` Bart Van Assche
2022-02-09 18:28   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 25/44] mac53c94: Fix a set-but-not-used compiler warning Bart Van Assche
2022-02-09  8:10   ` Hannes Reinecke
2022-02-09 18:33   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 26/44] mac53c94: Move the SCSI pointer to private command data Bart Van Assche
2022-02-09  8:11   ` Hannes Reinecke
2022-02-09 18:35     ` Bart Van Assche
2022-02-10  7:52       ` Hannes Reinecke
2022-02-09 18:37   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 27/44] megaraid: Stop using the SCSI pointer Bart Van Assche
2022-02-09  8:14   ` Hannes Reinecke
2022-02-09 18:38     ` Bart Van Assche
2022-02-09 18:39   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 28/44] megasas: " Bart Van Assche
2022-02-09  8:16   ` Hannes Reinecke
2022-02-09 18:45   ` Himanshu Madhani
2022-02-08 17:24 ` [PATCH v2 29/44] mesh: Move the SCSI pointer to private command data Bart Van Assche
2022-02-09  8:49   ` Hannes Reinecke
2022-02-09 18:42   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 30/44] mvsas: Fix a set-but-not-used warning Bart Van Assche
2022-02-08 17:50   ` John Garry
2022-02-09  0:19     ` Bart Van Assche
2022-02-09  8:49   ` Hannes Reinecke
2022-02-09 18:43   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 31/44] mvumi: Stop using the SCSI pointer Bart Van Assche
2022-02-09  8:18   ` Hannes Reinecke
2022-02-09 18:46   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 32/44] nsp32: " Bart Van Assche
2022-02-09  8:18   ` Hannes Reinecke
2022-02-09  8:19   ` Hannes Reinecke
2022-02-09 18:48   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 33/44] nsp_cs: Move the SCSI pointer to private command data Bart Van Assche
2022-02-09  8:20   ` Hannes Reinecke
2022-02-09 18:50   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 34/44] sym53c500_cs: " Bart Van Assche
2022-02-09  8:21   ` Hannes Reinecke
2022-02-09 18:56   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 35/44] ppa: " Bart Van Assche
2022-02-09  8:22   ` Hannes Reinecke
2022-02-09 18:56   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 36/44] qla1280: " Bart Van Assche
2022-02-09  8:22   ` Hannes Reinecke
2022-02-09 18:58   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 37/44] qla2xxx: Stop using the SCSI pointer Bart Van Assche
2022-02-08 18:38   ` Himanshu Madhani
2022-02-09  8:24   ` Hannes Reinecke
2022-02-09 10:11   ` Daniel Wagner
2022-02-08 17:25 ` [PATCH v2 38/44] smartpqi: " Bart Van Assche
2022-02-09  8:33   ` Hannes Reinecke
2022-02-09 18:59   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 39/44] sym53c8xx_2: Move the SCSI pointer to private command data Bart Van Assche
2022-02-09  8:34   ` Hannes Reinecke
2022-02-09 19:10   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 40/44] scsi: usb: Stop using the SCSI pointer Bart Van Assche
2022-02-09  8:35   ` Hannes Reinecke
2022-02-09 19:01   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 41/44] wd719x: " Bart Van Assche
2022-02-09  8:35   ` Hannes Reinecke
2022-02-09 19:04   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 42/44] wdc33c93: Move the SCSI pointer to private command data Bart Van Assche
2022-02-09  8:36   ` Hannes Reinecke
2022-02-09 19:10   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 43/44] zalon: Stop using the SCSI pointer Bart Van Assche
2022-02-09  8:36   ` Hannes Reinecke
2022-02-09 19:11   ` Himanshu Madhani
2022-02-08 17:25 ` [PATCH v2 44/44] scsi: core: Remove struct scsi_pointer from struct scsi_cmnd Bart Van Assche
2022-02-08 17:54   ` John Garry
2022-02-09  0:24     ` Bart Van Assche
2022-02-08 19:22   ` Himanshu Madhani
2022-02-09  8:38   ` Hannes Reinecke

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=B464FC7D-E068-4A6C-9131-4B899D15A68D@oracle.com \
    --to=himanshu.madhani@oracle.com \
    --cc=bvanassche@acm.org \
    --cc=jejb@linux.ibm.com \
    --cc=johannes.thumshirn@wdc.com \
    --cc=linux-scsi@vger.kernel.org \
    --cc=martin.petersen@oracle.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.