Date: Tue, 4 Aug 2009 17:09:00 +0000 From: Maslan <maslanbsd@gmail.com> To: Julian Elischer <julian@elischer.org> Cc: Ed Schouten <ed@80386.nl>, FreeBSD Hackers <freebsd-hackers@freebsd.org> Subject: Re: sosend() and mbuf Message-ID: <319cceca0908041008p2de4452duc55467abbb121e16@mail.gmail.com> In-Reply-To: <319cceca0908041003o4c313bf6qff57a1f0b752b537@mail.gmail.com> References: <319cceca0908030119i3432a495ya60aa431dab0e1b1@mail.gmail.com> <86k51k4kvl.fsf@ds4.des.no> <86fxc84ksj.fsf@ds4.des.no> <200908040138.14743.max@love2party.net> <319cceca0908040227hf9a0f92jbf05b11e9f974994@mail.gmail.com> <20090804093036.GN1292@hoeg.nl> <319cceca0908040239k2accd7fen402db4c91687a267@mail.gmail.com> <4A786302.3090709@elischer.org> <319cceca0908041003o4c313bf6qff57a1f0b752b537@mail.gmail.com>
next in thread | previous in thread | raw e-mail | index | archive | help
--001636c5a4af90df38047053f1a0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Guys, Here is the code, just scroll down and change kthread_create2() to kthread_create() and it will crash NOTE: i'm still working on the socket part, u can commend it. Something wrong with proc0, and I can't figure it out --001636c5a4af90df38047053f1a0 Content-Type: application/octet-stream; name="khttp.c" Content-Disposition: attachment; filename="khttp.c" Content-Transfer-Encoding: base64 X-Attachment-Id: f_fxyvvpoo0 I2luY2x1ZGUgPHN5cy9wYXJhbS5oPgojaW5jbHVkZSA8c3lzL2tlcm5lbC5oPgojaW5jbHVkZSA8 c3lzL21vZHVsZS5oPgojaW5jbHVkZSA8c3lzL3N5c3RtLmg+CiNpbmNsdWRlIDxzeXMvbWFsbG9j Lmg+IAkvKiBtYWxsb2MsIGZyZWUgKi8KI2luY2x1ZGUgPHN5cy9zeXNjYWxsc3Vici5oPgkvKiBr ZXJuX3h4eCAqLwojaW5jbHVkZSA8c3lzL2ZjbnRsLmg+CQkvKiBPX1JET05MWSwgRlJFQUQgKi8K I2luY2x1ZGUgPHN5cy9wcm9jLmg+CQkvKiBjdXJ0aHJlYWQgKi8KI2luY2x1ZGUgPHN5cy9zdGF0 Lmg+CQkvKiBzdHJ1Y3Qgc3RhdCAqLwojaW5jbHVkZSA8c3lzL3NvY2tldC5oPgkJLyogc3RydWN0 IHNvY2tldCwgc29ja2FkZHIgKi8KI2luY2x1ZGUgPHN5cy9zb2NrZXR2YXIuaD4JLyogc294eHgg Ki8KI2luY2x1ZGUgPG5ldGluZXQvaW4uaD4JCS8qIElQUFJPVE9fVENQICovCiNpbmNsdWRlIDxz eXMvbWJ1Zi5oPgkJLyogbWJ1ZiAqLwojaW5jbHVkZSA8c3lzL2t0aHJlYWQuaD4JLyoga3RocmVh ZF9jcmVhdGUgKi8KI2luY2x1ZGUgPHN5cy91bmlzdGQuaD4JCS8qIFJGTk9XQUlUICovCiNpbmNs dWRlIDxtYWNoaW5lL3N0ZGFyZy5oPgkvKiB2YWxpc3QgKi8KI2luY2x1ZGUgPHN5cy9zY2hlZC5o PgkJLyogc2NoZWRfYWRkICovCiNpbmNsdWRlIDxzeXMvbXV0ZXguaD4JCS8qIG10eF94eHggKi8K Ck1BTExPQ19ERUZJTkUoTV9LRVJOLCAia0hUVFAiLCAia0hUVFAgbWVtb3J5Iik7CgovKiBwcm90 b3R5cGVzICovCnZvaWQga2h0dHBfbWFpbih2b2lkKTsKdm9pZCogbWVtX2FsbG9jKGludCk7CnZv aWQgbWVtX2ZyZWUodm9pZCAqKTsKaW50IGZfb3BlbihjaGFyICosIGludCAqKTsKaW50IGZfY2xv c2UoaW50KTsKaW50IGZfZ2V0c2l6ZShpbnQpOwppbnQgZl9yZWFkKGludCwgY2hhciAqLCBpbnQp OwppbnQga3RocmVhZF9jcmVhdGUyKHZvaWQgKCpmdW5jKSh2b2lkICopLCB2b2lkICosIHN0cnVj dCBwcm9jICoqLCBpbnQsIGludCwgY29uc3QgY2hhciAqLCAuLi4pOwoKc3RhdGljIGludCB0c3Rh dGU7CiNkZWZpbmUgVF9TVEFSVCAwCiNkZWZpbmUgVF9TVE9QIDEKI2RlZmluZSBUX0VYSVQgMgog CnZvaWQga2h0dHBfbWFpbigpewoJc3RydWN0IHRocmVhZCAqdGQgPSBjdXJ0aHJlYWQ7CglpbnQg cmV0OwoJaW50IGZkLCBzaXplOwoJY2hhciAqYnVmID0gTlVMTDsKCXN0cnVjdCBzb2NrZXQgKnMs ICpoZWFkLCAqYzsKCXN0cnVjdCBzb2NrYWRkcl9pbiBzYSwgKmNhOwoJc3RydWN0IGlvdmVjIGFp b3Y7CglzdHJ1Y3QgdWlvIGF1aW87CgljaGFyIGJ1ZjJbXSA9ICJsb2wiOwoKCgkvKiBGaWxlcyAq LwoKCXJldCA9IGZfb3BlbigiL3Zhci9raHR0cC9pbmRleC5odG1sIiwgJmZkKTsKCglzaXplID0g Zl9nZXRzaXplKGZkKTsKCWJ1ZiA9IG1lbV9hbGxvYyhzaXplb2YoY2hhcikqc2l6ZSk7CglmX3Jl YWQoZmQsIGJ1Ziwgc2l6ZSk7CglidWZbc2l6ZS0xXSA9IDB4MDsKCXByaW50ZigiJXNcbiIsIGJ1 Zik7CgltZW1fZnJlZShidWYpOwoJZl9jbG9zZShmZCk7CgoKCS8qIFNvY2tldHMgKi8KCglyZXQg PSBzb2NyZWF0ZShQRl9JTkVULCAmcywgU09DS19TVFJFQU0sIElQUFJPVE9fVENQLCB0ZC0+dGRf dWNyZWQsIHRkKTsKCXByaW50Zigic29jcmVhdGUgLT4gJWQsIHJldHZhbCAtPiAlZFxuIiwgcmV0 LCB0ZC0+dGRfcmV0dmFsWzBdKTsKCgliemVybygmc2EsIHNpemVvZihzYSkpOwoJc2Euc2luX2xl biA9IHNpemVvZihzYSk7CglzYS5zaW5fZmFtaWx5ID0gQUZfSU5FVDsKCXNhLnNpbl9wb3J0ID0g aHRvbnMoODg4OCk7CglzYS5zaW5fYWRkci5zX2FkZHIgPSBJTkFERFJfQU5ZOwoJc29iaW5kKHMs IChzdHJ1Y3Qgc29ja2FkZHIgKikmc2EsIHRkKTsKCXByaW50Zigic29iaW5kIC0+ICVkLCByZXR2 YWwgLT4gJWRcbiIsIHJldCwgdGQtPnRkX3JldHZhbFswXSk7CgoJcmV0ID0gc29saXN0ZW4ocywg NCwgdGQpOwoJcHJpbnRmKCJzb2xpc3RlbiAtPiAlZCwgcmV0dmFsIC0+ICVkXG4iLCByZXQsIHRk LT50ZF9yZXR2YWxbMF0pOwoKCWlmICgocy0+c29fb3B0aW9ucyAmIFNPX0FDQ0VQVENPTk4pID09 IDApCgkJcHJpbnRmKCJFUlJPUlxuIik7IAoKCWlmICghKHMtPnNvX29wdGlvbnMgJiBTT19BQ0NF UFRDT05OKSkKCQlwcmludGYoIk5PVCBBQ0NFUFRJTkdcbiIpOwoKCWhlYWQgPSBzOwoKCS8qIE1h aW4gTG9vcCAqLwoJZm9yKDs7KXsKCQl0c2xlZXAodGQsIFBEUk9QLCAia0hUVFAgdHNsZWVwIiwg Mipoeik7CgkJaWYodHN0YXRlID09IFRfU1RPUCkgYnJlYWs7CgkKCQlBQ0NFUFRfTE9DSygpOwoJ CWMgPSBUQUlMUV9GSVJTVCgmaGVhZC0+c29fY29tcCk7CgkJaWYoYyA9PSBOVUxMKXsKCQkJQUND RVBUX1VOTE9DSygpOwoJCQljb250aW51ZTsKCQl9CgkJVEFJTFFfUkVNT1ZFKCZoZWFkLT5zb19j b21wLCBjLCBzb19saXN0KTsKCQloZWFkLT5zb19xbGVuLS07CgkJcHJpbnRmKCJjID0gMHgleFxu IiwgKGludCljKTsKCQlBQ0NFUFRfVU5MT0NLKCk7CgkJcmV0ID0gc29hY2NlcHQoYywgKHN0cnVj dCBzb2NrYWRkcioqKSZjYSk7CgkJcHJpbnRmKCJzb2FjY2VwdCAtPiAlZCwgcmV0dmFsIC0+ICVk XG4iLCByZXQsIHRkLT50ZF9yZXR2YWxbMF0pOwoKCQkvKiBpb3ZlYyAqLwoJCWFpb3YuaW92X2Jh c2UgPSBidWY7CgkJYWlvdi5pb3ZfbGVuID0gc3RybGVuKGJ1ZjIpOwoJCS8qIGF1aW8gKi8KCQlh dWlvLnVpb19pb3YgPSAmYWlvdjsKCQlhdWlvLnVpb19pb3ZjbnQgPSAxOwoJCWF1aW8udWlvX29m ZnNldCA9IDA7CgkJYXVpby51aW9fcmVzaWQgPSBzdHJsZW4oYnVmMik7CgkJYXVpby51aW9fcncg PSBVSU9fV1JJVEU7CgkJYXVpby51aW9fc2VnZmxnID0gVUlPX1NZU1NQQUNFOwoJCWF1aW8udWlv X3RkID0gdGQ7CgoJCS8vcmV0ID0gc29zZW5kKHMsIChzdHJ1Y3Qgc29ja2FkZHIqKSZjbGllbnQs ICZhdWlvLCBOVUxMLCBOVUxMLCAwLCB0ZCk7IAoJCS8vcHJpbnRmKCJzb3NlbmQgLT4gJWQsIHJl dHZhbCAtPiAlZFxuIiwgcmV0LCB0ZC0+dGRfcmV0dmFsWzBdKTsKCX0KCXJldCA9IHNvY2xvc2Uo cyk7CglwcmludGYoInNvY2xvc2UgLT4gJWQsIHJldHZhbCAtPiAlZFxuIiwgcmV0LCB0ZC0+dGRf cmV0dmFsWzBdKTsKCgl0c3RhdGUgPSBUX0VYSVQ7CglrdGhyZWFkX2V4aXQoMCk7Cn0KCnZvaWQq IG1lbV9hbGxvYyhpbnQgc2l6ZSl7CglyZXR1cm4gbWFsbG9jKHNpemUsIE1fS0VSTiwgTV9OT1dB SVQpOwp9Cgp2b2lkIG1lbV9mcmVlKHZvaWQgKmJ1Zil7CglmcmVlKGJ1ZiwgTV9LRVJOKTsKfQoK aW50IGZfb3BlbihjaGFyICpmaWxlbmFtZSwgaW50ICpmZCl7CglzdHJ1Y3QgdGhyZWFkICp0ZCA9 IGN1cnRocmVhZDsKCWludCByZXQgPSBrZXJuX29wZW4odGQsIGZpbGVuYW1lLCBVSU9fU1lTU1BB Q0UsIE9fUkRPTkxZLCBGUkVBRCk7CglpZighcmV0KXsKCQkqZmQgPSB0ZC0+dGRfcmV0dmFsWzBd OwoJCXJldHVybiAxOwoJfQoJcmV0dXJuIDA7Cn0KCmludCBmX2Nsb3NlKGludCBmZCl7CglzdHJ1 Y3QgdGhyZWFkICp0ZCA9IGN1cnRocmVhZDsKCWludCByZXQgPSBrZXJuX2Nsb3NlKHRkLCBmZCk7 CglpZighcmV0KQoJCXJldHVybiAxOwoJcmV0dXJuIDA7Cn0KCmludCBmX2dldHNpemUoaW50IGZk KXsKCXN0cnVjdCB0aHJlYWQgKnRkID0gY3VydGhyZWFkOwoJc3RydWN0IHN0YXQgc3Q7CglpbnQg cmV0ID0ga2Vybl9mc3RhdCh0ZCwgZmQsICZzdCk7CglpZighcmV0KQoJCXJldHVybiBzdC5zdF9z aXplOwoJcmV0dXJuIDA7Cn0KCmludCBmX3JlYWQoaW50IGZkLCBjaGFyICpidWYsIGludCBzaXpl KXsKCXN0cnVjdCB0aHJlYWQgKnRkID0gY3VydGhyZWFkOwoJaW50IHJldDsKCXN0cnVjdCBpb3Zl YyBhaW92OwoJc3RydWN0IHVpbyBhdWlvOwoKCS8qIGlvdmVjICovCglhaW92Lmlvdl9iYXNlID0g YnVmOwoJYWlvdi5pb3ZfbGVuID0gc2l6ZTsKCS8qIGF1aW8gKi8KCWF1aW8udWlvX2lvdiA9ICZh aW92OwoJYXVpby51aW9faW92Y250ID0gMTsKCWF1aW8udWlvX29mZnNldCA9IDA7CglhdWlvLnVp b19yZXNpZCA9IHNpemU7CglhdWlvLnVpb19ydyA9IFVJT19SRUFEOwoJYXVpby51aW9fc2VnZmxn ID0gVUlPX1NZU1NQQUNFOwoJYXVpby51aW9fdGQgPSB0ZDsKCglyZXQgPSBrZXJuX3JlYWR2KHRk LCBmZCwgJmF1aW8pOwoJaWYoIXJldCkKCQlyZXR1cm4gMTsKCXJldHVybiAwOwp9CgppbnQKa3Ro cmVhZF9jcmVhdGUyKHZvaWQgKCpmdW5jKSh2b2lkICopLCB2b2lkICphcmcsCiAgICBzdHJ1Y3Qg cHJvYyAqKm5ld3BwLCBpbnQgZmxhZ3MsIGludCBwYWdlcywgY29uc3QgY2hhciAqZm10LCAuLi4p CnsKCWludCBlcnJvcjsKCXZhX2xpc3QgYXA7CglzdHJ1Y3QgdGhyZWFkICp0ZDsKCXN0cnVjdCBw cm9jICpwMjsKCglpZiAoIXByb2MwLnBfc3RhdHMpCgkJcGFuaWMoImt0aHJlYWRfY3JlYXRlIGNh bGxlZCB0b28gc29vbiIpOwoKCWVycm9yID0gZm9yazEoY3VydGhyZWFkLCBSRkZERyB8IFJGUFJP QyB8IFJGU1RPUFBFRCB8IGZsYWdzLAoJICAgIHBhZ2VzLCAmcDIpOwoJaWYgKGVycm9yKQoJCXJl dHVybiBlcnJvcjsKCgkvKiBzYXZlIGEgZ2xvYmFsIGRlc2NyaXB0b3IsIGlmIGRlc2lyZWQgKi8K CWlmIChuZXdwcCAhPSBOVUxMKQoJCSpuZXdwcCA9IHAyOwoKCS8qIHRoaXMgaXMgYSBub24tc3dh cHBlZCBzeXN0ZW0gcHJvY2VzcyAqLwoJUFJPQ19MT0NLKHAyKTsKCXAyLT5wX2ZsYWcgfD0gUF9T WVNURU0gfCBQX0tUSFJFQUQ7CgltdHhfbG9jaygmcDItPnBfc2lnYWN0cy0+cHNfbXR4KTsKCXAy LT5wX3NpZ2FjdHMtPnBzX2ZsYWcgfD0gUFNfTk9DTERXQUlUOwoJbXR4X3VubG9jaygmcDItPnBf c2lnYWN0cy0+cHNfbXR4KTsKCVBST0NfVU5MT0NLKHAyKTsKCgkvKiBzZXQgdXAgYXJnMCBmb3Ig J3BzJywgZXQgYWwgKi8KCXZhX3N0YXJ0KGFwLCBmbXQpOwoJdnNucHJpbnRmKHAyLT5wX2NvbW0s IHNpemVvZihwMi0+cF9jb21tKSwgZm10LCBhcCk7Cgl2YV9lbmQoYXApOwoKCS8qIGNhbGwgdGhl IHByb2Nlc3NlcycgbWFpbigpLi4uICovCgl0ZCA9IEZJUlNUX1RIUkVBRF9JTl9QUk9DKHAyKTsK CWNwdV9zZXRfZm9ya19oYW5kbGVyKHRkLCBmdW5jLCBhcmcpOwoJVERfU0VUX0NBTl9SVU4odGQp OwoKCS8qIERlbGF5IHB1dHRpbmcgaXQgb24gdGhlIHJ1biBxdWV1ZSB1bnRpbCBub3cuICovCglp ZiAoIShmbGFncyAmIFJGU1RPUFBFRCkpIHsKCQl0aHJlYWRfbG9jayh0ZCk7CgkJc2NoZWRfYWRk KHRkLCBTUlFfQk9SSU5HKTsgCgkJdGhyZWFkX3VubG9jayh0ZCk7Cgl9CgoJcmV0dXJuIDA7Cn0K CnN0YXRpYyBpbnQgaGFuZGxlcihtb2R1bGVfdCBtb2QsIGludCBvcCwgdm9pZCAqYXJnKXsKCWlu dCBlcnIgPSAwOwoJc3dpdGNoKG9wKXsKCQljYXNlIE1PRF9MT0FEOgoJCQl0c3RhdGUgPSBUX1NU QVJUOwoJCQlwcmludGYoImtIVFRQIGxvYWRlZC5cbiIpOwoJCQlrdGhyZWFkX2NyZWF0ZTIoKHZv aWQgKilraHR0cF9tYWluLCBOVUxMLCBOVUxMLCBSRk5PV0FJVCwgMCwgImtIVFRQIik7CgkJCWJy ZWFrOwoJCWNhc2UgTU9EX1VOTE9BRDoKCQkJdHN0YXRlID0gVF9TVE9QOwoJCQlmb3IoOzspewoJ CQkJaWYodHN0YXRlID09IFRfRVhJVCkgYnJlYWs7CgkJCQl0c2xlZXAoY3VydGhyZWFkLCBQRFJP UCwgImtIVFRQIHRzbGVlcCIsIDIqaHopOwoJCQl9CgkJCXByaW50Zigia0hUVFAgdW5sb2FkZWQu XG4iKTsKCQkJYnJlYWs7CgkJZGVmYXVsdDoKCQkJZXJyID0gRU9QTk9UU1VQUDsKCQkJYnJlYWs7 Cgl9CglyZXR1cm4oZXJyKTsKfQoKc3RhdGljIG1vZHVsZWRhdGFfdCBtb2RfZGF0YT0gewoJImto dHRwIiwKCWhhbmRsZXIsCgkwCn07CgpNT0RVTEVfVkVSU0lPTihraHR0cCwgMSk7CkRFQ0xBUkVf TU9EVUxFKGt0dHAsIG1vZF9kYXRhLCBTSV9TVUJfS0xELCBTSV9PUkRFUl9BTlkpOwo= --001636c5a4af90df38047053f1a0--
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?319cceca0908041008p2de4452duc55467abbb121e16>