static ssize_t process_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { struct kgsl_process_private *priv; unsigned int val = 0; mutex_lock(&kgsl_driver.process_mutex); priv = _get_priv_from_kobj(kobj); if (priv == NULL) { mutex_unlock(&kgsl_driver.process_mutex); return 0; } if (!strncmp(attr->attr.name, "user", 4)) val = priv->stats.user; if (!strncmp(attr->attr.name, "user_max", 8)) val = priv->stats.user_max; if (!strncmp(attr->attr.name, "mapped", 6)) val = priv->stats.mapped; if (!strncmp(attr->attr.name, "mapped_max", 10)) val = priv->stats.mapped_max; if (!strncmp(attr->attr.name, "flushes", 7)) val = priv->stats.flushes; mutex_unlock(&kgsl_driver.process_mutex); return snprintf(buf, PAGE_SIZE, "%u\n", val); }
static ssize_t process_show_flushes(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { struct kgsl_process_private *priv; int ret = 0; mutex_lock(&kgsl_driver.process_mutex); priv = _get_priv_from_kobj(kobj); if (priv) ret += sprintf(buf, "%d\n", priv->stats.flushes); mutex_unlock(&kgsl_driver.process_mutex); return ret; }