2004-01-01から1年間の記事一覧

移動 http://homepage.mac.com/kskeil/

書く。 http://www.google.co.jp/search?hl=ja&c2coff=1&q=read+write+open+close+iokit&btnG=Google+ IOStrageだ多分。 http://developer.apple.com/documentation/Darwin/Reference/KernelIOKitFramework/IOStorage/Classes/IOStorage/CompositePage.html …

IOKitでキャラクタデバイスをつくる

ffmpegで複数ファイルを同時にエンコードする時は ffmpeg -i i0.mpg -i i1.mpg o0.mpg -map 0.0:0.0 -map 0.1:0.1 o1.mpg -map 1.0:1.0 -map 1.1:1.1 こんな感じ。もっと短く指定できないのかな。あとバックグラウンドで実行したりループさせたりできないの…

玄人志向のMPEG2ハードウェアエンコードキャプチャボード http://www.kuroutoshikou.com/products/tvcuner/cx23416gyc.html をFedoraCore2で使う。ドライバは http://www.paken.org/linuxwiki/index.php?CX23416GYC-STVLP%a4%ce%b2%f2%c0%cf で、kernelは ht…

IONotificationPortCreateで作ったIONotificationPortRefをIONotificationPortGetMachPortに渡してmach_portを得る。それをIOConnectSetNotificationPortにマスターポートと一緒に渡す。これは何をしているのか? IONotificationPortGetMachPortは渡されたIO…

sendAsyncResult(IOUserClinet.c)はmach_msg_send_from_kernel(ipc_mig.c)でメッセージを送る。これは内部でipc_kmsg_send_always(ipc_kmsg.h)を呼び出す。で、これはipc_kmsg_send(ipc_kmsg.c)を呼び出すマクロ。この中ではipc_kobject_server(ipc…

MacOSX用ext2のドライバ http://sourceforge.net/projects/ext2fsx

フロッピードライブもCDドライブも無いLinuxマシンでWindows2000をインストール 適当なパーティションをFATに dosemuでFreeDOSでも起動してSYSコマンドを使いFATパーティションにDOSをインストール Windows2000のCDの中身をFATパーティションにコピー grubか…

CrystalSpaceのコンパイル時にjamコマンドが使える(makeでもいいんだけど)がDeveloperToolに入ってる(Privateディレクトリ内)jamは2.2.1で古い。CrystalSpaceのマニュアルには2.5の例がのっているし、MacOSXについてくるjamは古いから使うなとも書いてあ…

3Dエンジンの検索 http://www.3dengines.net/ Crystal Space http://crystal.sourceforge.net/ http://pc5.2ch.net/test/read.cgi/gamedev/1008220559/316 http://www.3dengines.net/search/?data=crystal+space http://cs-doc-ja.sourceforge.jp/ NeoEngine…

kCFSocketAcceptCallBack New connections will be automatically accepted and the callback is called with the data argument being a pointer to a CFSocketNativeHandle of the child socket. This callback is usable only with connection rendezvous…

YDL3.0でMac-on-Linuxを試した。超速い。最初色が変だったがXが16bitカラーで動いてたせいだった。24bitにしたらばっちり。 マシンの起動時にalt押しっぱなしで起動ディスク選択画面になる。そこでYDL、OpenDarwin、MacOSXが選択できた。OpenDarwinはMacOSX…

gentooのPPC向けLiveCD(インストール用じゃないやつ)が見つからない。 http://www.gentoo.org/news/20030603-ppclivecd.xml http://www.itmedia.co.jp/enterprise/0308/08/epn16.html http://www.unixuser.jp/magazine/2003/200309.html http://www.sbpnet.j…

GUI-Less Application http://cocoadevcentral.com/articles/000039.php CoreFoundation使う時に

CoreFoundation http://developer.apple.com/documentation/CoreFoundation/CoreFoundation.html CoreFoundationてあんま使われてないっぽい。みんなCocoaでやるのかね。 日本語訳 http://developer.apple.com/ja/documentation/japanese.html I/O Kit Funda…

マルチスレッドとスレッドセーフについて http://developer.apple.com/documentation/Cocoa/Conceptual/Multithreading/Tasks/foundation.html 「recvとsend」とか、「writeとread」とかはマルチスレッドで同時に行っても平気そうな雰囲気が。マジか。

RunLoopについて http://www.tech-arts.co.jp/macosx/macosx-dev-jp/htdocs/2400/2400.html やっぱ平気なのか? http://developer.apple.com/ja/documentation/pdf/Cocoa/CommunicateWithObjectsJ.pdf http://www.tech-arts.co.jp/macosx/macosx-dev-jp/htdo…

NSRunLoopとCocoaとCoreFoundation http://www.tech-arts.co.jp/macosx/macosx-dev-jp/htdocs/700/712.html http://www.big.or.jp/~crane/cocoa/9000_mdo/MDOnline_2002.01.pdf http://www.tech-arts.co.jp/macosx/macosx-dev-jp/htdocs/700/705.html NSFile…

なんかデバイスドライバとか見ててもみんなWriting a Custom User Clientに書いてある通りにやってなくて、なんかIOXXX系じゃなくてCFXXX系の関数で作業してる感じ。 だいたい、IOCreateReceivePort、CFMachPortCreateWithPort、CFMachPortCreateRunLoopSour…

http://www.opensource.apple.com/darwinsource/10.3.4/の、IOFireWireSBP2がコールバックを使っている。 非同期関数をユーザエリアのプログラムに渡す時はgetTargetAndMethodForIndexでは無くて、getAsyncTargetAndMethodForIndexを使うらしい。で、構造体…

Writing an I/O Kit Device Driver http://developer.apple.com/documentation/DeviceDrivers/Conceptual/WritingDeviceDriver/ Writing a Custom User Client http://developer.apple.com/documentation/DeviceDrivers/Conceptual/WritingDeviceDriver/Maki…

Porting Drivers to Mac OS X http://developer.apple.com/documentation/Porting/Conceptual/PortingDrivers/ シグナルを使ったデバイスドライバとか http://www-online.kek.jp/~yasu/Kenshu/other-device-driver.html

PCI Device Driverの作り方。 http://www.opendarwin.org/documentation/iokit-1.shtml これの4がユーザエリアのプログラムとの通信。IOUserClientを使って、posixのreadとかwriteとかの代わりをしてる。 Darwin FAQ日本語版 http://ppc.linux.or.jp/~konish…

詳解TCP/IP〈Vol.2〉実装と4.4BSDの設計と実装がmbufの勉強にいいかも。高いけど。 とりあえず偽のパケットをinputPacketに渡して、受信したように思わせることに成功。tcpdumpで見られた。

dlilはデータリンクインターフェースレイヤーで、データリンク層とは違うのか。データリンク層と上層の間か? outputPacket()にわたってくる時点で、イーサネットヘッダはプリアンプルとFCS以外、つまり宛先MACアドレスと送信元MACアドレスはセットされてい…

inputPacket()はキューにパケットを登録する。IONetworkInterface::flushInputQueueで、キューに登録されたパケットがデータリンク層へdlil_input()関数を使って送られるらしい。まだデータリンク層まで来てなかったのですね。 replaceOrCopyPacket()は、現…

受信で本当に重要なのはIONetworkInterface::inputPacketの方か。すると受信の流れは workloopに割り込み関数を登録 データ受信で割り込みが発生し、割り込み関数が呼ばれる 割り込み関数から受信関数が呼ばれる 受信関数がイーサカードからデータを読み取り…

受信で重要そうな関数はIONetworkController::replaceOrCopyPacketっぽい。受信の流れは workloopに割り込み関数を登録 データ受信で割り込みが発生し、割り込み関数が呼ばれる 割り込み関数から受信関数が呼ばれる 受信関数がイーサカードからデータを読み…

イーサネットカードのデバイスドライバで実際にパケットの処理を行うのは、IOOutputQueueから呼び出されるoutputPacket()と、workloopクラスに登録された割り込み関数らしい。 カーネルエリアにあるデバイスドライバとユーザが連絡するにはIOUserClientを使…