/* Generic read/write functions that call the specific functions of the atttributes...  */
static ssize_t efivar_attr_show(struct kobject *kobj, struct attribute *attr, char *buf)
/* Generic read/write functions that call the specific functions of the atttributes...  */
static ssize_t efivar_attr_show(struct kobject *kobj, struct attribute *attr, char *buf)
{
	struct efivar_entry *var = to_efivar_entry(kobj);
	struct efivar_attribute *efivar_attr = to_efivar_attr(attr);
	ssize_t ret = -EIO;
	if (!capable(CAP_SYS_ADMIN))
		return -EACCES;
	if (efivar_attr->show) {
		ret = efivar_attr->show(var, buf);
	}
	return ret;
}