From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1762129AbdJRH3V (ORCPT ); Wed, 18 Oct 2017 03:29:21 -0400 Received: from mail-wm0-f66.google.com ([74.125.82.66]:54935 "EHLO mail-wm0-f66.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752551AbdJRH3T (ORCPT ); Wed, 18 Oct 2017 03:29:19 -0400 X-Google-Smtp-Source: ABhQp+TYP1i4UZl01OiYPoQmDtuTRccSlaCJhKAIxjA50RqBqSEtu3su6gk7sbn7tbFntRE/0xQqkg== Date: Wed, 18 Oct 2017 09:29:15 +0200 From: Pali =?utf-8?B?Um9ow6Fy?= To: Greg KH , Alan Cox Cc: dvhart@infradead.org, Andy Shevchenko , LKML , platform-driver-x86@vger.kernel.org, Andy Lutomirski , quasisec@google.com, rjw@rjwysocki.net, mjg59@google.com, hch@lst.de, Mario Limonciello Subject: Re: [PATCH v9 17/17] tools/wmi: add a sample for dell smbios communication over WMI Message-ID: <20171018072915.xowh23m5vr2amqcp@pali> References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: User-Agent: NeoMutt/20170113 (1.7.2) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tuesday 17 October 2017 13:22:01 Mario Limonciello wrote: > diff --git a/tools/wmi/dell-smbios-example.c b/tools/wmi/dell-smbios-example.c > new file mode 100644 > index 000000000000..69c4dd9c6056 > --- /dev/null > +++ b/tools/wmi/dell-smbios-example.c > @@ -0,0 +1,214 @@ > +/* > + * Sample application for SMBIOS communication over WMI interface > + * Performs the following: > + * - Simple class/select lookup for TPM information > + * - Simple query of known tokens and their values > + * - Simple activation of a token > + * > + * Copyright (C) 2017 Dell, Inc. > + * > + * This program is free software; you can redistribute it and/or modify > + * it under the terms of the GNU General Public License version 2 as > + * published by the Free Software Foundation. > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > + > +/* if uapi header isn't installed, this might not yet exist */ > +#ifndef __packed > +#define __packed __attribute__((packed)) > +#endif > +#include > + > +/* It would be better to discover these using udev, but for a simple > + * application they're hardcoded > + */ > +static const char *ioctl_devfs = "/dev/wmi/dell-smbios"; > +static const char *token_sysfs = > + "/sys/bus/platform/devices/dell-smbios.0/tokens"; > +static const char *buffer_sysfs = > + "/sys/bus/wmi/devices/A80593CE-A997-11DA-B012-B622A1EF5492/required_buffer_size"; Greg, Alan, could userspace expects those paths to be part of kernel <--> userspace ABI? Looking e.g. at "dell-smbios.0" name and I'm not sure if this is something which is going to be stable between kernel versions and forever as part of ABI. Also if everything is part of smbios API, would not it better to provide everything via IOCTL over /dev/wmi/dell-smbios? I think this code is too complicated, just because for correct IOCTL buffer size it needs to read other properties via sysfs, etc... For me it looks like that it is not a good API for userspace developers. -- Pali Rohár pali.rohar@gmail.com