size_t column_index)
{
char *str = NULL;
+ const char *chrdrv;
+
switch(column_id) {
case COL_TYPE:
if (scols_line_set_data(ln, column_index, "CHR"))
err(EXIT_FAILURE, _("failed to add output data"));
return true;
+ case COL_CHRDRV:
+ chrdrv = get_chrdrv(major(file->stat.st_rdev));
+ if (chrdrv)
+ str = strdup(chrdrv);
+ else
+ xasprintf(&str, "%u",
+ major(file->stat.st_rdev));
+ break;
case COL_DEVICE:
xasprintf(&str, "%u:%u",
major(file->stat.st_rdev),
static struct colinfo infos[] = {
[COL_ASSOC] = { "ASSOC", 0, SCOLS_FL_RIGHT, SCOLS_JSON_STRING,
N_("association between file and process") },
+ [COL_CHRDRV] = { "CHRDRV", 0, SCOLS_FL_RIGHT, SCOLS_JSON_STRING,
+ N_("charcter device driver name resolved by /proc/devices") },
[COL_COMMAND] = { "COMMAND", 15, SCOLS_FL_TRUNC, SCOLS_JSON_STRING,
N_("command of the process opening the file") },
[COL_DELETED] = { "DELETED", 0, SCOLS_FL_RIGHT, SCOLS_JSON_BOOLEAN,