Received: by 2002:a25:8b91:0:0:0:0:0 with SMTP id j17csp3045833ybl; Mon, 20 Jan 2020 14:47:35 -0800 (PST) X-Google-Smtp-Source: APXvYqz4OQzK3NVJN2XClLlBXM5zhQw/TA6iFNbx2UXloyJTHazREvEJMBUcR+wjUdb6y3ADD1fR X-Received: by 2002:aca:4306:: with SMTP id q6mr882859oia.54.1579560455332; Mon, 20 Jan 2020 14:47:35 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1579560455; cv=none; d=google.com; s=arc-20160816; b=As9TIpnwPV35MMvZvDmfZvNO4NNu468AGZy8WRnYh4f1+a72mPeR79btEYqoj8Hxtm l0EwZfuZJ/mXxJlb4imd5KkoAy29ZlLUPicSNHyt3EB0m2SvnaMPl0cirxxiPuMFaN93 Amr9UB/jnSCBQHxdDO9Te5id7gjN5EbSJpE9VEtxH/zsI71Cu6pf7yCzN/6NAefkhdgC gWkgBnPStgXVC1oUckNusI9fGveDRdipf2O7FB2yO6MzfXs4tAOs3SQsozzHR7LUyJ9q gkeO8wR6hBIS6kKvMZv+G1LvOX7dOOPjdQVVXQ7StvctuvdjEv21DhM6EzBmgDfqEbcA i2vg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:in-reply-to:content-transfer-encoding :content-disposition:mime-version:references:message-id:subject:cc :to:from:date; bh=0WWJNpghnUREypDm7abK11Ux0JQPcfqxPFzBbCln4h0=; b=YGbK7iVgYo3+f+X3VafqTt7KO8bbkiSTbXC7b0DllkSFx5SNA+f1xz4FCMKPF3x62W b4B/vtl/aS7FfRyCm2kqU2Md2H6dPvvIZYvrF2Fb5nq+kS+loLQuV5qJyshR5XUE6+TG swWHsIA6z5yM3mIRVfD+g93JT3DewGqeKfy1iXLohnnPH1HYJgf0M4blNTviRvJYDL1H /hESd7+tppktDHrO/ijDW/B5CYW0vHFO5+bwn122OwhYTVwRhzi90nLIVs6HztghEWb9 MrsyIUNqjswnT0ThHflZbGaI3Cl/vnV1f/x18xNOHVS61Xn+xEXHvtA0ALv2J4qMVYfH S6Ig== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i8si18131191oih.206.2020.01.20.14.47.23; Mon, 20 Jan 2020 14:47:35 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726936AbgATWqd (ORCPT + 99 others); Mon, 20 Jan 2020 17:46:33 -0500 Received: from zeniv.linux.org.uk ([195.92.253.2]:56152 "EHLO ZenIV.linux.org.uk" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726752AbgATWqc (ORCPT ); Mon, 20 Jan 2020 17:46:32 -0500 Received: from viro by ZenIV.linux.org.uk with local (Exim 4.92.3 #3 (Red Hat Linux)) id 1itfoP-00CHqS-Q4; Mon, 20 Jan 2020 22:46:25 +0000 Date: Mon, 20 Jan 2020 22:46:25 +0000 From: Al Viro To: Pali =?iso-8859-1?Q?Roh=E1r?= Cc: OGAWA Hirofumi , linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org, "Theodore Y. Ts'o" , Namjae Jeon , Gabriel Krisman Bertazi Subject: Re: vfat: Broken case-insensitive support for UTF-8 Message-ID: <20200120224625.GE8904@ZenIV.linux.org.uk> References: <20200119221455.bac7dc55g56q2l4r@pali> <87sgkan57p.fsf@mail.parknet.co.jp> <20200120110438.ak7jpyy66clx5v6x@pali> <875zh6pc0f.fsf@mail.parknet.co.jp> <20200120214046.f6uq7rlih7diqahz@pali> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20200120214046.f6uq7rlih7diqahz@pali> Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Jan 20, 2020 at 10:40:46PM +0100, Pali Roh?r wrote: > Ok, I did some research. It took me it longer as I thought as lot of > stuff is undocumented and hard to find all relevant information. > > So... fastfat.sys is using ntos function RtlUpcaseUnicodeString() which > takes UTF-16 string and returns upper case UTF-16 string. There is no > mapping table in fastfat.sys driver itself. Er... Surely it's OK to just tabulate that function on 65536 values and see how could that be packed into something more compact? Whatever the license of that function might be, this should fall under interoperability exceptions... Actually, I wouldn't be surprised if f(x) - x would turn out to be constant on large enough intervals to provide sufficiently compact representation... What am I missing here?