raw_usrreq カーネル・サービス

目的

未加工プロトコルに対するユーザー要求を実装します。

構文

#include <sys/types.h>
#include <sys/errno.h>
void raw_usrreq (so, req, m, nam, control)
struct  socket * so;
int  req;
struct  mbuf * m;
struct  mbuf * nam;
struct  mbuf * control;

パラメーター

項目 説明
so ロー・ソケットのアドレスを識別します。
req 要求コマンドを指定します。
m データを含む MBUF 構造体のアドレスを指定します。
nam Sockaddr 構造体を含む MBUF 構造体のアドレスを指定します。
コントロール このパラメーターはヌル値に設定する必要があります。

説明

Raw_usrreq カーネル・サービスは、ロー・プロトコルのユーザー要求を実装します。

Raw_usrreq サービスは、以下のコマンドをサポートします。

コマンド 説明
PRU_ABORT (異常終了) 異常終了します (高速 DISCONNECT、DETACH)。
PRU_ACCEPT ピアからの接続を受け入れます。
PRU_ATTACH プロトコルをアップに接続します。
PRU_BIND ソケットをアドレスにバインドします。
PRU_CONNECT ピアへの接続を確立します。
PRU_CONNECT2 2 つのソケットを接続します。
RU_CONTROL (プログラム制御) プロトコルの操作を制御します。
PRU_DETACH プロトコルを上から切り離します。
PRU_DISCONNECT ピアから切断します。
PRU_LISTEN 接続を listen します。
PRU_PEERADDR (プログラム・アドレス) ピアのアドレスをフェッチします。
PRU_RCVD (プラザ・コード) データを取り出しました。余地が増えました。
PRU_RCVOOB (P) アウト・オブ・バンド・データを取得します。
RU_SEND (プログラム送信) このデータを送信します。
PRU_SENDOOB (P) アウト・オブ・バンド・データを送信します。
PRU_ センス 状況を m に戻します。
PRU_SOCKADDR (プロフィスのアドレス) ソケットのアドレスを取り出します。
プルーフ・シャットダウン それ以上データを送信しません。

認識されないコマンドがあると、 パニック カーネル・サービスが呼び出されます。

実行環境

RAW ユーザー要求 カーネル・サービスは、 処理 環境または 割り込み 環境のいずれかから呼び出すことができます。

戻り値

項目 説明
EOPNOTSUPP サポートされないコマンドを示します。
EINVAL パラメーター・エラーを示します。
EACCES プロアタッチ コマンドをサポートするための権限が不十分であることを示します。
ENOTCONN 接続されていない場合に切り離しを試行することを示します。
EISCONN 既に接続されている状態で、呼び出し側が接続を試行したことを示します。