Subversion Repositories shark

Rev

Rev 1618 | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
2 pj 1
/* Project:     OSLib
2
 * Description: The OS Construction Kit
3
 * Date:                1.6.2000
4
 * Idea by:             Luca Abeni & Gerardo Lamastra
5
 *
6
 * OSLib is an SO project aimed at developing a common, easy-to-use
7
 * low-level infrastructure for developing OS kernels and Embedded
8
 * Applications; it partially derives from the HARTIK project but it
9
 * currently is independently developed.
10
 *
11
 * OSLib is distributed under GPL License, and some of its code has
12
 * been derived from the Linux kernel source; also some important
13
 * ideas come from studying the DJGPP go32 extender.
14
 *
15
 * We acknowledge the Linux Community, Free Software Foundation,
16
 * D.J. Delorie and all the other developers who believe in the
17
 * freedom of software and ideas.
18
 *
19
 * For legalese, check out the included GPL license.
20
 */
21
 
22
#include <stdlib.h>
23
#include <stdio.h>
24
#include <hw-data.h>
25
#include "event.h"
26
 
40 pj 27
FILE(Event-Stub);
2 pj 28
 
29
extern struct event *freeevents;
30
extern struct event *firstevent;
31
extern TIME actTime;
32
 
33
 
34
void called(void)
35
{
40 pj 36
        printf("Called...\n");
2 pj 37
}
38
 
39
void event_printqueue(struct event *q)
40
{
40 pj 41
        struct event *p;
2 pj 42
 
40 pj 43
        for (p = q; p; p = p->next) {
44
                printf("Entry %d: Time %d...\n", p->index, p->time);
45
        }
2 pj 46
}
47
 
48
main()
49
{
40 pj 50
        int i, rem;
51
        event_init();
2 pj 52
 
40 pj 53
        printf("Free event queue:\n");
54
        event_printqueue(freeevents);
55
        printf("Pending events queue:\n");
56
        event_printqueue(firstevent);
57
 
58
        i = event_post(10, called, NULL);
59
        printf("Inserted Event %d\n", i);
60
 
61
        printf("Free event queue:\n");
62
        event_printqueue(freeevents);
63
        printf("Pending events queue:\n");
64
        event_printqueue(firstevent);
65
 
66
        i = event_post(100, called, NULL);
67
        printf("Inserted Event %d\n", i);
2 pj 68
 
40 pj 69
        i = event_post(5, called, NULL);
70
        printf("Inserted Event %d\n", i);
71
        i = event_post(50, called, NULL);
72
        printf("Inserted Event %d\n", i);
73
        i = event_post(1, called, NULL);
74
        printf("Inserted Event %d\n", i);
75
        i = event_post(110, called, NULL);
76
        printf("Inserted Event %d\n", i);
2 pj 77
 
40 pj 78
        printf("Pending events queue:\n");
79
        event_printqueue(firstevent);
2 pj 80
 
40 pj 81
        printf("Now, Wakin' up...\n");
2 pj 82
 
40 pj 83
        actTime = 1;
84
        wake_up(10);
85
        printf("Pending events queue:\n");
86
        event_printqueue(firstevent);
2 pj 87
 
40 pj 88
        actTime = 70;
89
        wake_up(10);
90
        i = event_post(45, called, NULL);
91
        i = event_post(80, called, NULL);
92
        i = event_post(20, called, NULL);
93
        rem = event_post(90, called, NULL);
94
        i = event_post(105, called, NULL);
95
        i = event_post(150, called, NULL);
96
        printf("Pending events queue:\n");
97
        event_printqueue(firstevent);
98
        i = event_delete(rem);
99
        printf("EVT %d removed...OK=%d Pending events queue:\n", rem, i);
100
        event_printqueue(firstevent);
101
        i = event_delete(6);
102
        printf("EVT 6 removed...OK=%d Pending events queue:\n", i);
103
        i = event_delete(2);
104
        printf("EVT 2 removed...OK=%d Pending events queue:\n", i);
105
        i = event_delete(8);
106
        printf("EVT 8 removed...OK=%d Pending events queue:\n", i);
107
        event_printqueue(firstevent);
2 pj 108
}