Subversion Repositories HelenOS

Rev

Rev 729 | Rev 788 | Go to most recent revision | Show entire file | Ignore whitespace | Details | Blame | Last modification | View Log | RSS feed

Rev 729 Rev 752
Line 64... Line 64...
64
 * @param name FIFO name.
64
 * @param name FIFO name.
65
 *
65
 *
66
 * @return Leading value in FIFO.
66
 * @return Leading value in FIFO.
67
 */
67
 */
68
#define fifo_pop(name) \
68
#define fifo_pop(name) \
69
    name.fifo[name.head = (name.head + 1) % name.items]
69
    name.fifo[name.head = (name.head + 1) < name.items ? (name.head + 1) : 0]
70
 
70
 
71
/** Push value to tail of FIFO.
71
/** Push value to tail of FIFO.
72
 *
72
 *
73
 * @param name FIFO name.
73
 * @param name FIFO name.
74
 * @param value Value to be appended to FIFO.
74
 * @param value Value to be appended to FIFO.
75
 *
75
 *
76
 */
76
 */
77
#define fifo_push(name, value) \
77
#define fifo_push(name, value) \
78
    name.fifo[name.tail = (name.tail + 1) % name.items] = (value) 
78
    name.fifo[name.tail = (name.tail + 1) < name.items ? (name.tail + 1) : 0] = (value) 
79
 
79
 
80
#endif
80
#endif