Date: Wed, 28 Aug 2002 16:21:03 -0400 (EDT) From: Pavan Balaji <balaji@cis.ohio-state.edu> To: freebsd-questions@freebsd.org Subject: Question about Posting Buffers Message-ID: <Pine.GSO.4.40.0208281619180.27754-100000@gamma.cis.ohio-state.edu>
index | next in thread | raw e-mail
Example implementation:
Implementation of PostRecv (in the kernel):
PostRecv (void* userbuf)
{
<create new node in linked list>
newNode -> buf = userbuf;
}
Kernel Process (when the msg arrives):
print (incomingdata); --> works fine
copyout (incomingdata, newNode -> buf);
print (newNode -> buf); --> works fine
User Process:
void* userbuf;
PostRecv (userbuf);
sleep (zillion seconds);
print (userbuf); --> gives garbage
Am I missing something over here? The problem I'm having is that the
incomingdata in the kernel is perfect. Also, the copy does not return any
error, but after the data has been placed, when I try to print out the
userbuf, it does not contain any data -- contains garbage.
It's kind of illogical, but I tried using void** instead of void* while
posting the buffer, and copying it to *(newNode -> buf), but it gives the
same problem -- as expected.
-- Pavan
=======================================================
Pavan Balaji, | 774, Dreese Labs,
78C, W 9th Ave, | 2015, Neil Avenue,
Columbus, OH43201 | Columbus, OH43210
(614) 291 3757 | (614) 292 8501
=======================================================
"Being happy doesn't mean that everything's perfect... It just means that
you have decided to see Beyond the Imperfections" -- Rash
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-questions" in the body of the message
help
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.GSO.4.40.0208281619180.27754-100000>
