~ubuntu-branches/ubuntu/edgy/cdparanoia/edgy

« back to all changes in this revision

Viewing changes to paranoia/isort.h

  • Committer: Bazaar Package Importer
  • Author(s): Dale E Martin
  • Date: 2002-03-15 11:23:27 UTC
  • Revision ID: james.westby@ubuntu.com-20020315112327-7e08i0np6duvv5ep
Tags: upstream-3a9.8
ImportĀ upstreamĀ versionĀ 3a9.8

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
/***
 
2
 * CopyPolicy: GNU Public License 2 applies
 
3
 * Copyright (C) by Monty (xiphmont@mit.edu)
 
4
 ***/
 
5
 
 
6
#ifndef _ISORT_H_
 
7
#define _ISORT_H_
 
8
 
 
9
typedef struct sort_link{
 
10
  struct sort_link *next;
 
11
} sort_link;
 
12
 
 
13
typedef struct sort_info{
 
14
  int16_t *vector;                /* vector (storage doesn't belong to us) */
 
15
 
 
16
  long  *abspos;                 /* pointer for side effects */
 
17
  long  size;                    /* vector size */
 
18
 
 
19
  long  maxsize;                 /* maximum vector size */
 
20
 
 
21
  long sortbegin;                /* range of contiguous sorted area */
 
22
  long lo,hi;                    /* current post, overlap range */
 
23
  int  val;                      /* ...and val */
 
24
 
 
25
  /* sort structs */
 
26
  sort_link **head;           /* sort buckets (65536) */
 
27
 
 
28
  long *bucketusage;          /*  of used buckets (65536) */
 
29
  long lastbucket;
 
30
  sort_link *revindex;
 
31
 
 
32
} sort_info;
 
33
 
 
34
extern sort_info *sort_alloc(long size);
 
35
extern void sort_unsortall(sort_info *i);
 
36
extern void sort_setup(sort_info *i,int16_t *vector,long *abspos,long size,
 
37
                       long sortlo, long sorthi);
 
38
extern void sort_free(sort_info *i);
 
39
extern sort_link *sort_getmatch(sort_info *i,long post,long overlap,int value);
 
40
extern sort_link *sort_nextmatch(sort_info *i,sort_link *prev);
 
41
 
 
42
#define is(i) (i->size)
 
43
#define ib(i) (*i->abspos)
 
44
#define ie(i) (i->size+*i->abspos)
 
45
#define iv(i) (i->vector)
 
46
#define ipos(i,l) (l-i->revindex)
 
47
 
 
48
#endif
 
49