File: sch.h

package info (click to toggle)
alliance 5.0-20120515-6
  • links: PTS
  • area: main
  • in suites: jessie, jessie-kfreebsd
  • size: 70,324 kB
  • ctags: 39,977
  • sloc: ansic: 350,299; vhdl: 34,227; yacc: 27,122; sh: 12,416; cpp: 9,478; makefile: 7,057; lex: 3,684
file content (110 lines) | stat: -rw-r--r-- 3,981 bytes parent folder | download | duplicates (2)
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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110

/* ###--------------------------------------------------------------### */
/* file		: sch110.h						*/
/* date		: Aug 10 1999						*/
/* version	: v110							*/
/* author	: Nizar ABDALLAH, Pirouz BAZARGAN SABET			*/
/* contents	: defines and structure definitions used in SCH library	*/
/* ###--------------------------------------------------------------### */

#ifndef SCH_SCHDEF
#define SCH_SCHDEF

#include "mut.h"

	/* ###------------------------------------------------------### */
	/*    basic defines						*/
	/* ###------------------------------------------------------### */

#define SCH_DFN_TRABLOCK	1024	/* size of block		*/
#define SCH_DFN_ENTBLOCK	 256	/* size of block		*/
#define SCH_DFN_WAVBLOCK	 256	/* size of block		*/

#define SCH_TRA_DELNONE		0x00	/* transcation flag: no action	*/
#define SCH_TRA_DELAFTER	0x01	/* transcation flag: del after	*/
#define SCH_TRA_DELBEFORE	0x02	/* transcation flag: del before	*/

#define SCH_TRA_ENTFIRST	0x04	/* transcation flag: 1 of list	*/

	/* ###------------------------------------------------------### */
	/*    complexe defines						*/
	/* ###------------------------------------------------------### */

#define SCH_TRA_DELALL		SCH_TRA_DELAFTER | SCH_TRA_DELBEFORE

	/* ###------------------------------------------------------### */
	/*    structure definitions					*/
	/* ###------------------------------------------------------### */

struct shdul			/* scheduler				*/
  {
  struct shdul   *NEXT     ;	/* next scheduler			*/
  void           *LABEL    ;	/* scheduler's label			*/
  struct shent  **TTABLE   ;	/* time table				*/
  struct shwav  **ITABLE   ;	/* identifier table			*/
  unsigned int    CURTIME  ;	/* current absolute time		*/
  };

struct shtra			/* transaction				*/
  {
  struct shtra   *NEXT     ;	/* next     transaction			*/
  struct shtra   *PREV     ;	/* previous transaction			*/
  struct shtra   *WAVE     ;	/* waveform for the same identifier	*/
  unsigned int    DATE     ;	/* transaction's date			*/
  void           *IDENT    ;	/* main   identifier			*/
  void           *SCDID    ;	/* second identifier			*/
  unsigned int    UFLAG    ;	/* user's flags				*/
  unsigned char   COND     ;	/* condition value			*/
  unsigned char   VALU     ;	/* value				*/
  unsigned short  FLAGS    ;	/* flags				*/
  };

struct shent			/* scheduler entry			*/
  {
  struct shent   *NEXT     ;	/* next entry				*/
  unsigned int    DATE     ;	/* entry's date (high order bits)	*/
  struct shtra   *TRANS [8];	/* list of transactions			*/
  };

struct shwav			/* waveform				*/
  {
  struct shwav   *NEXT     ;	/* next waveform			*/
  void           *IDENT    ;	/* main identifier			*/
  struct shtra   *TRANS    ;	/* list of transactions			*/
  };

	/* ###------------------------------------------------------### */
	/*    global variables						*/
	/* ###------------------------------------------------------### */

extern struct shtra  *SCH_FREE_SHTRA   ;
extern struct shent  *SCH_FREE_SHENT   ;
extern struct shwav  *SCH_FREE_SHWAV   ;

	/* ###------------------------------------------------------### */
	/*    functions							*/
	/* ###------------------------------------------------------### */

extern void          sch_bug      ();
extern int           sch_error    ();
extern void          sch_message  ();

extern void          sch_debug    ();

extern unsigned int  sch_hash     ();
extern struct shtra *sch_addshtra ();
extern struct shwav *sch_addshwav ();
extern struct shent *sch_addshent ();
extern struct shtra *sch_rmventry ();
extern void          sch_insentry ();
extern void          sch_inswave  ();

extern struct shdul *sch_CreateScheduler        ();
extern void          sch_AddTranscation         ();
extern struct shtra *sch_GetCurrentTransactions ();
extern int           sch_GotoNextTime           ();
extern int           sch_GetNextTime            ();
extern void          sch_FreeTransactions       ();
extern unsigned int  sch_GetCurrentTime         ();

#endif