}
}
-static devfs_handle_t devfs_handle;
-
#define WR(c,r,v) pi_write_regr(PI,c,r,v)
#define RR(c,r) (pi_read_regr(PI,c,r))
if (PG.present) pi_release(PI);
return -1;
}
- devfs_handle = devfs_mk_dir (NULL, "pg", NULL);
- devfs_register_series (devfs_handle, "%u", 4, DEVFS_FL_DEFAULT,
- major, 0, S_IFCHR | S_IRUSR | S_IWUSR,
+ devfs_mk_dir (NULL, "pg", NULL);
+ for (unit=0; unit<PG_UNITS; unit++)
+ if (PG.present) {
+ char name[16];
+ sprintf(name, "pg/%u", unit);
+ devfs_register(NULL, name, DEVFS_FL_DEFAULT,
+ major, unit, S_IFCHR | S_IRUSR | S_IWUSR,
&pg_fops, NULL);
+ }
return 0;
}
{
int unit;
- devfs_unregister (devfs_handle);
+ for (unit=0; unit<PG_UNITS; unit++)
+ if (PG.present)
+ devfs_remove("pg/%u", unit);
+
+ devfs_remove ("pg");
unregister_chrdev(major,name);
for (unit=0;unit<PG_UNITS;unit++)
}
}
-static devfs_handle_t devfs_handle;
-
#define WR(c,r,v) pi_write_regr(PI,c,r,v)
#define RR(c,r) (pi_read_regr(PI,c,r))
return -1;
}
- devfs_handle = devfs_mk_dir (NULL, "pt", NULL);
- devfs_register_series (devfs_handle, "%u", 4, DEVFS_FL_DEFAULT,
- major, 0, S_IFCHR | S_IRUSR | S_IWUSR,
+ devfs_mk_dir (NULL, "pt", NULL);
+ for (unit=0;unit<PT_UNITS;unit++)
+ if (PT.present) {
+ char name[16];
+ sprintf(name, "pt/%d", unit);
+ devfs_register(NULL, name, DEVFS_FL_DEFAULT,
+ major, unit, S_IFCHR | S_IRUSR | S_IWUSR,
&pt_fops, NULL);
- devfs_register_series (devfs_handle, "%un", 4, DEVFS_FL_DEFAULT,
- major, 128, S_IFCHR | S_IRUSR | S_IWUSR,
+ sprintf(name, "pt/%dn", unit);
+ devfs_register(NULL, name, DEVFS_FL_DEFAULT,
+ major, 128 + unit, S_IFCHR | S_IRUSR | S_IWUSR,
&pt_fops, NULL);
+ }
return 0;
}
static void __exit pt_exit(void)
{
int unit;
- devfs_unregister (devfs_handle);
+ for (unit=0;unit<PT_UNITS;unit++)
+ if (PT.present) {
+ devfs_remove("pt/%d", unit);
+ devfs_remove("pt/%dn", unit);
+ }
+ devfs_remove("pt");
unregister_chrdev(major,name);
for (unit=0;unit<PT_UNITS;unit++)
if (PT.present)