Re: sosend() and mbuf
- From: Maslan <maslanbsd@xxxxxxxxx>
- Date: Mon, 3 Aug 2009 21:25:27 +0000
No my code doesn't work, I thought it may be because that soaccept()
-which is not found in man 9- is non-blocking, so i've to put my code
in a thread.
Now i got another problem, when I open a text file from this thread,
the kernel crashes, I'm sure that its the thread.
kthread_create((void *)thread_main, NULL, NULL, RFNOWAIT, 0, "thread");
void thread_main(){
struct thread *td = curthread;
int ret;
int fd;
ret = f_open("/path/to/file.txt", &fd);
printf("%d\n", ret);
tsleep(td, PDROP, "test tsleep", 10*hz);
f_close(fd);
kthread_exit(0);
}
int f_open(char *filename, int *fd){
struct thread *td = curthread;
int ret = kern_open(td, filename, UIO_SYSSPACE, O_RDONLY, FREAD);
if(!ret){
*fd = td->td_retval[0];
return 1;
}
return 0;
}
I've to finish up this problem to go back for the first one.
Can you figure out what's wrong with this code, it works when I call
thread_main() rather than kthread_create((void *)thread_main, .....
Thanks a lot
2009/8/3 Dag-Erling Smørgrav <des@xxxxxx>:
[please cc: the list]_______________________________________________
Maslan <maslanbsd@xxxxxxxxx> writes:
man 9 sosend:
Data may be sent directly from kernel or user memory via the uio
argument, or as an mbuf chain via top, avoid- ing a data copy.
Only one of the uio or top pointers may be non-NULL
Hmm, I missed that part. It never occurred to me to *not* use mbufs.
I guess the question is: what is your question? Does your code work?
If it doesn't, where and how does it fail? If it does, why are you
asking?
In any case, 'man 9 sosend' answers the "I can't find useful information
on sosend()" part of your email. If you still have questions after
reading that, try looking at existing kernel code that uses sosend(9)
with iovecs (or with mbufs, if you decide to go that route).
DES
--
Dag-Erling Smørgrav - des@xxxxxx
freebsd-hackers@xxxxxxxxxxx mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "freebsd-hackers-unsubscribe@xxxxxxxxxxx"
- Follow-Ups:
- Re: sosend() and mbuf
- From: Pawel Jakub Dawidek
- Re: sosend() and mbuf
- From: John Baldwin
- Re: sosend() and mbuf
- From: Dag-Erling Smørgrav
- Re: sosend() and mbuf
- References:
- sosend() and mbuf
- From: Maslan
- Re: sosend() and mbuf
- From: Dag-Erling Smørgrav
- Re: sosend() and mbuf
- From: Dag-Erling Smørgrav
- sosend() and mbuf
- Prev by Date: sys/cdefs.h not included automatically
- Next by Date: Re: sosend() and mbuf
- Previous by thread: Re: sosend() and mbuf
- Next by thread: Re: sosend() and mbuf
- Index(es):
Relevant Pages
|