head 1.4; access; symbols netbsd-11-0-RC4:1.4 netbsd-11-0-RC3:1.4 netbsd-11-0-RC2:1.4 netbsd-11-0-RC1:1.4 perseant-exfatfs-base-20250801:1.4 netbsd-11:1.4.0.12 netbsd-11-base:1.4 netbsd-10-1-RELEASE:1.4 perseant-exfatfs-base-20240630:1.4 perseant-exfatfs:1.4.0.10 perseant-exfatfs-base:1.4 netbsd-8-3-RELEASE:1.3 netbsd-9-4-RELEASE:1.3 netbsd-10-0-RELEASE:1.4 netbsd-10-0-RC6:1.4 netbsd-10-0-RC5:1.4 netbsd-10-0-RC4:1.4 netbsd-10-0-RC3:1.4 netbsd-10-0-RC2:1.4 thorpej-ifq:1.4.0.8 thorpej-ifq-base:1.4 thorpej-altq-separation:1.4.0.6 thorpej-altq-separation-base:1.4 netbsd-10-0-RC1:1.4 netbsd-10:1.4.0.4 netbsd-10-base:1.4 bouyer-sunxi-drm:1.4.0.2 bouyer-sunxi-drm-base:1.4 netbsd-9-3-RELEASE:1.3 thorpej-i2c-spi-conf2:1.3.0.44 thorpej-i2c-spi-conf2-base:1.3 thorpej-futex2:1.3.0.42 thorpej-futex2-base:1.3 thorpej-cfargs2:1.3.0.40 thorpej-cfargs2-base:1.3 cjep_sun2x-base1:1.3 cjep_sun2x:1.3.0.38 cjep_sun2x-base:1.3 cjep_staticlib_x-base1:1.3 netbsd-9-2-RELEASE:1.3 cjep_staticlib_x:1.3.0.36 cjep_staticlib_x-base:1.3 thorpej-i2c-spi-conf:1.3.0.34 thorpej-i2c-spi-conf-base:1.3 thorpej-cfargs:1.3.0.32 thorpej-cfargs-base:1.3 thorpej-futex:1.3.0.30 thorpej-futex-base:1.3 netbsd-9-1-RELEASE:1.3 bouyer-xenpvh-base2:1.3 phil-wifi-20200421:1.3 bouyer-xenpvh-base1:1.3 phil-wifi-20200411:1.3 bouyer-xenpvh:1.3.0.28 bouyer-xenpvh-base:1.3 is-mlppp:1.3.0.26 is-mlppp-base:1.3 phil-wifi-20200406:1.3 netbsd-8-2-RELEASE:1.3 ad-namecache-base3:1.3 netbsd-9-0-RELEASE:1.3 netbsd-9-0-RC2:1.3 ad-namecache-base2:1.3 ad-namecache-base1:1.3 ad-namecache:1.3.0.24 ad-namecache-base:1.3 netbsd-9-0-RC1:1.3 phil-wifi-20191119:1.3 netbsd-9:1.3.0.22 netbsd-9-base:1.3 phil-wifi-20190609:1.3 netbsd-8-1-RELEASE:1.3 netbsd-8-1-RC1:1.3 isaki-audio2:1.3.0.20 isaki-audio2-base:1.3 pgoyette-compat-merge-20190127:1.3 pgoyette-compat-20190127:1.3 pgoyette-compat-20190118:1.3 pgoyette-compat-1226:1.3 pgoyette-compat-1126:1.3 pgoyette-compat-1020:1.3 pgoyette-compat-0930:1.3 pgoyette-compat-0906:1.3 netbsd-7-2-RELEASE:1.1 pgoyette-compat-0728:1.3 netbsd-8-0-RELEASE:1.3 phil-wifi:1.3.0.18 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 netbsd-7-1-2-RELEASE:1.1 pgoyette-compat:1.3.0.16 pgoyette-compat-base:1.3 netbsd-7-1-1-RELEASE:1.1 tls-maxphys-base-20171202:1.3 matt-nb8-mediatek:1.3.0.14 matt-nb8-mediatek-base:1.3 nick-nhusb-base-20170825:1.3 perseant-stdc-iso10646:1.3.0.12 perseant-stdc-iso10646-base:1.3 netbsd-8:1.3.0.10 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.8 prg-localcount2-base:1.3 pgoyette-localcount-20170426:1.3 bouyer-socketcan-base1:1.3 jdolecek-ncq:1.3.0.6 jdolecek-ncq-base:1.3 pgoyette-localcount-20170320:1.3 netbsd-7-1:1.1.0.176 netbsd-7-1-RELEASE:1.1 netbsd-7-1-RC2:1.1 nick-nhusb-base-20170204:1.3 netbsd-7-nhusb-base-20170116:1.1 bouyer-socketcan:1.3.0.4 bouyer-socketcan-base:1.3 pgoyette-localcount-20170107:1.3 netbsd-7-1-RC1:1.1 nick-nhusb-base-20161204:1.3 pgoyette-localcount-20161104:1.3 netbsd-7-0-2-RELEASE:1.1 nick-nhusb-base-20161004:1.3 localcount-20160914:1.3 netbsd-7-nhusb:1.1.0.174 netbsd-7-nhusb-base:1.1 pgoyette-localcount-20160806:1.3 pgoyette-localcount-20160726:1.3 pgoyette-localcount:1.3.0.2 pgoyette-localcount-base:1.3 nick-nhusb-base-20160907:1.3 nick-nhusb-base-20160529:1.3 netbsd-7-0-1-RELEASE:1.1 nick-nhusb-base-20160422:1.3 nick-nhusb-base-20160319:1.3 nick-nhusb-base-20151226:1.2 netbsd-7-0:1.1.0.172 netbsd-7-0-RELEASE:1.1 nick-nhusb-base-20150921:1.2 netbsd-7-0-RC3:1.1 netbsd-7-0-RC2:1.1 netbsd-7-0-RC1:1.1 nick-nhusb-base-20150606:1.2 nick-nhusb-base-20150406:1.2 nick-nhusb:1.2.0.2 nick-nhusb-base:1.2 netbsd-5-2-3-RELEASE:1.1 netbsd-5-1-5-RELEASE:1.1 netbsd-6-0-6-RELEASE:1.1 netbsd-6-1-5-RELEASE:1.1 netbsd-7:1.1.0.170 netbsd-7-base:1.1 yamt-pagecache-base9:1.1 yamt-pagecache-tag8:1.1 netbsd-6-1-4-RELEASE:1.1 netbsd-6-0-5-RELEASE:1.1 tls-earlyentropy:1.1.0.168 tls-earlyentropy-base:1.1 riastradh-xf86-video-intel-2-7-1-pre-2-21-15:1.1 riastradh-drm2-base3:1.1 netbsd-6-1-3-RELEASE:1.1 netbsd-6-0-4-RELEASE:1.1 netbsd-5-2-2-RELEASE:1.1 netbsd-5-1-4-RELEASE:1.1 netbsd-6-1-2-RELEASE:1.1 netbsd-6-0-3-RELEASE:1.1 netbsd-5-2-1-RELEASE:1.1 netbsd-5-1-3-RELEASE:1.1 rmind-smpnet-nbase:1.1 netbsd-6-1-1-RELEASE:1.1 riastradh-drm2-base2:1.1 riastradh-drm2-base1:1.1 riastradh-drm2:1.1.0.166 riastradh-drm2-base:1.1 rmind-smpnet:1.1.0.158 rmind-smpnet-base:1.1 netbsd-6-1:1.1.0.164 netbsd-6-0-2-RELEASE:1.1 netbsd-6-1-RELEASE:1.1 khorben-n900:1.1.0.162 netbsd-6-1-RC4:1.1 netbsd-6-1-RC3:1.1 agc-symver:1.1.0.160 agc-symver-base:1.1 netbsd-6-1-RC2:1.1 netbsd-6-1-RC1:1.1 yamt-pagecache-base8:1.1 netbsd-5-2:1.1.0.156 netbsd-6-0-1-RELEASE:1.1 yamt-pagecache-base7:1.1 netbsd-5-2-RELEASE:1.1 netbsd-5-2-RC1:1.1 matt-nb6-plus-nbase:1.1 yamt-pagecache-base6:1.1 netbsd-6-0:1.1.0.154 netbsd-6-0-RELEASE:1.1 netbsd-6-0-RC2:1.1 tls-maxphys:1.1.0.152 tls-maxphys-base:1.1 matt-nb6-plus:1.1.0.150 matt-nb6-plus-base:1.1 netbsd-6-0-RC1:1.1 jmcneill-usbmp-base10:1.1 yamt-pagecache-base5:1.1 jmcneill-usbmp-base9:1.1 yamt-pagecache-base4:1.1 jmcneill-usbmp-base8:1.1 jmcneill-usbmp-base7:1.1 jmcneill-usbmp-base6:1.1 jmcneill-usbmp-base5:1.1 jmcneill-usbmp-base4:1.1 jmcneill-usbmp-base3:1.1 jmcneill-usbmp-pre-base2:1.1 jmcneill-usbmp-base2:1.1 netbsd-6:1.1.0.148 netbsd-6-base:1.1 netbsd-5-1-2-RELEASE:1.1 netbsd-5-1-1-RELEASE:1.1 jmcneill-usbmp:1.1.0.146 jmcneill-usbmp-base:1.1 jmcneill-audiomp3:1.1.0.144 jmcneill-audiomp3-base:1.1 yamt-pagecache-base3:1.1 yamt-pagecache-base2:1.1 yamt-pagecache:1.1.0.142 yamt-pagecache-base:1.1 rmind-uvmplock-nbase:1.1 cherry-xenmp:1.1.0.140 cherry-xenmp-base:1.1 bouyer-quota2-nbase:1.1 bouyer-quota2:1.1.0.138 bouyer-quota2-base:1.1 jruoho-x86intr:1.1.0.136 jruoho-x86intr-base:1.1 matt-mips64-premerge-20101231:1.1 matt-nb5-mips64-premerge-20101231:1.1 matt-nb5-pq3:1.1.0.134 matt-nb5-pq3-base:1.1 netbsd-5-1:1.1.0.132 netbsd-5-1-RELEASE:1.1 uebayasi-xip-base4:1.1 uebayasi-xip-base3:1.1 yamt-nfs-mp-base11:1.1 netbsd-5-1-RC4:1.1 matt-nb5-mips64-k15:1.1 uebayasi-xip-base2:1.1 yamt-nfs-mp-base10:1.1 netbsd-5-1-RC3:1.1 netbsd-5-1-RC2:1.1 uebayasi-xip-base1:1.1 netbsd-5-1-RC1:1.1 rmind-uvmplock:1.1.0.130 rmind-uvmplock-base:1.1 yamt-nfs-mp-base9:1.1 uebayasi-xip:1.1.0.128 uebayasi-xip-base:1.1 netbsd-5-0-2-RELEASE:1.1 matt-nb5-mips64-premerge-20091211:1.1 matt-premerge-20091211:1.1 yamt-nfs-mp-base8:1.1 matt-nb5-mips64-u2-k2-k4-k7-k8-k9:1.1 matt-nb4-mips64-k7-u2a-k9b:1.1 matt-nb5-mips64-u1-k1-k5:1.1 yamt-nfs-mp-base7:1.1 matt-nb5-mips64:1.1.0.126 netbsd-5-0-1-RELEASE:1.1 jymxensuspend-base:1.1 yamt-nfs-mp-base6:1.1 yamt-nfs-mp-base5:1.1 yamt-nfs-mp-base4:1.1 jym-xensuspend-nbase:1.1 yamt-nfs-mp-base3:1.1 nick-hppapmap-base4:1.1 nick-hppapmap-base3:1.1 netbsd-5-0:1.1.0.124 netbsd-5-0-RELEASE:1.1 netbsd-5-0-RC4:1.1 netbsd-5-0-RC3:1.1 nick-hppapmap-base2:1.1 netbsd-5-0-RC2:1.1 jym-xensuspend:1.1.0.122 jym-xensuspend-base:1.1 netbsd-5-0-RC1:1.1 haad-dm-base2:1.1 haad-nbase2:1.1 ad-audiomp2:1.1.0.120 ad-audiomp2-base:1.1 netbsd-5:1.1.0.118 netbsd-5-base:1.1 nick-hppapmap:1.1.0.116 nick-hppapmap-base:1.1 matt-mips64-base2:1.1 matt-mips64:1.1.0.114 haad-dm-base1:1.1 wrstuden-revivesa-base-4:1.1 netbsd-4-0-1-RELEASE:1.1 wrstuden-revivesa-base-3:1.1 wrstuden-revivesa-base-2:1.1 wrstuden-fixsa-newbase:1.1 nick-csl-alignment-base5:1.1 haad-dm:1.1.0.112 haad-dm-base:1.1 wrstuden-revivesa-base-1:1.1 simonb-wapbl-nbase:1.1 yamt-pf42-base4:1.1 simonb-wapbl:1.1.0.110 simonb-wapbl-base:1.1 yamt-pf42-base3:1.1 hpcarm-cleanup-nbase:1.1 yamt-pf42-baseX:1.1 yamt-pf42-base2:1.1 yamt-nfs-mp-base2:1.1 wrstuden-revivesa:1.1.0.108 wrstuden-revivesa-base:1.1 yamt-nfs-mp:1.1.0.106 yamt-nfs-mp-base:1.1 yamt-pf42:1.1.0.104 yamt-pf42-base:1.1 ad-socklock-base1:1.1 yamt-lazymbuf-base15:1.1 yamt-lazymbuf-base14:1.1 keiichi-mipv6-nbase:1.1 mjf-devfs2:1.1.0.102 mjf-devfs2-base:1.1 nick-net80211-sync:1.1.0.100 nick-net80211-sync-base:1.1 keiichi-mipv6:1.1.0.98 keiichi-mipv6-base:1.1 bouyer-xeni386-merge1:1.1 matt-armv6-prevmlocking:1.1 wrstuden-fixsa-base-1:1.1 vmlocking2-base3:1.1 netbsd-4-0:1.1.0.96 netbsd-4-0-RELEASE:1.1 bouyer-xeni386-nbase:1.1 yamt-kmem-base3:1.1 cube-autoconf:1.1.0.94 cube-autoconf-base:1.1 yamt-kmem-base2:1.1 bouyer-xeni386:1.1.0.92 bouyer-xeni386-base:1.1 yamt-kmem:1.1.0.90 yamt-kmem-base:1.1 vmlocking2-base2:1.1 reinoud-bufcleanup-nbase:1.1 vmlocking2:1.1.0.88 vmlocking2-base1:1.1 netbsd-4-0-RC5:1.1 matt-nb4-arm:1.1.0.86 matt-nb4-arm-base:1.1 matt-armv6-nbase:1.1 jmcneill-base:1.1 netbsd-4-0-RC4:1.1 mjf-devfs:1.1.0.84 mjf-devfs-base:1.1 bouyer-xenamd64-base2:1.1 vmlocking-nbase:1.1 yamt-x86pmap-base4:1.1 bouyer-xenamd64:1.1.0.82 bouyer-xenamd64-base:1.1 netbsd-4-0-RC3:1.1 yamt-x86pmap-base3:1.1 yamt-x86pmap-base2:1.1 netbsd-4-0-RC2:1.1 yamt-x86pmap:1.1.0.80 yamt-x86pmap-base:1.1 netbsd-4-0-RC1:1.1 matt-armv6:1.1.0.78 matt-armv6-base:1.1 matt-mips64-base:1.1 jmcneill-pm:1.1.0.76 jmcneill-pm-base:1.1 hpcarm-cleanup:1.1.0.74 hpcarm-cleanup-base:1.1 nick-csl-alignment:1.1.0.72 nick-csl-alignment-base:1.1 netbsd-3-1-1-RELEASE:1.1 netbsd-3-0-3-RELEASE:1.1 yamt-idlelwp-base8:1.1 wrstuden-fixsa:1.1.0.70 wrstuden-fixsa-base:1.1 thorpej-atomic:1.1.0.68 thorpej-atomic-base:1.1 reinoud-bufcleanup:1.1.0.66 reinoud-bufcleanup-base:1.1 mjf-ufs-trans:1.1.0.64 mjf-ufs-trans-base:1.1 vmlocking:1.1.0.62 vmlocking-base:1.1 ad-audiomp:1.1.0.60 ad-audiomp-base:1.1 yamt-idlelwp:1.1.0.58 post-newlock2-merge:1.1 newlock2-nbase:1.1 yamt-splraiseipl-base5:1.1 yamt-splraiseipl-base4:1.1 yamt-splraiseipl-base3:1.1 abandoned-netbsd-4-base:1.1 abandoned-netbsd-4:1.1.0.48 netbsd-3-1:1.1.0.54 netbsd-3-1-RELEASE:1.1 netbsd-3-0-2-RELEASE:1.1 yamt-splraiseipl-base2:1.1 netbsd-3-1-RC4:1.1 yamt-splraiseipl:1.1.0.52 yamt-splraiseipl-base:1.1 netbsd-3-1-RC3:1.1 yamt-pdpolicy-base9:1.1 newlock2:1.1.0.50 newlock2-base:1.1 yamt-pdpolicy-base8:1.1 netbsd-3-1-RC2:1.1 netbsd-3-1-RC1:1.1 yamt-pdpolicy-base7:1.1 netbsd-4:1.1.0.56 netbsd-4-base:1.1 yamt-pdpolicy-base6:1.1 chap-midi-nbase:1.1 netbsd-3-0-1-RELEASE:1.1 gdamore-uart:1.1.0.46 gdamore-uart-base:1.1 simonb-timcounters-final:1.1 yamt-pdpolicy-base5:1.1 chap-midi:1.1.0.44 chap-midi-base:1.1 yamt-pdpolicy-base4:1.1 yamt-pdpolicy-base3:1.1 peter-altq-base:1.1 peter-altq:1.1.0.42 yamt-pdpolicy-base2:1.1 elad-kernelauth-base:1.1 elad-kernelauth:1.1.0.40 yamt-pdpolicy:1.1.0.38 yamt-pdpolicy-base:1.1 yamt-uio_vmspace-base5:1.1 simonb-timecounters:1.1.0.36 simonb-timecounters-base:1.1 rpaulo-netinet-merge-pcb:1.1.0.34 rpaulo-netinet-merge-pcb-base:1.1 yamt-uio_vmspace:1.1.0.32 netbsd-3-0:1.1.0.30 netbsd-3-0-RELEASE:1.1 netbsd-3-0-RC6:1.1 yamt-readahead-base3:1.1 netbsd-3-0-RC5:1.1 netbsd-3-0-RC4:1.1 netbsd-3-0-RC3:1.1 yamt-readahead-base2:1.1 netbsd-3-0-RC2:1.1 yamt-readahead-pervnode:1.1 yamt-readahead-perfile:1.1 yamt-readahead:1.1.0.28 yamt-readahead-base:1.1 netbsd-3-0-RC1:1.1 yamt-vop-base3:1.1 netbsd-2-0-3-RELEASE:1.1 netbsd-2-1:1.1.0.26 yamt-vop-base2:1.1 thorpej-vnode-attr:1.1.0.24 thorpej-vnode-attr-base:1.1 netbsd-2-1-RELEASE:1.1 yamt-vop:1.1.0.22 yamt-vop-base:1.1 netbsd-2-1-RC6:1.1 netbsd-2-1-RC5:1.1 netbsd-2-1-RC4:1.1 netbsd-2-1-RC3:1.1 netbsd-2-1-RC2:1.1 netbsd-2-1-RC1:1.1 yamt-lazymbuf:1.1.0.20 yamt-km-base4:1.1 netbsd-2-0-2-RELEASE:1.1 yamt-km-base3:1.1 netbsd-3:1.1.0.18 netbsd-3-base:1.1 yamt-km-base2:1.1 yamt-km:1.1.0.14 yamt-km-base:1.1 kent-audio2:1.1.0.12 kent-audio2-base:1.1 netbsd-2-0-1-RELEASE:1.1 kent-audio1-beforemerge:1.1 netbsd-2:1.1.0.10 netbsd-2-base:1.1 kent-audio1:1.1.0.8 kent-audio1-base:1.1 netbsd-2-0-RELEASE:1.1 netbsd-2-0-RC5:1.1 netbsd-2-0-RC4:1.1 netbsd-2-0-RC3:1.1 netbsd-2-0-RC2:1.1 netbsd-2-0-RC1:1.1 netbsd-2-0:1.1.0.6 netbsd-2-0-base:1.1 ktrace-lwp:1.1.0.4 ktrace-lwp-base:1.1 nathanw_sa_end:1.1.2.2 nathanw_sa_before_merge:1.1 fvdl_fs64_base:1.1 nathanw_sa_base:1.1 nathanw_sa:1.1.0.2; locks; strict; comment @# @; 1.4 date 2021.10.23.07.41.37; author hannken; state Exp; branches; next 1.3; commitid 5DawHryEIMBpiUdD; 1.3 date 2016.02.06.10.40.58; author mlelstv; state Exp; branches; next 1.2; 1.2 date 2014.10.11.06.42.18; author uebayasi; state Exp; branches 1.2.2.1; next 1.1; 1.1 date 2002.12.26.12.31.33; author jdolecek; state Exp; branches 1.1.2.1 1.1.152.1; next ; 1.2.2.1 date 2016.03.19.11.30.31; author skrll; state Exp; branches; next ; 1.1.2.1 date 2002.12.26.12.31.33; author thorpej; state dead; branches; next 1.1.2.2; 1.1.2.2 date 2002.12.29.19.55.59; author thorpej; state Exp; branches; next ; 1.1.152.1 date 2017.12.03.11.38.41; author jdolecek; state Exp; branches; next ; commitid XcIYRZTAh1LmerhA; desc @@ 1.4 log @Move msdosfs_rename() and doscheckpath() to new file msdosfs_rename.c. No functional change. @ text @# $NetBSD: files.msdosfs,v 1.3 2016/02/06 10:40:58 mlelstv Exp $ deffs MSDOSFS define msdosfs: vfs file fs/msdosfs/msdosfs_conv.c msdosfs file fs/msdosfs/msdosfs_denode.c msdosfs file fs/msdosfs/msdosfs_fat.c msdosfs file fs/msdosfs/msdosfs_lookup.c msdosfs file fs/msdosfs/msdosfs_rename.c msdosfs file fs/msdosfs/msdosfs_vfsops.c msdosfs file fs/msdosfs/msdosfs_vnops.c msdosfs file fs/msdosfs/msdosfs_unicode.c msdosfs @ 1.3 log @Split case folding table into separate source file and add full copyright and permission notice from http://www.unicode.org/copyright.html @ text @d1 1 a1 1 # $NetBSD: files.msdosfs,v 1.2 2014/10/11 06:42:18 uebayasi Exp $ d10 1 @ 1.2 log @Define filesystem attributes with vfs dependency. @ text @d1 1 a1 1 # $NetBSD$ d12 1 @ 1.2.2.1 log @Sync with HEAD @ text @d1 1 a1 1 # $NetBSD: files.msdosfs,v 1.3 2016/02/06 10:40:58 mlelstv Exp $ a11 1 file fs/msdosfs/msdosfs_unicode.c msdosfs @ 1.1 log @move msdosfs code from sys/msdosfs to sys/fs/msdosfs @ text @d1 1 a1 1 # $NetBSD: files.msdosfs,v 1.2 2002/12/25 17:23:22 jdolecek Exp $ d5 1 @ 1.1.152.1 log @update from HEAD @ text @d1 1 a1 1 # $NetBSD$ a4 1 define msdosfs: vfs a10 1 file fs/msdosfs/msdosfs_unicode.c msdosfs @ 1.1.2.1 log @file files.msdosfs was added on branch nathanw_sa on 2002-12-29 19:55:59 +0000 @ text @d1 10 @ 1.1.2.2 log @With with HEAD. @ text @a0 10 # $NetBSD: files.msdosfs,v 1.1.2.1 2002/12/29 19:55:59 thorpej Exp $ deffs MSDOSFS file fs/msdosfs/msdosfs_conv.c msdosfs file fs/msdosfs/msdosfs_denode.c msdosfs file fs/msdosfs/msdosfs_fat.c msdosfs file fs/msdosfs/msdosfs_lookup.c msdosfs file fs/msdosfs/msdosfs_vfsops.c msdosfs file fs/msdosfs/msdosfs_vnops.c msdosfs @