summaryrefslogtreecommitdiff
path: root/block_device.c
diff options
context:
space:
mode:
Diffstat (limited to 'block_device.c')
-rw-r--r--block_device.c64
1 files changed, 0 insertions, 64 deletions
diff --git a/block_device.c b/block_device.c
deleted file mode 100644
index 87e7209..0000000
--- a/block_device.c
+++ /dev/null
@@ -1,64 +0,0 @@
-#include "internal.h"
-#include <dirent.h>
-#include <string.h>
-#include <stdio.h>
-
-const char block_device_usage[] = "block_device mount-point";
-
-static dev_t *my_device;
-static char *my_device_name;
-
-int
-match_mount(const struct FileInfo * i) {
- if ( S_ISBLK(i->stat.st_mode)
- && (i->stat.st_rdev == *my_device)) {
- my_device_name=strdup(i->source);
- return 1;
- } else
- return 0;
-}
-
-extern int
-block_device_main(struct FileInfo * i, int argc, char * * argv)
-{
- char *device_name = block_device(argv[1],i);
- if ( device_name == NULL )
- return -1;
- printf("%s\n", device_name);
- exit(0);
-}
-
-char * block_device(const char *name, struct FileInfo *i)
-{
- struct stat s;
- char *buf;
- int dinam=0;
-
- if ( stat(name, &s) ) return (char *) NULL;
- if (!i) {
- i=(struct FileInfo*)malloc(sizeof(struct FileInfo));
- dinam = 1;
- }
- memset((void *)i, 0, sizeof(struct FileInfo));
- my_device=(dev_t *)malloc(sizeof(dev_t));
- *my_device = s.st_dev;
- my_device_name = NULL;
- i->source = "/dev";
- i->stat = s;
- i->processDirectoriesAfterTheirContents=1;
- descend(i, match_mount);
- if (dinam) free(i);
- if ( my_device_name ) {
- buf = strdup(my_device_name);
- free(my_device);
- free(my_device_name);
- return buf;
- } else {
- fprintf( stderr
- ,"Can't find special file for block device %d, %d.\n"
- ,(int) *my_device >> 8 & 0xff
- ,(int) *my_device & 0xff);
- free(my_device);
- return (char *) NULL;
- }
-}