|
rpm 5.3.12
|
#include "system.h"#include <rpmiotypes.h>#include <rpmtag.h>#include <rpmdb.h>#include "debug.h"
Go to the source code of this file.
Defines | |
| #define | NATURAL |
| #define | THRESHOLD 16 |
| #define | ISIZE sizeof(int) |
| #define | PSIZE sizeof(unsigned char *) |
| #define | ICOPY_LIST(src, dst, last) |
| #define | ICOPY_ELT(src, dst, i) |
| #define | CCOPY_LIST(src, dst, last) |
| #define | CCOPY_ELT(src, dst, i) |
| #define | EVAL(p) |
| #define | swap(a, b) |
| #define | reverse(bot, top) |
Functions | |
| static void | insertionsort (unsigned char *a, size_t n, size_t size, int(*cmp)(const void *, const void *)) |
| static void | setup (unsigned char *list1, unsigned char *list2, size_t n, size_t size, int(*cmp)(const void *, const void *)) |
| int | rpm_mergesort (void *base, size_t nmemb, size_t size, int(*cmp)(const void *, const void *)) |
| Mergesort, same arguments as qsort(2). | |
| #define CCOPY_ELT | ( | src, | |
| dst, | |||
| i | |||
| ) |
do \ *dst++ = *src++; \ while (i -= 1)
Definition at line 79 of file merge.c.
Referenced by rpm_mergesort().
| #define CCOPY_LIST | ( | src, | |
| dst, | |||
| last | |||
| ) |
do \ *dst++ = *src++; \ while (src < last)
Definition at line 75 of file merge.c.
Referenced by rpm_mergesort().
| #define EVAL | ( | p | ) |
| #define ICOPY_ELT | ( | src, | |
| dst, | |||
| i | |||
| ) |
| #define ICOPY_LIST | ( | src, | |
| dst, | |||
| last | |||
| ) |
Definition at line 66 of file merge.c.
Referenced by rpm_mergesort().
| #define ISIZE sizeof(int) |
Definition at line 64 of file merge.c.
Referenced by rpm_mergesort().
| #define PSIZE sizeof(unsigned char *) |
Definition at line 65 of file merge.c.
Referenced by rpm_mergesort().
| #define reverse | ( | bot, | |
| top | |||
| ) |
{ \
s = top; \
do { \
i = (int) size; \
do { \
tmp = *bot; *bot++ = *s; *s++ = tmp; \
} while (--i); \
s -= size2; \
} while(bot < s); \
}
Definition at line 102 of file merge.c.
Referenced by dnlInitIterator(), fsmSetup(), mapInitIterator(), and setup().
| #define swap | ( | a, | |
| b | |||
| ) |
{ \
s = b; \
i = (int) size; \
do { \
tmp = *a; *a++ = *s; *s++ = tmp; \
} while (--i); \
a -= size; \
}
Definition at line 94 of file merge.c.
Referenced by insertionsort(), and setup().
| static void insertionsort | ( | unsigned char * | a, |
| size_t | n, | ||
| size_t | size, | ||
| int(*)(const void *, const void *) | cmp | ||
| ) | [static] |
| int rpm_mergesort | ( | void * | base, |
| size_t | nmemb, | ||
| size_t | size, | ||
| int(*)(const void *, const void *) | cmp | ||
| ) |
Mergesort, same arguments as qsort(2).
Definition at line 213 of file merge.c.
References CCOPY_ELT, CCOPY_LIST, errno, EVAL, ICOPY_ELT, ICOPY_LIST, ISIZE, PSIZE, and setup().
Referenced by rpmmiSort().
| static void setup | ( | unsigned char * | list1, |
| unsigned char * | list2, | ||
| size_t | n, | ||
| size_t | size, | ||
| int(*)(const void *, const void *) | cmp | ||
| ) | [static] |
Definition at line 141 of file merge.c.
References EVAL, insertionsort(), reverse, swap, and THRESHOLD.
Referenced by rpm_mergesort().
1.7.4