-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathqueue.h
More file actions
68 lines (58 loc) · 2.49 KB
/
queue.h
File metadata and controls
68 lines (58 loc) · 2.49 KB
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
/*
Routines for CBUS FLiM operations - part of CBUS libraries for PIC 18F
This work is licensed under the:
Creative Commons Attribution-NonCommercial-ShareAlike 4.0 International License.
To view a copy of this license, visit:
http://creativecommons.org/licenses/by-nc-sa/4.0/
or send a letter to Creative Commons, PO Box 1866, Mountain View, CA 94042, USA.
License summary:
You are free to:
Share, copy and redistribute the material in any medium or format
Adapt, remix, transform, and build upon the material
The licensor cannot revoke these freedoms as long as you follow the license terms.
Attribution : You must give appropriate credit, provide a link to the license,
and indicate if changes were made. You may do so in any reasonable manner,
but not in any way that suggests the licensor endorses you or your use.
NonCommercial : You may not use the material for commercial purposes. **(see note below)
ShareAlike : If you remix, transform, or build upon the material, you must distribute
your contributions under the same license as the original.
No additional restrictions : You may not apply legal terms or technological measures that
legally restrict others from doing anything the license permits.
** For commercial use, please contact the original copyright holder(s) to agree licensing terms
**************************************************************************************************************
The FLiM routines have no code or definitions that are specific to any
module, so they can be used to provide FLiM facilities for any module
using these libraries.
*/
/*
* File: actionQueue.c
* Author: Ian
*
* Created on 04 December 2017, 21:45
*
* A queue of consumed actions.
*/
#ifndef QUEUE_H
#define QUEUE_H
#ifdef __cplusplus
extern "C" {
#endif
#include "GenericTypeDefs.h"
#include "module.h"
typedef struct Queue {
unsigned char size;
unsigned char readIdx;
unsigned char writeIdx;
COMPUTE_ACTION_T * queue;
} Queue;
extern BOOL push(Queue * q, COMPUTE_ACTION_T a);
extern COMPUTE_ACTION_T pop(Queue * q);
extern COMPUTE_ACTION_T peek(Queue * q, unsigned char index);
extern void change(Queue * q, COMPUTE_ACTION_T newVal);
extern unsigned char quantity(Queue * q);
extern void delete(Queue * q, unsigned char index);
extern COMPUTE_ACTION_T NO_ACTION;
#ifdef __cplusplus
}
#endif
#endif /* QUEUE_H */