All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 0/5] Follow up to "Add new board: Xen guest for ARM64" series
@ 2020-08-19 12:42 Anastasiia Lukianenko
  2020-08-19 12:42 ` [PATCH 1/5] board: xen: Remove unnecessary CONFIG_BOARD_EARLY_INIT_F define and board_early_init_f function Anastasiia Lukianenko
                   ` (4 more replies)
  0 siblings, 5 replies; 10+ messages in thread
From: Anastasiia Lukianenko @ 2020-08-19 12:42 UTC (permalink / raw)
  To: u-boot

From: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>

Removed unnecessary defines, fixed code style errors and added maintainers to
XEN section.

Anastasiia Lukianenko (5):
  board: xen: Remove unnecessary CONFIG_BOARD_EARLY_INIT_F define and
    board_early_init_f function
  MAINTAINERS: Add maintainers to XEN section
  board: xen: Remove CONFIG_CMD_RUN define as it is set on by default in
    Kconfig
  board: xen: Remove unnecessary CONFIG_INITRD_TAG and
    CONFIG_CMDLINE_TAG
  xen: Code style conformity

 MAINTAINERS                               | 20 ++++++++++++++++++++
 board/xen/xenguest_arm64/xenguest_arm64.c |  5 -----
 configs/xenguest_arm64_defconfig          |  1 -
 drivers/xen/gnttab.c                      |  3 ++-
 drivers/xen/pvblock.c                     | 12 ++++++------
 include/configs/xenguest_arm64.h          |  7 -------
 include/xen/gnttab.h                      |  3 +--
 lib/sscanf.c                              |  3 ++-
 8 files changed, 31 insertions(+), 23 deletions(-)

-- 
2.17.1

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/5] board: xen: Remove unnecessary CONFIG_BOARD_EARLY_INIT_F define and board_early_init_f function
  2020-08-19 12:42 [PATCH 0/5] Follow up to "Add new board: Xen guest for ARM64" series Anastasiia Lukianenko
@ 2020-08-19 12:42 ` Anastasiia Lukianenko
  2020-08-19 13:16   ` Tom Rini
  2020-08-19 12:42 ` [PATCH 2/5] MAINTAINERS: Add maintainers to XEN section Anastasiia Lukianenko
                   ` (3 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Anastasiia Lukianenko @ 2020-08-19 12:42 UTC (permalink / raw)
  To: u-boot

From: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>

Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
---
 board/xen/xenguest_arm64/xenguest_arm64.c | 5 -----
 include/configs/xenguest_arm64.h          | 2 --
 2 files changed, 7 deletions(-)

diff --git a/board/xen/xenguest_arm64/xenguest_arm64.c b/board/xen/xenguest_arm64/xenguest_arm64.c
index 927d87ae37..ef9cbd5405 100644
--- a/board/xen/xenguest_arm64/xenguest_arm64.c
+++ b/board/xen/xenguest_arm64/xenguest_arm64.c
@@ -184,11 +184,6 @@ int ft_board_setup(void *blob, bd_t *bd)
 	return 0;
 }
 
-int board_early_init_f(void)
-{
-	return 0;
-}
-
 int print_cpuinfo(void)
 {
 	printf("Xen virtual CPU\n");
diff --git a/include/configs/xenguest_arm64.h b/include/configs/xenguest_arm64.h
index db3059a82c..e88ab87a1d 100644
--- a/include/configs/xenguest_arm64.h
+++ b/include/configs/xenguest_arm64.h
@@ -9,8 +9,6 @@
 #include <linux/types.h>
 #endif
 
-#define CONFIG_BOARD_EARLY_INIT_F
-
 #define CONFIG_EXTRA_ENV_SETTINGS
 
 #undef CONFIG_NR_DRAM_BANKS
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/5] MAINTAINERS: Add maintainers to XEN section
  2020-08-19 12:42 [PATCH 0/5] Follow up to "Add new board: Xen guest for ARM64" series Anastasiia Lukianenko
  2020-08-19 12:42 ` [PATCH 1/5] board: xen: Remove unnecessary CONFIG_BOARD_EARLY_INIT_F define and board_early_init_f function Anastasiia Lukianenko
@ 2020-08-19 12:42 ` Anastasiia Lukianenko
  2020-08-19 13:16   ` Tom Rini
  2020-08-19 12:42 ` [PATCH 3/5] board: xen: Remove CONFIG_CMD_RUN define as it is set on by default in Kconfig Anastasiia Lukianenko
                   ` (2 subsequent siblings)
  4 siblings, 1 reply; 10+ messages in thread
From: Anastasiia Lukianenko @ 2020-08-19 12:42 UTC (permalink / raw)
  To: u-boot

From: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>

Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
---
 MAINTAINERS | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/MAINTAINERS b/MAINTAINERS
index 2a281a9a0f..840c7625f1 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -1028,6 +1028,26 @@ T:	git https://gitlab.denx.de/u-boot/custodians/u-boot-x86.git
 F:	arch/x86/
 F:	cmd/x86/
 
+XEN
+M:	Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
+M:	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
+S:	Maintained
+F:	arch/arm/cpu/armv8/xen/
+F:	arch/arm/include/asm/xen.h
+F:	arch/arm/include/asm/xen/
+F:	board/xen/xenguest_arm64/
+F:	cmd/pvblock.c
+F:	configs/xenguest_arm64_defconfig
+F:	doc/board/xen/
+F:	drivers/serial/serial_xen.c
+F:	drivers/xen/
+F:	include/configs/xenguest_arm64.h
+F:	include/pvblock.h
+F:	include/xen/
+F:	include/xen.h
+F:	lib/sscanf.c
+F:	test/lib/sscanf.c
+
 XTENSA
 M:	Max Filippov <jcmvbkbc@gmail.com>
 S:	Maintained
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 3/5] board: xen: Remove CONFIG_CMD_RUN define as it is set on by default in Kconfig
  2020-08-19 12:42 [PATCH 0/5] Follow up to "Add new board: Xen guest for ARM64" series Anastasiia Lukianenko
  2020-08-19 12:42 ` [PATCH 1/5] board: xen: Remove unnecessary CONFIG_BOARD_EARLY_INIT_F define and board_early_init_f function Anastasiia Lukianenko
  2020-08-19 12:42 ` [PATCH 2/5] MAINTAINERS: Add maintainers to XEN section Anastasiia Lukianenko
@ 2020-08-19 12:42 ` Anastasiia Lukianenko
  2020-08-20  9:52   ` Michal Simek
  2020-08-19 12:42 ` [PATCH 4/5] board: xen: Remove unnecessary CONFIG_INITRD_TAG and CONFIG_CMDLINE_TAG Anastasiia Lukianenko
  2020-08-19 12:42 ` [PATCH 5/5] xen: Code style conformity Anastasiia Lukianenko
  4 siblings, 1 reply; 10+ messages in thread
From: Anastasiia Lukianenko @ 2020-08-19 12:42 UTC (permalink / raw)
  To: u-boot

From: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>

Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
---
 configs/xenguest_arm64_defconfig | 1 -
 include/configs/xenguest_arm64.h | 2 --
 2 files changed, 3 deletions(-)

diff --git a/configs/xenguest_arm64_defconfig b/configs/xenguest_arm64_defconfig
index 46473c251d..1a85166ff5 100644
--- a/configs/xenguest_arm64_defconfig
+++ b/configs/xenguest_arm64_defconfig
@@ -17,7 +17,6 @@ CONFIG_CMD_ELF=n
 CONFIG_CMD_EXT4=y
 CONFIG_CMD_FAT=y
 CONFIG_CMD_GO=n
-CONFIG_CMD_RUN=n
 CONFIG_CMD_IMI=n
 CONFIG_CMD_IMLS=n
 CONFIG_CMD_XIMG=n
diff --git a/include/configs/xenguest_arm64.h b/include/configs/xenguest_arm64.h
index e88ab87a1d..f3092cb2f8 100644
--- a/include/configs/xenguest_arm64.h
+++ b/include/configs/xenguest_arm64.h
@@ -39,8 +39,6 @@
 #define CONFIG_CMDLINE_TAG            1
 #define CONFIG_INITRD_TAG             1
 
-#define CONFIG_CMD_RUN
-
 #undef CONFIG_EXTRA_ENV_SETTINGS
 #define CONFIG_EXTRA_ENV_SETTINGS	\
 	"loadimage=ext4load pvblock 0 0x90000000 /boot/Image;\0" \
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 4/5] board: xen: Remove unnecessary CONFIG_INITRD_TAG and CONFIG_CMDLINE_TAG
  2020-08-19 12:42 [PATCH 0/5] Follow up to "Add new board: Xen guest for ARM64" series Anastasiia Lukianenko
                   ` (2 preceding siblings ...)
  2020-08-19 12:42 ` [PATCH 3/5] board: xen: Remove CONFIG_CMD_RUN define as it is set on by default in Kconfig Anastasiia Lukianenko
@ 2020-08-19 12:42 ` Anastasiia Lukianenko
  2020-08-19 12:42 ` [PATCH 5/5] xen: Code style conformity Anastasiia Lukianenko
  4 siblings, 0 replies; 10+ messages in thread
From: Anastasiia Lukianenko @ 2020-08-19 12:42 UTC (permalink / raw)
  To: u-boot

From: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>

Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
---
 include/configs/xenguest_arm64.h | 3 ---
 1 file changed, 3 deletions(-)

diff --git a/include/configs/xenguest_arm64.h b/include/configs/xenguest_arm64.h
index f3092cb2f8..c44381e966 100644
--- a/include/configs/xenguest_arm64.h
+++ b/include/configs/xenguest_arm64.h
@@ -36,9 +36,6 @@
 
 #define CONFIG_OF_SYSTEM_SETUP
 
-#define CONFIG_CMDLINE_TAG            1
-#define CONFIG_INITRD_TAG             1
-
 #undef CONFIG_EXTRA_ENV_SETTINGS
 #define CONFIG_EXTRA_ENV_SETTINGS	\
 	"loadimage=ext4load pvblock 0 0x90000000 /boot/Image;\0" \
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 5/5] xen: Code style conformity
  2020-08-19 12:42 [PATCH 0/5] Follow up to "Add new board: Xen guest for ARM64" series Anastasiia Lukianenko
                   ` (3 preceding siblings ...)
  2020-08-19 12:42 ` [PATCH 4/5] board: xen: Remove unnecessary CONFIG_INITRD_TAG and CONFIG_CMDLINE_TAG Anastasiia Lukianenko
@ 2020-08-19 12:42 ` Anastasiia Lukianenko
  2020-08-19 13:18   ` Tom Rini
  4 siblings, 1 reply; 10+ messages in thread
From: Anastasiia Lukianenko @ 2020-08-19 12:42 UTC (permalink / raw)
  To: u-boot

From: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>

Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
---
 drivers/xen/gnttab.c  |  3 ++-
 drivers/xen/pvblock.c | 12 ++++++------
 include/xen/gnttab.h  |  3 +--
 lib/sscanf.c          |  3 ++-
 4 files changed, 11 insertions(+), 10 deletions(-)

diff --git a/drivers/xen/gnttab.c b/drivers/xen/gnttab.c
index becf7a79fb..9bf1091ab3 100644
--- a/drivers/xen/gnttab.c
+++ b/drivers/xen/gnttab.c
@@ -100,7 +100,8 @@ int gnttab_end_access(grant_ref_t ref)
 
 	nflags = gnttab_table[ref].flags;
 	do {
-		if ((flags = nflags) & (GTF_reading | GTF_writing)) {
+		flags = nflags;
+		if ((flags) & (GTF_reading | GTF_writing)) {
 			printf("WARNING: g.e. still in use! (%x)\n", flags);
 			return 0;
 		}
diff --git a/drivers/xen/pvblock.c b/drivers/xen/pvblock.c
index 76e82fbf41..87e33afeb0 100644
--- a/drivers/xen/pvblock.c
+++ b/drivers/xen/pvblock.c
@@ -294,8 +294,8 @@ static void shutdown_blkfront(struct blkfront_dev *dev)
 	snprintf(path, sizeof(path), "%s/state", dev->backend);
 	snprintf(nodename, sizeof(nodename), "%s/state", dev->nodename);
 
-	if ((err = xenbus_switch_state(XBT_NIL, nodename,
-				       XenbusStateClosing)) != NULL) {
+	err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosing);
+	if (err != NULL) {
 		printf("%s: error changing state to %d: %s\n", __func__,
 		       XenbusStateClosing, err);
 		goto close;
@@ -306,8 +306,8 @@ static void shutdown_blkfront(struct blkfront_dev *dev)
 		err = xenbus_wait_for_state_change(path, &state);
 	free(err);
 
-	if ((err = xenbus_switch_state(XBT_NIL, nodename,
-				       XenbusStateClosed)) != NULL) {
+	err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateClosed);
+	if (err != NULL) {
 		printf("%s: error changing state to %d: %s\n", __func__,
 		       XenbusStateClosed, err);
 		goto close;
@@ -319,8 +319,8 @@ static void shutdown_blkfront(struct blkfront_dev *dev)
 		free(err);
 	}
 
-	if ((err = xenbus_switch_state(XBT_NIL, nodename,
-				       XenbusStateInitialising)) != NULL) {
+	err = xenbus_switch_state(XBT_NIL, nodename, XenbusStateInitialising);
+	if (err != NULL) {
 		printf("%s: error changing state to %d: %s\n", __func__,
 		       XenbusStateInitialising, err);
 		goto close;
diff --git a/include/xen/gnttab.h b/include/xen/gnttab.h
index db1d5361fe..db615004aa 100644
--- a/include/xen/gnttab.h
+++ b/include/xen/gnttab.h
@@ -1,5 +1,4 @@
-/*
- * SPDX-License-Identifier: GPL-2.0
+/* SPDX-License-Identifier: GPL-2.0
  *
  * (C) 2006, Steven Smith <sos22@cam.ac.uk>
  * (C) 2006, Grzegorz Milos <gm281@cam.ac.uk>
diff --git a/lib/sscanf.c b/lib/sscanf.c
index d1e2dc272c..4c35c035fe 100644
--- a/lib/sscanf.c
+++ b/lib/sscanf.c
@@ -555,7 +555,8 @@ literal:
 			if (flags & SUPPRESS) {
 				size_t sum = 0;
 
-				if ((n = inr) < width) {
+				n = inr;
+				if (n < width) {
 					sum += n;
 					width -= n;
 					inp += n;
-- 
2.17.1

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH 2/5] MAINTAINERS: Add maintainers to XEN section
  2020-08-19 12:42 ` [PATCH 2/5] MAINTAINERS: Add maintainers to XEN section Anastasiia Lukianenko
@ 2020-08-19 13:16   ` Tom Rini
  0 siblings, 0 replies; 10+ messages in thread
From: Tom Rini @ 2020-08-19 13:16 UTC (permalink / raw)
  To: u-boot

On Wed, Aug 19, 2020 at 03:42:18PM +0300, Anastasiia Lukianenko wrote:

> From: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
> 
> Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
> ---
>  MAINTAINERS | 20 ++++++++++++++++++++
>  1 file changed, 20 insertions(+)
> 
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 2a281a9a0f..840c7625f1 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -1028,6 +1028,26 @@ T:	git https://gitlab.denx.de/u-boot/custodians/u-boot-x86.git
>  F:	arch/x86/
>  F:	cmd/x86/
>  
> +XEN
> +M:	Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
> +M:	Oleksandr Andrushchenko <oleksandr_andrushchenko@epam.com>
> +S:	Maintained
> +F:	arch/arm/cpu/armv8/xen/
> +F:	arch/arm/include/asm/xen.h
> +F:	arch/arm/include/asm/xen/
> +F:	board/xen/xenguest_arm64/
> +F:	cmd/pvblock.c
> +F:	configs/xenguest_arm64_defconfig
> +F:	doc/board/xen/
> +F:	drivers/serial/serial_xen.c
> +F:	drivers/xen/
> +F:	include/configs/xenguest_arm64.h
> +F:	include/pvblock.h
> +F:	include/xen/
> +F:	include/xen.h
> +F:	lib/sscanf.c
> +F:	test/lib/sscanf.c

Note that this duplicates some of board/xen/xenguest_arm64/MAINTAINERS
and it's probably best to keep the board-specific parts under there
anyhow.

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200819/aef19fb3/attachment.sig>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 1/5] board: xen: Remove unnecessary CONFIG_BOARD_EARLY_INIT_F define and board_early_init_f function
  2020-08-19 12:42 ` [PATCH 1/5] board: xen: Remove unnecessary CONFIG_BOARD_EARLY_INIT_F define and board_early_init_f function Anastasiia Lukianenko
@ 2020-08-19 13:16   ` Tom Rini
  0 siblings, 0 replies; 10+ messages in thread
From: Tom Rini @ 2020-08-19 13:16 UTC (permalink / raw)
  To: u-boot

On Wed, Aug 19, 2020 at 03:42:17PM +0300, Anastasiia Lukianenko wrote:

> From: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
> 
> Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>

Reviewed-by: Tom Rini <trini@konsulko.com>

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200819/0ce5dbbc/attachment.sig>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 5/5] xen: Code style conformity
  2020-08-19 12:42 ` [PATCH 5/5] xen: Code style conformity Anastasiia Lukianenko
@ 2020-08-19 13:18   ` Tom Rini
  0 siblings, 0 replies; 10+ messages in thread
From: Tom Rini @ 2020-08-19 13:18 UTC (permalink / raw)
  To: u-boot

On Wed, Aug 19, 2020 at 03:42:21PM +0300, Anastasiia Lukianenko wrote:

> From: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
> 
> Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>

Checkpatch still notes:
CHECK: Comparison to NULL could be written "err"

And please add a commit message saying what you're cleaning up.  Thanks!

-- 
Tom
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 659 bytes
Desc: not available
URL: <https://lists.denx.de/pipermail/u-boot/attachments/20200819/b5b6011a/attachment.sig>

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH 3/5] board: xen: Remove CONFIG_CMD_RUN define as it is set on by default in Kconfig
  2020-08-19 12:42 ` [PATCH 3/5] board: xen: Remove CONFIG_CMD_RUN define as it is set on by default in Kconfig Anastasiia Lukianenko
@ 2020-08-20  9:52   ` Michal Simek
  0 siblings, 0 replies; 10+ messages in thread
From: Michal Simek @ 2020-08-20  9:52 UTC (permalink / raw)
  To: u-boot

Hi,

st 19. 8. 2020 v 14:43 odes?latel Anastasiia Lukianenko
<vicooodin@gmail.com> napsal:
>
> From: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>

You really need to write something here.


>
> Signed-off-by: Anastasiia Lukianenko <anastasiia_lukianenko@epam.com>
> ---
>  configs/xenguest_arm64_defconfig | 1 -
>  include/configs/xenguest_arm64.h | 2 --
>  2 files changed, 3 deletions(-)
>
> diff --git a/configs/xenguest_arm64_defconfig b/configs/xenguest_arm64_defconfig
> index 46473c251d..1a85166ff5 100644
> --- a/configs/xenguest_arm64_defconfig
> +++ b/configs/xenguest_arm64_defconfig
> @@ -17,7 +17,6 @@ CONFIG_CMD_ELF=n
>  CONFIG_CMD_EXT4=y
>  CONFIG_CMD_FAT=y
>  CONFIG_CMD_GO=n
> -CONFIG_CMD_RUN=n

I have seen one message where you got a recommendation to use savedefconfig.
That's why please use it. All these options =n are just wrong.

Thanks,
Michal

-- 
Michal Simek, Ing. (M.Eng), OpenPGP -> KeyID: FE3D1F91
w: www.monstr.eu p: +42-0-721842854
Maintainer of Linux kernel - Xilinx Microblaze
Maintainer of Linux kernel - Xilinx Zynq ARM and ZynqMP ARM64 SoCs
U-Boot custodian - Xilinx Microblaze/Zynq/ZynqMP/Versal SoCs

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2020-08-20  9:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-08-19 12:42 [PATCH 0/5] Follow up to "Add new board: Xen guest for ARM64" series Anastasiia Lukianenko
2020-08-19 12:42 ` [PATCH 1/5] board: xen: Remove unnecessary CONFIG_BOARD_EARLY_INIT_F define and board_early_init_f function Anastasiia Lukianenko
2020-08-19 13:16   ` Tom Rini
2020-08-19 12:42 ` [PATCH 2/5] MAINTAINERS: Add maintainers to XEN section Anastasiia Lukianenko
2020-08-19 13:16   ` Tom Rini
2020-08-19 12:42 ` [PATCH 3/5] board: xen: Remove CONFIG_CMD_RUN define as it is set on by default in Kconfig Anastasiia Lukianenko
2020-08-20  9:52   ` Michal Simek
2020-08-19 12:42 ` [PATCH 4/5] board: xen: Remove unnecessary CONFIG_INITRD_TAG and CONFIG_CMDLINE_TAG Anastasiia Lukianenko
2020-08-19 12:42 ` [PATCH 5/5] xen: Code style conformity Anastasiia Lukianenko
2020-08-19 13:18   ` Tom Rini

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.