diff options
author | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-02-20 16:47:39 +0000 |
---|---|---|
committer | Gwenolé Beauchesne <gbeauchesne@mandriva.org> | 2003-02-20 16:47:39 +0000 |
commit | a5a39243b3a51c0187a108d325948155d0aa4fc0 (patch) | |
tree | f060b709384d7ea1bb3e6ce231d4d0c434d3b4ed /mdk-stage1/dietlibc/libcruft | |
parent | 7cbf0dbf5c98d10023125b06b5d4b737c246aacc (diff) | |
download | drakx-backup-do-not-use-a5a39243b3a51c0187a108d325948155d0aa4fc0.tar drakx-backup-do-not-use-a5a39243b3a51c0187a108d325948155d0aa4fc0.tar.gz drakx-backup-do-not-use-a5a39243b3a51c0187a108d325948155d0aa4fc0.tar.bz2 drakx-backup-do-not-use-a5a39243b3a51c0187a108d325948155d0aa4fc0.tar.xz drakx-backup-do-not-use-a5a39243b3a51c0187a108d325948155d0aa4fc0.zip |
Merge with dietlibc 0.22-1mdk
Diffstat (limited to 'mdk-stage1/dietlibc/libcruft')
-rw-r--r-- | mdk-stage1/dietlibc/libcruft/alphasort64.c | 6 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/libcruft/scandir64.c | 47 | ||||
-rw-r--r-- | mdk-stage1/dietlibc/libcruft/sysconf.c | 3 |
3 files changed, 56 insertions, 0 deletions
diff --git a/mdk-stage1/dietlibc/libcruft/alphasort64.c b/mdk-stage1/dietlibc/libcruft/alphasort64.c new file mode 100644 index 000000000..520086352 --- /dev/null +++ b/mdk-stage1/dietlibc/libcruft/alphasort64.c @@ -0,0 +1,6 @@ +#include <dirent.h> +#include <string.h> + +int alphasort64(const struct dirent64 **a, const struct dirent64 **b) { + return strcmp((*a)->d_name,(*b)->d_name); +} diff --git a/mdk-stage1/dietlibc/libcruft/scandir64.c b/mdk-stage1/dietlibc/libcruft/scandir64.c new file mode 100644 index 000000000..c1bdc3415 --- /dev/null +++ b/mdk-stage1/dietlibc/libcruft/scandir64.c @@ -0,0 +1,47 @@ +#include <stdlib.h> +#include <dirent.h> +#include <string.h> + +int scandir64(const char *dir, struct dirent64 ***namelist, + int (*select)(const struct dirent64 *), + int (*compar)(const struct dirent64 **, const struct dirent64 **)) { + DIR* d; + struct dirent64 *D; + int num=0; + if (!(d=opendir(dir))) + return -1; + *namelist=0; + while ((D=readdir64(d))) { + if (select==0 || select(D)) { + struct dirent64 **tmp; + ++num; +/* printf("realloc %p,%d -> ",*namelist,num*sizeof(struct dirent**)); */ + if (!(tmp=realloc(*namelist,num*sizeof(struct dirent64**))) || + !(tmp[num-1]=malloc(sizeof(struct dirent64)))) { + int i; + for (i=0; i<num-1; ++i) free(tmp[i]); + free(*namelist); + closedir(d); + return -1; + } + memccpy(tmp[num-1]->d_name,D->d_name,0,NAME_MAX); + *namelist=tmp; +/* printf("%p; tmp[num-1(%d)]=%p\n",*namelist,num-1,tmp[num-1]); */ + } + } + closedir(d); +#if 0 + { + int i; + puts("pre-qsort:\n"); + for (i=0; i<num-1; ++i) { + puts((*namelist)[i]->d_name); + } + puts("post-qsort:\n"); + } +#endif +// qsort(&(*namelist)[0],num,sizeof(struct dirent*),(int (*)(const void*,const void*))(compar)); + if (compar) + qsort(*namelist,num,sizeof(struct dirent64*),(int (*)(const void*,const void*))(compar)); + return num; +} diff --git a/mdk-stage1/dietlibc/libcruft/sysconf.c b/mdk-stage1/dietlibc/libcruft/sysconf.c index 8e36ec4e9..e9c15cb66 100644 --- a/mdk-stage1/dietlibc/libcruft/sysconf.c +++ b/mdk-stage1/dietlibc/libcruft/sysconf.c @@ -32,6 +32,9 @@ long sysconf(int name) case _SC_ARG_MAX: return ARG_MAX; + case _SC_NGROUPS_MAX: + return NGROUPS_MAX; + case _SC_NPROCESSORS_ONLN: return __sc_nr_cpus(); |