TacOS  0.2
 Tout Structures de données Fichiers Fonctions Variables Définitions de type Énumérations Macros
Structures de données | Macros | Définitions de type | Fonctions
Référence du fichier kprocess.h

Création de nouveaux processus. Plus de détails...

#include <ksyscall.h>
#include <fd_types.h>
#include <signal_types.h>
#include <process_types.h>
#include <symtable.h>
#include <types.h>
#include <vmm.h>
Graphe des dépendances par inclusion de kprocess.h:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Structures de données

struct  process_init_data_t
 
struct  process
 Structure représentant un processus. Plus de détails...
 
struct  _proclist_cell
 

Macros

#define USER_PROCESS_BASE   0x40000000
 
#define MAX_PROC   512
 
#define CPU_USAGE_SAMPLE_RATE   100
 
#define PROCSTATE_IDLE   0
 
#define PROCSTATE_RUNNING   1
 
#define PROCSTATE_WAITING   2
 
#define PROCSTATE_SUSPENDED   3
 
#define PROCSTATE_TERMINATED   4
 
#define CURRENT_PROCESS   -1
 
#define EXEC_ELF   0
 
#define EXEC_KERNEL   1
 

Définitions de type

typedef struct process process_t
 Structure représentant un processus.
 
typedef struct _proclist_cellproc_list
 
typedef struct _proclist_cell proclist_cell
 

Fonctions

int create_kprocess (char *name, void *entry_point, uint32_t stack_size)
 Crée un nouveau processus kernel. Crée un nouveau processus kernel et l'ajoute à la liste des processus avec un état d'exécution PROCSTATE_IDLE. Plus de détails...
 
process_tcreate_process (process_init_data_t *init_data)
 
int delete_process (int pid)
 Retire un processus de la liste. Plus de détails...
 
process_tfind_process (int pid)
 Cherche le process_t* en correspondant à un pid donné. Plus de détails...
 
process_tget_next_process ()
 Retourne le processus suivant le processus courant dans la liste. Plus de détails...
 
uint32_t get_proc_count ()
 Retourne le nombre de processus dans la liste. Plus de détails...
 
void clean_process_list ()
 Nettoie la liste des processus. Retire de la liste tous les processus en état PROCSTATE_TERMINATED.
 
void sample_CPU_usage ()
 
 SYSCALL_HANDLER1 (sys_exit, uint32_t ret_value)
 Syscall appelé lors de la fin d'exécution d'un process.
 
 SYSCALL_HANDLER1 (sys_getpid, uint32_t *pid)
 Récupére le PID du process courant. Plus de détails...
 
 SYSCALL_HANDLER1 (sys_getppid, uint32_t *ppid)
 Récupére le PID du process parent. Plus de détails...
 
 SYSCALL_HANDLER3 (sys_exec, char *cmdline, char **environ, int *retval)
 Syscall pour exécuter un programme. Plus de détails...
 
 SYSCALL_HANDLER3 (sys_proc, uint32_t sub_func, uint32_t param1, uint32_t param2)
 Récupère des infos sur un process. Plus de détails...
 
 SYSCALL_HANDLER1 (sys_waitpid, int pid)
 Bloque le process courant jusqu'à ce que le processus identifié par pid se termine. Plus de détails...
 
void procfs_init ()
 Initialisation du proc FS. Plus de détails...
 
process_tget_process_array (int i)
 Récupère un process à partir de sa position dans le tableau. Plus de détails...
 

Description détaillée

Auteur
TacOS developers

LICENSE

Copyright (C) 2010, 2011, 2012 - TacOS developers.

This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 3 of the License, or (at your option) any later version.

This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details at http://www.gnu.org/copyleft/gpl.html

You should have received a copy of the GNU General Public License along with this program; if not, see http://www.gnu.org/licenses.

DESCRIPTION

Documentation des macros

#define MAX_PROC   512

Nombre max de processus.

#define PROCSTATE_IDLE   0

États possibles des process.Inactif.

#define PROCSTATE_RUNNING   1

En cours d'exécution.

#define PROCSTATE_SUSPENDED   3

Suspendu.

#define PROCSTATE_TERMINATED   4

Terminé.

#define PROCSTATE_WAITING   2

En attente.

Documentation des définitions de type

typedef struct _proclist_cell* proc_list

Cellule de la liste des processus.

Documentation des fonctions

int create_kprocess ( char *  name,
void *  entry_point,
uint32_t  stack_size 
)
Paramètres
namenom du process
entry_pointadresse du point d'entrée
stack_sizetaille de la pile à allouer
Renvoie
PID du processus
int delete_process ( int  pid)
Paramètres
pidPid du processus à retirer de la liste.
Renvoie
0 la plupart du temps.

Voici le graphe d'appel pour cette fonction :

process_t* find_process ( int  pid)
Paramètres
pidPid du processus à chercher.
Renvoie
process_t* correspondant au pid.

Voici le graphe des appelants de cette fonction :

process_t* get_next_process ( )
Renvoie
processus suivant.
uint32_t get_proc_count ( )
Renvoie
nombre de processus dans la liste.
process_t* get_process_array ( int  i)
Paramètres
iindice du process dans le tableau (attention, ce n'est pas son pid)
void procfs_init ( )

Initialisation of the proc FS.

Voici le graphe d'appel pour cette fonction :

SYSCALL_HANDLER1 ( sys_getpid  ,
uint32_t pid 
)
Paramètres
pidadresse où enregistrer le pid.

Voici le graphe d'appel pour cette fonction :

SYSCALL_HANDLER1 ( sys_getppid  ,
uint32_t ppid 
)
Paramètres
ppidadresse où enregistrer le ppid.

Voici le graphe d'appel pour cette fonction :

SYSCALL_HANDLER1 ( sys_waitpid  ,
int  pid 
)
Paramètres
pidPID du process à attendre.

Voici le graphe d'appel pour cette fonction :

SYSCALL_HANDLER3 ( sys_exec  ,
char *  cmdline,
char **  environ,
int *  retval 
)
Paramètres
cmdlineLigne de commande à exécuter.
environVariables d'environnement.
retvalPointeur servant à retourner le résultat.

Voici le graphe d'appel pour cette fonction :

SYSCALL_HANDLER3 ( sys_proc  ,
uint32_t  sub_func,
uint32_t  param1,
uint32_t  param2 
)
Paramètres
sub_funcAction (récupère la liste ou les infos d'un process en particulier)
param1paramètre pour l'action.
param2pointeur de retour.

Voici le graphe d'appel pour cette fonction :