Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au>
extern struct supertype *super_by_version(int vers, int minor);
extern struct supertype *guess_super(int fd);
extern struct supertype *super_by_version(int vers, int minor);
extern struct supertype *guess_super(int fd);
+#ifdef UCLIBC
+ struct FTW {};
+# define FTW_PHYS 1
+#else
+# define __USE_XOPEN_EXTENDED
+# include <ftw.h>
+# ifdef __dietlibc__
+# define FTW_PHYS 1
+# endif
+#endif
+
+extern int add_dev(const char *name, const struct stat *stb, int flag, struct FTW *s);
+
extern int Manage_ro(char *devname, int fd, int readonly);
extern int Manage_runstop(char *devname, int fd, int runstop, int quiet);
extern int Manage_ro(char *devname, int fd, int readonly);
extern int Manage_runstop(char *devname, int fd, int runstop, int quiet);
mknod(name, S_IFBLK | 0600, makedev(major, minor+i));
chown(name, stb2.st_uid, stb2.st_gid);
chmod(name, stb2.st_mode & 07777);
mknod(name, S_IFBLK | 0600, makedev(major, minor+i));
chown(name, stb2.st_uid, stb2.st_gid);
chmod(name, stb2.st_mode & 07777);
+ stat(name, &stb2);
+ add_dev(name, &stb2, 0, NULL);
chown(dev, stb.st_uid, stb.st_gid);
chmod(dev, stb.st_mode & 07777);
}
chown(dev, stb.st_uid, stb.st_gid);
chmod(dev, stb.st_mode & 07777);
}
+ stat(dev, &stb);
+ add_dev(dev, &stb, 0, NULL);
make_parts(dev,autof);
}
}
make_parts(dev,autof);
}
}
int devlist_ready = 0;
#ifdef UCLIBC
int devlist_ready = 0;
#ifdef UCLIBC
+int add_dev(const char *name, const struct stat *stb, int flag, struct FTW *s)
+{
+}
char *map_dev(int major, int minor)
{
#if 0
char *map_dev(int major, int minor)
{
#if 0
-#define __USE_XOPEN_EXTENDED
-#include <ftw.h>
+#ifdef __dietlibc__
+int add_dev_1(const char *name, const struct stat *stb, int flag)
+{
+ return add_dev(name, stb, flag, NULL);
+}
+int nftw(const char *path, int (*han)(const char *name, const struct stat *stb, int flag, struct FTW *s), int nopenfd, int flags)
+{
+ ftw(path, add_dev_1, nopenfd);
+}
+#endif
int add_dev(const char *name, const struct stat *stb, int flag, struct FTW *s)
int add_dev(const char *name, const struct stat *stb, int flag, struct FTW *s)
-#else
-int add_dev(const char *name, const struct stat *stb, int flag)
-#endif
{
if ((stb->st_mode&S_IFMT)== S_IFBLK) {
char *n = strdup(name);
{
if ((stb->st_mode&S_IFMT)== S_IFBLK) {
char *n = strdup(name);
struct devmap *p;
char *std = NULL, *nonstd=NULL;
if (!devlist_ready) {
struct devmap *p;
char *std = NULL, *nonstd=NULL;
if (!devlist_ready) {
nftw("/dev", add_dev, 10, FTW_PHYS);
nftw("/dev", add_dev, 10, FTW_PHYS);
-#else
- ftw("/dev", add_dev, 10);
-#endif