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 | Variables
Référence du fichier ext2_internal.h
#include <fs/devfs.h>
#include <vfs.h>
Graphe des dépendances par inclusion de ext2_internal.h:
Ce graphe montre quels fichiers incluent directement ou indirectement ce fichier :

Aller au code source de ce fichier.

Structures de données

struct  ext2_super_block
 
struct  ext2_group_desc
 
struct  ext2_group_desc_internal
 
struct  ext2_inode
 
struct  ext2_directory
 Structure qui représente une entrée dans un dossier ext2. Format imposé par Ext2. Plus de détails...
 
struct  directories_t
 Structure chaînée pour enregistrer les entrées d'un dossier. Plus de détails...
 
struct  _ext2_fs_instance_t
 Instance de FS Ext2. Plus de détails...
 

Macros

#define EXT2_ROOT_INO   2
 
#define EXT2_OS_LINUX   0
 
#define EXT2_OS_HURD   1
 
#define EXT2_OS_MASIX   2
 
#define EXT2_OS_FREEBSD   3
 
#define EXT2_OS_LITES   4
 
#define EXT2_GOOD_OLD_REV   0
 
#define EXT2_DYNAMIC_REV   1
 
#define EXT2_FT_UNKNOWN   0
 
#define EXT2_FT_REG_FILE   1
 
#define EXT2_FT_DIR   2
 
#define EXT2_FT_CHRDEV   3
 
#define EXT2_FT_BLKDEV   4
 
#define EXT2_FT_FIFO   5
 
#define EXT2_FT_SOCK   6
 
#define EXT2_FT_SYMLINK   7
 
#define EXT2_S_IFSOCK   0xC000
 
#define EXT2_S_IFLNK   0xA000
 
#define EXT2_S_IFREG   0x8000
 
#define EXT2_S_IFBLK   0x6000
 
#define EXT2_S_IFDIR   0x4000
 
#define EXT2_S_IFCHR   0x2000
 
#define EXT2_S_IFIFO   0x1000
 
#define EXT2_S_ISUID   0x0800
 
#define EXT2_S_ISGID   0x0400
 
#define EXT2_S_ISVTX   0x0200
 
#define EXT2_S_IRUSR   0x0100
 
#define EXT2_S_IWUSR   0x0080
 
#define EXT2_S_IXUSR   0x0040
 
#define EXT2_S_IRGRP   0x0020
 
#define EXT2_S_IWGRP   0x0010
 
#define EXT2_S_IXGRP   0x0008
 
#define EXT2_S_IROTH   0x0004
 
#define EXT2_S_IWOTH   0x0002
 
#define EXT2_S_IXOTH   0x0001
 

Définitions de type

typedef struct _ext2_fs_instance_t ext2_fs_instance_t
 Instance de FS Ext2.
 

Fonctions

void umount_EXT2 (fs_instance_t *instance)
 Unmount d'un point de montage. Plus de détails...
 
ssize_t ext2_read (open_file_descriptor *ofd, void *buf, size_t size)
 Lecture d'un fichier. Plus de détails...
 
ssize_t ext2_write (open_file_descriptor *ofd, const void *buf, size_t size)
 Ecriture d'un fichier. Plus de détails...
 
int ext2_close (open_file_descriptor *ofd)
 Fermeture d'un fichier ouvert. Plus de détails...
 
int ext2_readdir (open_file_descriptor *ofd, char *entries, size_t size)
 Lecture du contenu d'un dossier. Plus de détails...
 
int ext2_stat (fs_instance_t *instance, const char *path, struct stat *stbuf)
 Récupère l'état d'un fichier ou dossier. Plus de détails...
 
int ext2_mknod (inode_t *dir, dentry_t *dentry, mode_t mode, dev_t dev)
 Création d'un noeud (fichier, dossier, fichier spécial...) Plus de détails...
 
int ext2_mkdir (inode_t *dir, dentry_t *dentry, mode_t mode)
 Création d'un dossier. Plus de détails...
 
int ext2_unlink (inode_t *dir, dentry_t *dentry)
 Suppression d'un noeud. Plus de détails...
 
int ext2_truncate (inode_t *inode, off_t off)
 Change la taille d'un fichier. Plus de détails...
 
int ext2_rmdir (inode_t *dir, dentry_t *dentry)
 Suppression d'un dossier vide. Plus de détails...
 
int ext2_setattr (inode_t *inode, file_attributes_t *attr)
 
int ext2_seek (open_file_descriptor *ofd, long offset, int whence)
 
dentry_text2_getroot (struct _fs_instance_t *instance)
 
dentry_text2_lookup (struct _fs_instance_t *instance, struct _dentry_t *dentry, const char *name)
 
int ext2_rename (inode_t *old_dir, dentry_t *old_dentry, inode_t *new_dir, dentry_t *new_dentry)
 Renomme ou déplace un fichier. Plus de détails...
 
dentry_tinit_rootext2fs (ext2_fs_instance_t *instance)
 

Variables

struct _open_file_operations_t ext2fs_fops
 

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

Description de ce que fait le fichier

Documentation des macros

#define EXT2_DYNAMIC_REV   1

V2 format w/ dynamic inode sizes

#define EXT2_FT_BLKDEV   4

Block device.

#define EXT2_FT_CHRDEV   3

Char device.

#define EXT2_FT_DIR   2

Dossier.

#define EXT2_FT_FIFO   5

Fifo special file.

#define EXT2_FT_REG_FILE   1

Fichier régulier.

#define EXT2_FT_SOCK   6

Socket special file.

#define EXT2_FT_SYMLINK   7

Lien symbolique.

#define EXT2_FT_UNKNOWN   0

Filetype inconu.

#define EXT2_GOOD_OLD_REV   0

The good old (original) format

#define EXT2_OS_FREEBSD   3

Code pour Freebsd

#define EXT2_OS_HURD   1

Code pour Hurd

#define EXT2_OS_LINUX   0

Code pour Linux

#define EXT2_OS_LITES   4

Code pour Lites

#define EXT2_OS_MASIX   2

Code pour Masix

#define EXT2_ROOT_INO   2

Numéro de l'inode racine.

#define EXT2_S_IFBLK   0x6000

block device

#define EXT2_S_IFCHR   0x2000

character device

#define EXT2_S_IFDIR   0x4000

directory

#define EXT2_S_IFIFO   0x1000

fifo

#define EXT2_S_IFLNK   0xA000

symbolic link

#define EXT2_S_IFREG   0x8000

regular file

#define EXT2_S_IFSOCK   0xC000

socket

#define EXT2_S_IRGRP   0x0020

group read

#define EXT2_S_IROTH   0x0004

others read

#define EXT2_S_IRUSR   0x0100

user read

#define EXT2_S_ISGID   0x0400

Set process Group ID

#define EXT2_S_ISUID   0x0800

Set process User ID

#define EXT2_S_ISVTX   0x0200

sticky bit

#define EXT2_S_IWGRP   0x0010

group write

#define EXT2_S_IWOTH   0x0002

others write

#define EXT2_S_IWUSR   0x0080

user write

#define EXT2_S_IXGRP   0x0008

group execute

#define EXT2_S_IXOTH   0x0001

others execute

#define EXT2_S_IXUSR   0x0040

user execute

Documentation des fonctions

int ext2_close ( open_file_descriptor ofd)
Paramètres
ofdDescripteur du fichier ouvert.
Renvoie
0 en cas de succès, -1 sinon.

Voici le graphe d'appel pour cette fonction :

dentry_t* ext2_getroot ( struct _fs_instance_t instance)

Retourne le noeud racine.

Paramètres
instanceInstance de FS.
Renvoie
le noeud racine.

Voici le graphe des appelants de cette fonction :

dentry_t* ext2_lookup ( struct _fs_instance_t instance,
struct _dentry_t dentry,
const char *  name 
)

Recherche le directory entry qui correspond au nom donné.

Paramètres
instanceInstance de FS.
dentryParent directory entry.
nameNom de l'entrée.
Renvoie
Directory Entry de l'entrée recherchée ou NULL.

Voici le graphe d'appel pour cette fonction :

Voici le graphe des appelants de cette fonction :

int ext2_mkdir ( inode_t dir,
dentry_t dentry,
mode_t  mode 
)
Paramètres
dirInode du dossier parent.
dentryStructure contenant le nom et un pointeur vers l'inode qui sera créé.
modeDroits sur le dossier.
Renvoie
0 en cas de succès.

Voici le graphe d'appel pour cette fonction :

Voici le graphe des appelants de cette fonction :

int ext2_mknod ( inode_t dir,
dentry_t dentry,
mode_t  mode,
dev_t  dev 
)
Paramètres
dirInode du dossier parent.
dentryStructure contenant le nom et un pointeur vers l'inode qui sera créé.
modeDroits sur le noeud.
devEn cas de fichier spécial (device)
Renvoie
0 en cas de succès.

Voici le graphe d'appel pour cette fonction :

Voici le graphe des appelants de cette fonction :

ssize_t ext2_read ( open_file_descriptor ofd,
void *  buf,
size_t  size 
)
Paramètres
ofdDescripteur du fichier ouvert.
bufBuffer où stocker les octets lus.
sizeNombre d'octets à lire.
Renvoie
nombre d'octets réellement lus.
int ext2_readdir ( open_file_descriptor ofd,
char *  entries,
size_t  size 
)
Paramètres
ofdDescripteur de fichier qui correspond au dossier.
entriesBuffer qui va recevoir les entrées de dossier.
sizeNombre d'octets dans le buffer au maximum.
Renvoie
Nombre d'octets écrits dans entries.

Voici le graphe d'appel pour cette fonction :

int ext2_rename ( inode_t old_dir,
dentry_t old_dentry,
inode_t new_dir,
dentry_t new_dentry 
)
Paramètres
old_dirInode du dossier parent de l'ancien nom.
old_dentryNom et inode à déplacer.
new_dirInode du dossier de destination.
new_dentryNom et inode de destination.
Renvoie
0 en cas de succès.

Voici le graphe des appelants de cette fonction :

int ext2_rmdir ( inode_t dir,
dentry_t dentry 
)
Paramètres
dirInode du dossier parent.
dentryDossier à supprimer.
Renvoie
0 en cas de succès.

Voici le graphe des appelants de cette fonction :

int ext2_seek ( open_file_descriptor ofd,
long  offset,
int  whence 
)

Déplacement dans un fichier.

Paramètres
ofdDescripteur de fichier ouvert.
offsetDécalage
whencedepuis le debut, la fin ou en relatif.
Renvoie
0 en cas de succès.
int ext2_setattr ( inode_t inode,
file_attributes_t attr 
)

Change les attributs d'un inode.

Paramètres
inodeInode à modifier.
attrNouveaux attributs.
Renvoie
0 en cas de succès.

Voici le graphe d'appel pour cette fonction :

Voici le graphe des appelants de cette fonction :

int ext2_stat ( fs_instance_t instance,
const char *  path,
struct stat stbuf 
)
Paramètres
instanceInstance de fs.
pathChemin du fichier.
stbufEndroit où enregistrer les infos.
Renvoie
0 en cas de succès.
int ext2_truncate ( inode_t inode,
off_t  off 
)
Paramètres
inodeInode à modifier.
offNouvelle taille.
Renvoie
0 en cas de succès.

Voici le graphe des appelants de cette fonction :

int ext2_unlink ( inode_t dir,
dentry_t dentry 
)
Paramètres
dirInode du dossier parent.
dentryEntrée à supprimer.
Renvoie
0 en cas de succès.

Voici le graphe des appelants de cette fonction :

ssize_t ext2_write ( open_file_descriptor ofd,
const void *  buf,
size_t  size 
)
Paramètres
ofdDescripteur du fichier ouvert.
bufBuffer contenant les octets à écrire.
sizeNombre d'octets à écrire.
Renvoie
nombre d'octets réellement écrits.
void umount_EXT2 ( fs_instance_t instance)
Paramètres
instanceL'instance de fs que l'on veut démonter.

Voici le graphe d'appel pour cette fonction :

Documentation des variables

struct _open_file_operations_t ext2fs_fops

Pointeurs sur les fonctions de manipulation de fichiers pour ce FS.