head 1.18; access; symbols netbsd-11-0-RC5:1.18 netbsd-11-0-RC4:1.18 netbsd-11-0-RC3:1.18 netbsd-11-0-RC2:1.18 netbsd-11-0-RC1:1.18 perseant-exfatfs-base-20250801:1.18 netbsd-11:1.18.0.2 netbsd-11-base:1.18 netbsd-10-1-RELEASE:1.15 perseant-exfatfs-base-20240630:1.17 perseant-exfatfs:1.17.0.2 perseant-exfatfs-base:1.17 netbsd-8-3-RELEASE:1.3 netbsd-9-4-RELEASE:1.7 netbsd-10-0-RELEASE:1.15 netbsd-10-0-RC6:1.15 netbsd-10-0-RC5:1.15 netbsd-10-0-RC4:1.15 netbsd-10-0-RC3:1.15 netbsd-10-0-RC2:1.15 netbsd-10-0-RC1:1.15 netbsd-10:1.15.0.8 netbsd-10-base:1.15 netbsd-9-3-RELEASE:1.7 cjep_sun2x-base1:1.15 cjep_sun2x:1.15.0.6 cjep_sun2x-base:1.15 cjep_staticlib_x-base1:1.15 netbsd-9-2-RELEASE:1.7 cjep_staticlib_x:1.15.0.4 cjep_staticlib_x-base:1.15 thorpej-futex:1.15.0.2 thorpej-futex-base:1.15 netbsd-9-1-RELEASE:1.7 phil-wifi-20200421:1.8 phil-wifi-20200411:1.7 is-mlppp:1.7.0.4 is-mlppp-base:1.7 phil-wifi-20200406:1.7 netbsd-8-2-RELEASE:1.3 netbsd-9-0-RELEASE:1.7 netbsd-9-0-RC2:1.7 netbsd-9-0-RC1:1.7 phil-wifi-20191119:1.7 netbsd-9:1.7.0.2 netbsd-9-base:1.7 phil-wifi-20190609:1.7 netbsd-8-1-RELEASE:1.3 netbsd-8-1-RC1:1.3 pgoyette-compat-merge-20190127:1.3.12.1 pgoyette-compat-20190127:1.6 pgoyette-compat-20190118:1.6 pgoyette-compat-1226:1.6 pgoyette-compat-1126:1.3 pgoyette-compat-1020:1.3 pgoyette-compat-0930:1.3 pgoyette-compat-0906:1.3 pgoyette-compat-0728:1.3 netbsd-8-0-RELEASE:1.3 phil-wifi:1.3.0.14 phil-wifi-base:1.3 pgoyette-compat-0625:1.3 netbsd-8-0-RC2:1.3 pgoyette-compat-0521:1.3 pgoyette-compat-0502:1.3 pgoyette-compat-0422:1.3 netbsd-8-0-RC1:1.3 pgoyette-compat-0415:1.3 pgoyette-compat-0407:1.3 pgoyette-compat-0330:1.3 pgoyette-compat-0322:1.3 pgoyette-compat-0315:1.3 pgoyette-compat:1.3.0.12 pgoyette-compat-base:1.3 matt-nb8-mediatek:1.3.0.10 matt-nb8-mediatek-base:1.3 perseant-stdc-iso10646:1.3.0.8 perseant-stdc-iso10646-base:1.3 netbsd-8:1.3.0.6 netbsd-8-base:1.3 prg-localcount2-base3:1.3 prg-localcount2-base2:1.3 prg-localcount2-base1:1.3 prg-localcount2:1.3.0.4 prg-localcount2-base:1.3 pgoyette-localcount-20170426:1.3 bouyer-socketcan:1.3.0.2 bouyer-socketcan-base1:1.3 pgoyette-localcount:1.2.0.2 pgoyette-localcount-20170320:1.2; locks; strict; comment @# @; 1.18 date 2024.07.11.20.41.09; author riastradh; state Exp; branches; next 1.17; commitid psHdwNjzQfZSIshF; 1.17 date 2023.08.20.19.36.56; author riastradh; state Exp; branches 1.17.2.1; next 1.16; commitid CSm6R3MGODF6QyBE; 1.16 date 2023.08.20.12.29.16; author riastradh; state Exp; branches; next 1.15; commitid bcb3cjLDm7r2uwBE; 1.15 date 2020.10.16.07.12.26; author mgorny; state Exp; branches; next 1.14; commitid HOuYGG5YROGP56sC; 1.14 date 2020.10.15.22.15.08; author mgorny; state Exp; branches; next 1.13; commitid 8crpgC5riyQB73sC; 1.13 date 2020.08.27.15.32.00; author riastradh; state Exp; branches; next 1.12; commitid AyHzbLOKhgf3tIlC; 1.12 date 2020.05.17.15.28.27; author martin; state Exp; branches; next 1.11; commitid XcozDOlFKhf5JB8C; 1.11 date 2020.05.11.21.51.25; author yhardy; state Exp; branches; next 1.10; commitid OvbL2NyRvgon1S7C; 1.10 date 2020.04.28.13.43.45; author rjs; state Exp; branches; next 1.9; commitid ak2UVq6HRhaZK96C; 1.9 date 2020.04.26.09.08.40; author maxv; state Exp; branches; next 1.8; commitid GnN2TfqPW1RiiS5C; 1.8 date 2020.04.19.13.22.58; author maxv; state Exp; branches; next 1.7; commitid 1LKB1Wtc0cKEVZ4C; 1.7 date 2019.02.05.13.00.03; author maxv; state Exp; branches; next 1.6; commitid AwnetT8edvQLUzaB; 1.6 date 2018.12.23.21.27.45; author jakllsch; state Exp; branches; next 1.5; commitid ncKJaqKGz5Sn8Y4B; 1.5 date 2018.12.23.16.40.15; author jakllsch; state Exp; branches; next 1.4; commitid q3KFBYv6qhc8yW4B; 1.4 date 2018.12.23.13.35.02; author maxv; state Exp; branches; next 1.3; commitid aqxQYMkradRdwV4B; 1.3 date 2017.04.02.01.49.52; author kamil; state Exp; branches 1.3.2.1 1.3.12.1 1.3.14.1; next 1.2; commitid cln5nWn2jU0ORTLz; 1.2 date 2017.02.22.09.09.49; author kamil; state Exp; branches 1.2.2.1; next 1.1; commitid yF6t0cbDmnsfyVGz; 1.1 date 2017.02.22.01.07.13; author kamil; state Exp; branches; next ; commitid q06zFI0jgkWBQSGz; 1.17.2.1 date 2025.08.02.05.20.35; author perseant; state Exp; branches; next ; commitid 23j6GFaDws3O875G; 1.3.2.1 date 2017.04.02.01.49.52; author bouyer; state dead; branches; next 1.3.2.2; commitid dUG7nkTKALCadqOz; 1.3.2.2 date 2017.04.21.16.51.14; author bouyer; state Exp; branches; next ; commitid dUG7nkTKALCadqOz; 1.3.12.1 date 2018.12.26.14.01.12; author pgoyette; state Exp; branches; next ; commitid xUhK8IAeBM1azj5B; 1.3.14.1 date 2019.06.10.21.42.31; author christos; state Exp; branches; next 1.3.14.2; commitid jtc8rnCzWiEEHGqB; 1.3.14.2 date 2020.04.21.18.41.53; author martin; state Exp; branches; next ; commitid 86tA4aEmdr3VCh5C; 1.2.2.1 date 2017.02.22.09.09.49; author pgoyette; state dead; branches; next 1.2.2.2; commitid jjw7cAwgyKq7RfKz; 1.2.2.2 date 2017.03.20.06.52.09; author pgoyette; state Exp; branches; next 1.2.2.3; commitid jjw7cAwgyKq7RfKz; 1.2.2.3 date 2017.04.26.02.52.17; author pgoyette; state Exp; branches; next ; commitid ojV02aOSdzvBqZOz; desc @@ 1.18 log @distrib/sets/lists: Add a blank comment line between RCS id and body. This serves as a buffer between RCS id changes and other changes to the set lists, in an attempt to reduce the pain of merge conflicts around mass set list changes. No functional change intended. @ text @# $NetBSD: md.amd64,v 1.17 2023/08/20 19:36:56 riastradh Exp $ # ./usr/tests/kernel/arch/x86/Atffile tests-obsolete obsolete ./usr/tests/kernel/arch/x86/Kyuafile tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait3 tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait4 tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait6 tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_waitid tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_waitpid tests-obsolete obsolete ./usr/tests/lib/libi386/t_user_ldt tests-lib-tests compattestfile,atf,compat ./usr/tests/lib/libnvmm/h_io_assist tests-lib-tests compattestfile,atf ./usr/tests/lib/libnvmm/h_mem_assist tests-lib-tests compattestfile,atf ./usr/tests/lib/libnvmm/t_io_assist tests-lib-tests compattestfile,atf ./usr/tests/lib/libnvmm/t_mem_assist tests-lib-tests compattestfile,atf ./usr/tests/modules/t_x86_pte tests-sys-tests atf,kmod,rump ./usr/tests/modules/x86_pte_tester tests-sys-tests atf,kmod,rump ./usr/tests/modules/x86_pte_tester/x86_pte_tester.kmod tests-sys-tests atf,kmod,rump ./usr/tests/sys/x86/Atffile tests-sys-tests compattestfile,atf ./usr/tests/sys/x86/Kyuafile tests-sys-tests compattestfile,atf,kyua ./usr/tests/sys/x86/t_convert_xmm_s87 tests-sys-tests compattestfile,atf @ 1.17 log @distrib/sets/lists/tests: Correction: h_inotify_* are MI. Debug lists are probably still wrong, though -- looks like there's no rule to change h_inotify_*.out.debug to h_inotify_*.debug. Out of energy to look into this further, though; please fix me! @ text @d1 2 a2 1 # $NetBSD: md.amd64,v 1.16 2023/08/20 12:29:16 riastradh Exp $ @ 1.17.2.1 log @Sync with HEAD @ text @d1 1 a1 2 # $NetBSD: md.amd64,v 1.18 2024/07/11 20:41:09 riastradh Exp $ # @ 1.16 log @distrib/sets/lists: /usr/tests/compat/linux/h_* is amd64-only for now. @ text @d1 1 a1 5 # $NetBSD: md.amd64,v 1.15 2020/10/16 07:12:26 mgorny Exp $ ./usr/tests/compat/linux/h_inotify_init tests-compat-tests compattestfile,atf ./usr/tests/compat/linux/h_inotify_directory tests-compat-tests compattestfile,atf ./usr/tests/compat/linux/h_inotify_single_file tests-compat-tests compattestfile,atf ./usr/tests/compat/linux/h_inotify_watch_change tests-compat-tests compattestfile,atf @ 1.15 log @Try to fix tests/sys/x86 again Thank to Martin Husemann for the suggestion. @ text @d1 5 a5 1 # $NetBSD: md.amd64,v 1.14 2020/10/15 22:15:08 mgorny Exp $ @ 1.14 log @Move the new x86 test into x86-specific lists @ text @d1 1 a1 2 # $NetBSD: md.amd64,v 1.13 2020/08/27 15:32:00 riastradh Exp $ ./usr/libdata/debug/usr/tests/sys/x86 tests-sys-debug compattestfile,atf a17 1 ./usr/tests/sys/x86 tests-sys-tests compattestfile,atf @ 1.13 log @Sort and deduplicate set lists. @ text @d1 2 a2 1 # $NetBSD: md.amd64,v 1.12 2020/05/17 15:28:27 martin Exp $ d19 4 @ 1.12 log @Fix lists for RUMP-less builds @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.11 2020/05/11 21:51:25 yhardy Exp $ d12 1 a13 1 ./usr/tests/lib/libnvmm/h_mem_assist tests-lib-tests compattestfile,atf @ 1.11 log @Fix the build for MKCOMPAT=no. The t_user_ldt test needs the i386 compat library which is only built when MKCOMPAT=yes. @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.10 2020/04/28 13:43:45 rjs Exp $ d15 3 a17 3 ./usr/tests/modules/t_x86_pte tests-sys-tests atf,kmod ./usr/tests/modules/x86_pte_tester tests-sys-tests atf,kmod ./usr/tests/modules/x86_pte_tester/x86_pte_tester.kmod tests-sys-tests atf,kmod @ 1.10 log @The x86_pte tests are only built when MKKMOD=yes. @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.9 2020/04/26 09:08:40 maxv Exp $ d10 1 a10 1 ./usr/tests/lib/libi386/t_user_ldt tests-lib-tests compattestfile,atf @ 1.9 log @Add tests on the x86 PTEs. We scan the MMU page tables directly and verify certain properties. @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.8 2020/04/19 13:22:58 maxv Exp $ d15 3 a17 3 ./usr/tests/modules/t_x86_pte tests-sys-tests atf ./usr/tests/modules/x86_pte_tester tests-sys-tests atf ./usr/tests/modules/x86_pte_tester/x86_pte_tester.kmod tests-sys-tests atf @ 1.8 log @Add tests for USER_LDT. @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.7 2019/02/05 13:00:03 maxv Exp $ d15 3 @ 1.7 log @Add 12 tests for libnvmm's I/O Assist. @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.6 2018/12/23 21:27:45 jakllsch Exp $ d10 1 @ 1.6 log @Make the /usr/tests/lib/libnvmm directory and testing framework files MI. Should fix non-amd64 build. @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.5 2018/12/23 16:40:15 jakllsch Exp $ d10 2 @ 1.5 log @further build fixes @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.4 2018/12/23 13:35:02 maxv Exp $ a9 3 ./usr/tests/lib/libnvmm tests-lib-tests compattestfile,atf ./usr/tests/lib/libnvmm/Atffile tests-lib-tests compattestfile,atf ./usr/tests/lib/libnvmm/Kyuafile tests-lib-tests compattestfile,atf,kyua @ 1.4 log @Add initial tests for libnvmm's Mem Assist, with 8 test cases. @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.3 2017/04/02 01:49:52 kamil Exp $ d10 1 @ 1.3 log @Remove kernel/arch/{amd64,i386,x86} tests These files were merged with kernel/t_ptrace_wait* This removes MD test files. Sponsored by @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.2 2017/02/22 09:09:49 kamil Exp $ d10 4 @ 1.3.14.1 log @Sync with HEAD @ text @d1 1 a1 1 # $NetBSD: md.amd64,v 1.7 2019/02/05 13:00:03 maxv Exp $ a9 4 ./usr/tests/lib/libnvmm/h_io_assist tests-lib-tests compattestfile,atf ./usr/tests/lib/libnvmm/t_io_assist tests-lib-tests compattestfile,atf ./usr/tests/lib/libnvmm/h_mem_assist tests-lib-tests compattestfile,atf ./usr/tests/lib/libnvmm/t_mem_assist tests-lib-tests compattestfile,atf @ 1.3.14.2 log @Sync with HEAD @ text @d1 1 a1 1 # $NetBSD$ a9 1 ./usr/tests/lib/libi386/t_user_ldt tests-lib-tests compattestfile,atf @ 1.3.12.1 log @Sync with HEAD, resolve a few conflicts @ text @d1 1 a1 1 # $NetBSD$ a9 2 ./usr/tests/lib/libnvmm/h_mem_assist tests-lib-tests compattestfile,atf ./usr/tests/lib/libnvmm/t_mem_assist tests-lib-tests compattestfile,atf @ 1.3.2.1 log @file md.amd64 was added on branch bouyer-socketcan on 2017-04-21 16:51:14 +0000 @ text @d1 9 @ 1.3.2.2 log @Sync with HEAD @ text @a0 9 # $NetBSD: md.amd64,v 1.3 2017/04/02 01:49:52 kamil Exp $ ./usr/tests/kernel/arch/x86/Atffile tests-obsolete obsolete ./usr/tests/kernel/arch/x86/Kyuafile tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait3 tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait4 tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait6 tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_waitid tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_waitpid tests-obsolete obsolete @ 1.2 log @Fix build of !x86 ports Mark debug/usr/tests/kernel/arch/x86 as MI directory. Sponsored by @ text @d1 9 a9 9 # $NetBSD: md.amd64,v 1.1 2017/02/22 01:07:13 kamil Exp $ ./usr/tests/kernel/arch/x86/Atffile tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/Kyuafile tests-kernel-tests compattestfile,atf,kyua ./usr/tests/kernel/arch/x86/t_ptrace_wait tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/t_ptrace_wait3 tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/t_ptrace_wait4 tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/t_ptrace_wait6 tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/t_ptrace_waitid tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/t_ptrace_waitpid tests-kernel-tests compattestfile,atf @ 1.2.2.1 log @file md.amd64 was added on branch pgoyette-localcount on 2017-03-20 06:52:09 +0000 @ text @d1 9 @ 1.2.2.2 log @Sync with HEAD @ text @a0 9 # $NetBSD: md.amd64,v 1.2 2017/02/22 09:09:49 kamil Exp $ ./usr/tests/kernel/arch/x86/Atffile tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/Kyuafile tests-kernel-tests compattestfile,atf,kyua ./usr/tests/kernel/arch/x86/t_ptrace_wait tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/t_ptrace_wait3 tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/t_ptrace_wait4 tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/t_ptrace_wait6 tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/t_ptrace_waitid tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86/t_ptrace_waitpid tests-kernel-tests compattestfile,atf @ 1.2.2.3 log @Sync with HEAD @ text @d1 9 a9 9 # $NetBSD: md.amd64,v 1.3 2017/04/02 01:49:52 kamil Exp $ ./usr/tests/kernel/arch/x86/Atffile tests-obsolete obsolete ./usr/tests/kernel/arch/x86/Kyuafile tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait3 tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait4 tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_wait6 tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_waitid tests-obsolete obsolete ./usr/tests/kernel/arch/x86/t_ptrace_waitpid tests-obsolete obsolete @ 1.1 log @Add kernel/arch/x86 ATF tests for CPU Debug Registers for amd64 and i386 This moves kernel/arch/amd64 tests, the ones to be shared between amd64 and i386, into kernel/arch/x86. This covers all Debug Register tests. kernel/arch/amd64 is reduced to regs1 kernel/arch/i386 is reduced to regs1 kernel/arch/x86 tests: - dbregs_print - dbregs_preserve_dr0 - dbregs_preserve_dr1 - dbregs_preserve_dr2 - dbregs_preserve_dr3 - dbregs_preserve_dr0_yield - dbregs_preserve_dr1_yield - dbregs_preserve_dr2_yield - dbregs_preserve_dr3_yield - dbregs_preserve_dr0_continued - dbregs_preserve_dr1_continued - dbregs_preserve_dr2_continued - dbregs_preserve_dr3_continued - dbregs_dr0_trap_variable_writeonly_byte - dbregs_dr1_trap_variable_writeonly_byte - dbregs_dr2_trap_variable_writeonly_byte - dbregs_dr3_trap_variable_writeonly_byte - dbregs_dr0_trap_variable_writeonly_2bytes - dbregs_dr1_trap_variable_writeonly_2bytes - dbregs_dr2_trap_variable_writeonly_2bytes - dbregs_dr3_trap_variable_writeonly_2bytes - dbregs_dr0_trap_variable_writeonly_4bytes - dbregs_dr1_trap_variable_writeonly_4bytes - dbregs_dr2_trap_variable_writeonly_4bytes - dbregs_dr3_trap_variable_writeonly_4bytes - dbregs_dr0_trap_variable_readwrite_write_byte - dbregs_dr1_trap_variable_readwrite_write_byte - dbregs_dr2_trap_variable_readwrite_write_byte - dbregs_dr3_trap_variable_readwrite_write_byte - dbregs_dr0_trap_variable_readwrite_write_2bytes - dbregs_dr1_trap_variable_readwrite_write_2bytes - dbregs_dr2_trap_variable_readwrite_write_2bytes - dbregs_dr3_trap_variable_readwrite_write_2bytes - dbregs_dr0_trap_variable_readwrite_write_4bytes - dbregs_dr1_trap_variable_readwrite_write_4bytes - dbregs_dr2_trap_variable_readwrite_write_4bytes - dbregs_dr3_trap_variable_readwrite_write_4bytes - dbregs_dr0_trap_variable_readwrite_read_byte - dbregs_dr1_trap_variable_readwrite_read_byte - dbregs_dr2_trap_variable_readwrite_read_byte - dbregs_dr3_trap_variable_readwrite_read_byte - dbregs_dr0_trap_variable_readwrite_read_2bytes - dbregs_dr1_trap_variable_readwrite_read_2bytes - dbregs_dr2_trap_variable_readwrite_read_2bytes - dbregs_dr3_trap_variable_readwrite_read_2bytes - dbregs_dr0_trap_variable_readwrite_read_4bytes - dbregs_dr1_trap_variable_readwrite_read_4bytes - dbregs_dr2_trap_variable_readwrite_read_4bytes - dbregs_dr3_trap_variable_readwrite_read_4bytes - dbregs_dr0_trap_code - dbregs_dr1_trap_code - dbregs_dr2_trap_code - dbregs_dr3_trap_code - dbregs_dr0_dont_inherit_lwp - dbregs_dr1_dont_inherit_lwp - dbregs_dr2_dont_inherit_lwp - dbregs_dr3_dont_inherit_lwp - dbregs_dr6_dont_inherit_lwp - dbregs_dr7_dont_inherit_lwp - dbregs_dr0_dont_inherit_execve - dbregs_dr1_dont_inherit_execve - dbregs_dr2_dont_inherit_execve - dbregs_dr3_dont_inherit_execve - dbregs_dr6_dont_inherit_execve - dbregs_dr7_dont_inherit_execve Sponsored by @ text @d1 1 a1 3 # $NetBSD: md.x86,v 1.268 2017/01/24 11:09:14 nonaka Exp $ ./usr/libdata/debug/usr/tests/kernel/arch/x86 tests-kernel-tests compattestfile,atf ./usr/tests/kernel/arch/x86 tests-kernel-tests compattestfile,atf @