問題タブ [opensolaris]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
multithreading - OracleSolaris 11.2 -- getinfo エントリ ポイントとマルチスレッド アクセス
私は、最初の Solaris デバイス ドライバを実装し始めたところです。エントリ ポイント ルーチンを実装するときgetinfo
、これが異なるカーネル スレッドから呼び出される可能性があることに注意する必要がありますか? 通常、この関数はインスタンスごとのソフトステート データ構造を更新します。マルチスレッド アクセスの場合は、構造をミューテックスで保護する必要があります。
だから私の質問はgetinfo
、システムの複数のスレッドからコールバックを呼び出すことができるのか、それとも 1 つのスレッドだけがそれを呼び出すことが OS によって保証されているのかということです。それman getinfo
についてはあまり明確ではありません。
ありがとう。
solaris - OracleSolaris 11.2 -- システムへのドライバの追加、接続の失敗
私は Solaris を学んでいて、単純なドライバーを書いています。現在、基本的なエントリ ポイント、つまり_init
、_info
、_finit
、*attach
を実装してい*detach
ます。それは問題なくコンパイルおよびリンクされ、次にコピーして/usr/kernel/drv/amd64/
呼び出します。
現在、私の _attach ルーチンで行っていることは次のとおりです。
ddi_get_instance ddi_soft_state_zalloc ddi_get_soft_state
DDI_SUCCESS を返す
それほど多くはありませんが、おそらくドライバーがメモリにロードされると、システム (devfsadm) は devfs にいくつかのエントリを作成することを期待していますが、私のドライバーはキャラクター デバイス ノードを登録せず、結果として失敗しますか?
solaris - OracleSolaris 11.2 -- /dev/* 内のキャラクターデバイス
通常、Linux PCI ドライバーでは、キャラクターデバイス (例: ) を介して制御インターフェイスをユーザーランドに公開することができ、ユーザーアプリケーションは、開いているファイル記述子/dev/drv_ctl
で I/O 制御コマンドを読み書きできます。ioctl()
register_chrdev()
Linux では、カーネル APIを使用してこれを作成します。
Solaris で同じまたは類似のメカニズムと動作を実現したいと考えていますが、Solaris では動作が少し異なるようです。DDI ルーチンddi_create_minor_node()
には、オーディオ、ブロック、ネットなどのデバイスを示すノード タイプが必要です。これは、私には非常に曖昧に見えます。たとえば、暗号化 PCI デバイスが属するタイプは何ですか?
また、下と下ではなく下ddi_create_minor_node()
にノードを作成するようです/devices/*
/dev/*
誰かが私の疑問を明確にし、正しい方向性を指摘していただければ幸いです。
ありがとう。
file-io - OracleSolaris 11.2 -- 単純なファイル I/O、cc 警告
今私はそれを構築します:
正常に実行されますが、警告は何ですか?
solaris - OracleSolaris 11.2 - PCI デバイスの検索機能
pci_find_capability
Linux のカーネル機能に類似した solaris が必要です。いくつかの類似点を調べまし/usr/src/
たが、それに近いものは見つかりませんでした。pci/pcie ドライバーは通常、デバイスがサポートする機能を見つけるために何を使用しますか? ありがとう。
solaris - OracleSolaris 11.2 - ctags と vi
新しくインストールした OracleSolaris には、base-developer-utilities
パッケージからの ctags があります。再帰をサポートしていないため、次のようにタグを生成します。
タグは生成されますが、何らかの理由で vim がそれを理解できませset tags
んE426: tag not found
。
タグはタグファイルにあります。
何が間違っている可能性があるのか 、誰にも手がかりがありますか?ありがとう。