#include "system.h"
#include <rpmiotypes.h>
#include <rpmtag.h>
#include <rpmdb.h>
#include "debug.h"
Go to the source code of this file.
|
#define | NATURAL |
|
#define | THRESHOLD 16 /* Best choice for natural merge cut-off. */ |
|
#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) |
|
|
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). More...
|
|
#define CCOPY_ELT |
( |
|
src, |
|
|
|
dst, |
|
|
|
i |
|
) |
| |
#define CCOPY_LIST |
( |
|
src, |
|
|
|
dst, |
|
|
|
last |
|
) |
| |
Value:(unsigned char **) \
((unsigned char *)0 + \
(((
unsigned char *)p +
PSIZE - 1 - (
unsigned char *) 0) & ~(
PSIZE - 1)))
Definition at line 90 of file merge.c.
Referenced by rpm_mergesort(), and setup().
#define ICOPY_ELT |
( |
|
src, |
|
|
|
dst, |
|
|
|
i |
|
) |
| |
#define ICOPY_LIST |
( |
|
src, |
|
|
|
dst, |
|
|
|
last |
|
) |
| |
#define ISIZE sizeof(int) |
#define PSIZE sizeof(unsigned char *) |
#define reverse |
( |
|
bot, |
|
|
|
top |
|
) |
| |
Value:{ \
do { \
tmp = *a; *a++ = *s; *s++ = tmp; \
}
const char const char size_t size
Definition at line 94 of file merge.c.
Referenced by insertionsort(), and setup().
#define THRESHOLD 16 /* Best choice for natural merge cut-off. */ |
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 b, CCOPY_ELT, CCOPY_LIST, cmp(), errno, EVAL, i, ICOPY_ELT, ICOPY_LIST, ISIZE, PSIZE, setup(), and size.
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 |