Forum Linux.noyau Appels systèmes

Posté par  .
Étiquettes : aucune
0
14
mai
2006
Bonjour,

J'ai un projet en programmation noyau, je dois programmer des appels systèmes pour implémenter les fonctions relatives aux traitement des sémaphores, j'ai déjà écrit le corps de mes fonctions, j'ai rajouté les appels systèmes dans la table des appels systèmes, mais je ne sais pas comment passer les arguments à mes appels systèmes et comment les tester.
  • # ?

    Posté par  . Évalué à 2.

    La « table des appels systèmes » ?

    Tu peux préciser un peu dans quel cadre tu écris ce truc et, le cas échéant, l'environnement avec lequel tu développes ?

    Cela m'étonnerait que tu sois en train d'écrire un module noyau, ou que tu hackes un pilote de périphérique. Si comme je le pense, tu es en train de te familiariser avec les fondamentaux d'Unix, et en particulier avec les IPC de System V, saches que le détail de toutes fonctions en C est censé se trouver dans les man pages. Essaie ceci :

    $ man msgctl
    $ man msgget
    $ man msgrcv
    $ man msgsnd
    $ man semctl
    $ man semget
    $ man semop
    $ man shmat
    $ man shmctl
    $ man shmdt
    $ man shmget
  • # IPC Système V - Sémaphores

    Posté par  . Évalué à 2.

    Bonjour,

    Ta demande n'est pas tellement claire.
    Mais je vais éssayé d'apporter une petite explication complémentaire par rapport au précédent message.

    Les fonctions dont tu as principalement besoin sont (ce que tu as surement déjà défini) :
    -> Création sem :
    int semget (key_t clé, int nombre, int attributs);
    clé = clé associée au sémaphore
    nombre = nombre de sem dans l'ensemble
    attributs = Peut contenir IPC_CREAT, IPC_EXCL ou bien l'autorisation d'accès

    -> Opération :
    int semop (int id, struct sembuf * operation, unsigned nombre);
    id = identifiant retourné par semget
    operation = structure composée de sem_num (numéro du sem dans l'ensemble), sem_op (valeur de l'operation) et sem_flg (attribut pour l'operation : IPC_WAIT ou SEM_UNDO).

    -> Modification, consultation paramètre sem :
    int semctl (int id, int numero, int commande, union semun attributs);

    Voici quelques liens bien détaillés (un man t'apportera également une tonne d'information) :

    http://www.infres.enst.fr/~domas/TPIPC.html
    http://www-igm.univ-mlv.fr/~roussel/DESS/8.4.html
    http://www.ecst.csuchico.edu/~beej/guide/ipc/semaphores.html
    http://www.cs.cf.ac.uk/Dave/C/node26.html

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.