File: saveq.h

package info (click to toggle)
rscheme 0.7.2-1.1
  • links: PTS
  • area: main
  • in suites: slink
  • size: 10,672 kB
  • ctags: 12,430
  • sloc: lisp: 37,104; ansic: 29,763; cpp: 2,630; sh: 1,677; makefile: 568; yacc: 202; lex: 175; perl: 33
file content (39 lines) | stat: -rw-r--r-- 1,116 bytes parent folder | download | duplicates (4)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/*-----------------------------------------------------------------*-C-*---
 * File:    handc/heapi/saveq.h
 *
 *          Copyright (C)1997 Donovan Kolbly <d.kolbly@rscheme.org>
 *          as part of the RScheme project, licensed for free use.
 *          See <http://www.rscheme.org/> for the latest information.
 *
 * File version:     1.6
 * File mod date:    1997.11.29 23:10:44
 * System build:     v0.7.2, 97.12.21
 *
 *------------------------------------------------------------------------*/

#ifndef _H_HEAPI_SAVEQ
#define _H_HEAPI_SAVEQ

#include <rscheme/scheme.h>

/* a very primitive SaveQueue implementation */

struct queue_entry {
  obj    thing;
  obj    orig_class;
};

typedef struct {
  struct queue_entry *contents;
  UINT_32  count, cap;
  UINT_32  ptr;
} SaveQueue;

void hi_init_queue( SaveQueue *q );
void hi_init_queue_n( SaveQueue *q, UINT_32 init_cap );
void hi_enqueue_item( SaveQueue *q, obj item );
void hi_enqueue_item2( SaveQueue *q, obj item, obj orig_class );
struct queue_entry *hi_dequeue_item( SaveQueue *q );
void hi_free_queue( SaveQueue *q );

#endif /* _H_HEAPI_SAVEQ */