Service de noyau raw_usrreq

Objectif

Implémente les requêtes utilisateur pour les protocoles bruts.

Syntaxe

#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;

Paramètres

Article Descriptif
so Identifie l'adresse d'une socket brute.
champ d'offre Indique la commande de requête.
m Indique l'adresse d'une structure Mbuf contenant des données.
Nam Indique l'adresse d'une structure Mbuf contenant la structure Add_sockaddr .
control Ce paramètre doit être défini sur une valeur nulle.

Descriptif

Le service de noyau Uw_usrreq implémente les demandes utilisateur pour le protocole brut.

Le service Uw_usrreq prend en charge les commandes suivantes:

Commande Descriptif
PRU_ABORT Abandon (fast DISCONNECT, DETACH).
PRU_ACCEPT Accepte la connexion entre homologues.
PRU_ATTACH Attache le protocole vers le haut.
PRU_BIND Binds socket à adresser.
PRU_CONNECT Etablit la connexion à l'homologue.
PRU_CONNECT2 Connecte deux sockets.
PRU_CONTROL Contrôle les opérations sur le protocole.
PRU_DETACH Détache le protocole d'en haut.
PRU_DISCONNECT Déconnecte de l'homologue.
PRU_LISTEN Ecoute pour la connexion.
ADRESSE_PRU_PRUR Extraction de l'adresse de l'homologue.
PRU_RCVD Ont pris des données ; plus de place maintenant.
PRU_RCVOOB Extrait les données de bande.
PRU_SEND Envoie ces données.
PRU_SENDOOB Envoie des données de bande.
PRU_SENSE Renvoie le statut en m.
PRU_SOCKADDR Extraction de l'adresse du socket.
PRU_SHUTDOWN N'envoie plus de données.

Toute commande non reconnue entraîne l'appel du service de noyau Panique .

Environnement d'exécution

Le service de noyau Userreq peut être appelé à partir de l'environnement Processus ou Interruption .

Valeurs renvoyées

Article Descriptif
EOPNOTSUPP Indique une commande non prise en charge.
EINVAL Indique une erreur de paramètre.
EACCES Indique que les droits d'accès à la commande PRU_ATTACH sont insuffisants.
ENOTCONN Indique une tentative de détachement lorsqu'elle n'est pas jointe.
EISCONN Indique que l'appelant a tenté de se connecter alors qu'il était déjà connecté.