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
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
|
2006-07-25 Stefan Siegl <stesie@brokenpipe.de>
* pq.c (packet_write): Only dereference AMOUNT if it is not the null
pointer and document the change.
* pq.h (packet_write): Document the change.
2002-04-22 Marcus Brinkmann <marcus@gnu.org>
* pq.c (packet_set_ports): Correctly replace old ports buffer with
new one. Take size of mach_port_t rather than pointer to it.
(packet_read_ports): Take size of mach_port_t rather than pointer
to it.
(pq_queue): Update PACKET->num_ports, PACKET->buf_start and
PACKET->buf_end for reused packets as well.
Submitted by Ognyan Kulev <ogi@fmi.uni-sofia.bg>.
1999-07-10 Roland McGrath <roland@baalperazim.frob.com>
* pq.c: Add #include <sys/mman.h> for munmap decl.
1999-07-09 Thomas Bushnell, BSG <tb@mit.edu>
* pq.c (packet_realloc): Use mmap instead of vm_allocate.
(packet_read_ports): Likewise.
(packet_read): Likewise.
1999-07-03 Thomas Bushnell, BSG <tb@mit.edu>
* pq.c (free_packets): Use munmap instead of vm_deallocate.
1998-10-20 Roland McGrath <roland@baalperazim.frob.com>
* pq.c (free_packets): Add braces to silence gcc warning.
(packet_realloc): Likewise.
* pipe.c (pipe_send): Likewise.
(pipe_recv): Likewise.
Mon Oct 21 21:58:03 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* pipe.h: Add extern inline protection.
* pq.h: Likewise.
* pipe-funcs.c, pq-funcs.c: New files.
* Makefile (SRCS): Add pipe-funcs.c and pq-funcs.c.
Thu Sep 12 16:24:41 1996 Thomas Bushnell, n/BSG <thomas@gnu.ai.mit.edu>
* Makefile (HURDLIBS): New variable.
(libpipe.so): Delete special dependency.
Tue Jul 16 11:33:34 1996 Michael I. Bushnell, p/BSG <mib@gnu.ai.mit.edu>
* pipe.h (EWOULDBLOCK): Define to work around new libc bug.
Mon Jul 1 17:29:07 1996 Miles Bader <miles@gnu.ai.mit.edu>
* pq.c (pq_queue): Initialize PACKET->buf_vm_alloced.
Tue Jan 23 12:44:40 1996 Miles Bader <miles@gnu.ai.mit.edu>
* pq.h (packet_ensure, packet_ensure_efficiently): Use packet_fit().
(packet_fit): New function.
* pq.c (packet_read): If there's lots of empty space at the
beginning of a vm_alloced buffer, deallocate it.
Mon Jan 22 17:12:39 1996 Miles Bader <miles@gnu.ai.mit.edu>
* pq.c (packet_realloc): Reflect in the new values of BUF_START &
BUF_END that we've removed any empty space at the beginning of BUF.
Sat Jan 13 13:56:13 1996 Miles Bader <miles@gnu.ai.mit.edu>
* pq.h (packet_ensure, packet_ensure_efficiently): Use
packet_new_size() instead of packet_size_adjust().
(packet_size_adjust): Declaration removed.
(packet_new_size): New declaration.
* pq.c (packet_size_adjust): Function removed.
(packet_new_size): New function.
* pq.c (packet_read): Re-arrange to be slightly less confusing.
Reverse start-past-buf-beginning test that may have leaked memory.
* pipe.c (pipe_send): For non-blocking writes, avoid writing more
than the user requested.
Fri Jan 12 12:15:06 1996 Miles Bader <miles@gnu.ai.mit.edu>
* pq.c (pq_queue): Initialize the ports_alloced field.
(packet_read): When a page-aligned read consumes the whole buffer,
but there's a non-page-multiple amount available, don't let
buf_len become negative.
Mon Oct 9 14:57:48 1995 Roland McGrath <roland@churchy.gnu.ai.mit.edu>
* Makefile: Specify shared library dependencies.
Thu Sep 7 09:08:30 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
* pq.c (packet_read): Don't leave PACKET in a fucked up state when
it's vm_allocate'd but doesn't a page-multiple amount of data and
we're reading everything.
* pipe.c (_pipe_no_readers): REALLY wake up writers when the pipe
breaks.
Fri Sep 1 10:42:03 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
* pipe.c (_pipe_no_readers): Wake up write selects too when the
pipe breaks.
Thu Aug 31 14:39:21 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
* pipe.c (pipe_send): Make writes blockable.
(pipe_recv): Wakeup blocked writers.
(pipe_kick): Function deleted.
(pipe_create): Make connection-oriented pipes start out broken.
(_pipe_first_reader): New function.
(_pipe_first_writer): Don't check whether PIPE is connection-
oriented before clearing PIPE_BROKEN, as otherwise it will never
be set.
(pipe_pair_select): New function.
(pipe_multiple_lock): New variable.
* pipe.h (pipe_wait): Renamed to `pipe_wait_readable'.
(pipe_select): Renamed to `pipe_select_readable'.
(pipe_writable, pipe_wait_writable, pipe_select_writable): New funcs.
(pipe_acquire_reader): Call _pipe_first_reader if necessary.
(_pipe_first_reader): New declaration.
(struct pipe): New fields: `write_limit', `write_atomic',
`pending_writes', `pending_write_selects'.
(struct pipe): `pending_selects' changed to `pending_read_selects'.
(pipe_pair_select): New declaration.
Tue Aug 29 14:37:49 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
* pipe.c (pipe_send): Use condition_broadcast, not condition_signal.
* pipe.h (pipe_select): New function.
* pipe.h (struct pipe): Remove interrupt_seq_num field.
(pipe_wait): Use hurd_condition_wait to detect interrupts instead
of previous ad-hoc mechanism.
* pipe.c (pipe_create): Don't initialize interrupt_seq_num field.
* pipe.h (pipe_acquire_reader, pipe_acquire_writer,
pipe_add_reader, pipe_add_writer): `aquire' -> `acquire'.
Fri Aug 11 18:35:32 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
* pipe.c (pipe_create): Initialize READERS & WRITERS, not REFS.
(_pipe_first_writer): New function.
(_pipe_no_writers, _pipe_no_writers): New function.
(pipe_break): Function deleted.
Wed Aug 9 12:53:05 1995 Miles Bader <miles@geech.gnu.ai.mit.edu>
* pipe.h (struct pipe): Keep separate ref counts for readers and
writers.
(pipe_aquire_reader, pipe_aquire_writer): New functions.
(pipe_release_reader, pipe_release_writer): New functions.
(pipe_add_reader, pipe_add_writer): New functions.
(pipe_remove_reader, pipe_remove_writer): New functions.
(_pipe_first_writer): New function decl.
(_pipe_no_writers, _pipe_no_writers): New function decl.
(pipe_aquire, pipe_release): Function deleted.
(pipe_break): Function decl deleted.
Tue Aug 1 12:37:27 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
* pipe.c (pipe_recv): Get rid of code to deal with getting the
source address from the control packet if there is no data packet,
since pipe_write always writes a data packet.
Mon Jul 31 14:50:00 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
* pipe.c (pipe_recv): Assert that a control packet should only
have a source address if there is no corresponding data packet.
(pipe_send): Change the test to determine whether we should write
a control packet, so that we only do so if we need to. Also,
don't record the source address in control packets, as it's
recorded in the following data packet anyway, and this prevents it
from being dealloc'd twice.
Fri Jul 28 23:03:27 1995 Miles Bader <miles@churchy.gnu.ai.mit.edu>
* pipe.h (stream_pipe_class, dgram_pipe_class, seqpack_pipe_class):
Make these declarations extern so they don't fuck up initialization.
(seqpacket_pipe_class): Renamed to `seqpack_pipe_class'.
|