-
-char *find_dev(dev, type)
-register dev_t dev;
-register int type;
-{
- register int dfd = Open("/dev", 0);
- struct direct dir;
- struct stat statb;
- static char devname[DIRSIZ + 1];
-
- strcpy(devname, "/dev/");
- while(Read(dfd, &dir, sizeof dir) > 0)
- {
- if (dir.d_ino == 0)
- continue;
- strncpy(devname + 5, dir.d_name, DIRSIZ);
- devname[DIRSIZ] = '\0';
- if (stat(devname, &statb))
- perror(devname);
- else
- {
- if ((statb.st_mode&S_IFMT) != type)
- continue;
- if (dev == statb.st_rdev)
- {
- close(dfd);
- return devname;
- }
- }
- }
- close(dfd);
- fprintf(stderr, "Can't find device %d,%d\n", major(dev), minor(dev));
- exit(7);
-}