Data Fields
_Eina_File Struct Reference

This is the underlying data structure that represents a file in Eina. More...

Data Fields

 EINA_MAGIC
 Indicates whether Eina Magic should be used. More...
 
const char * filename
 The absolute path of the file. More...
 
Eina_Hashmap
 Tracks portions of a file that have been mapped with mmap(2). More...
 
Eina_Hashrmap
 Similar function to map, but used to look up mapped areas by pointer rather than offset/length. More...
 
void * global_map
 A pointer to the entire contents of the file that have been mapped with mmap(2). More...
 
Eina_Lock lock
 A file locking mechanism. More...
 
unsigned long long length
 The length of the file in bytes. More...
 
time_t mtime
 The last modified time. More...
 
ino_t inode
 The inode. More...
 
int refcount
 Keeps track of references to map. More...
 
int global_refcount
 Keeps track of references to global_map. More...
 
Eina_Statgen statgen
 For inexact stats a stat gen count to rate limit syscalls to stat file.
 
int fd
 The file descriptor. More...
 
Eina_Listdead_map
 Tracks regions that get a failure from mmap(2). More...
 
Eina_Bool shared: 1
 Indicates whether this file can be shared.
 
Eina_Bool delete_me: 1
 Indicates that this file should be deleted.
 
Eina_Bool global_faulty: 1
 Indicates whether global_map is bad.
 
Eina_Bool global_hugetlb: 1
 Indicates whether global_map uses HugeTLB.
 
virtual Eina_Bool: 1
 Indicates that this is a virtual file.
 
Eina_Bool copied: 1
 Indicates whether this file has copied data.
 

Detailed Description

This is the underlying data structure that represents a file in Eina.

Field Documentation

◆ EINA_MAGIC

_Eina_File::EINA_MAGIC

Indicates whether Eina Magic should be used.

◆ filename

const char* _Eina_File::filename

The absolute path of the file.

Note that the path given when calling eina_file_open will be run through eina_file_path_sanitize before it is stored here.

Referenced by eina_file_clean_close(), eina_file_close(), eina_file_dup(), eina_file_filename_get(), eina_file_open(), eina_file_refresh(), and eina_file_virtualize().

◆ map

Eina_Hash* _Eina_File::map

Tracks portions of a file that have been mapped with mmap(2).

The key is a tuple offset/length and the data is a pointer to the mapped region.

Referenced by eina_file_clean_close(), eina_file_common_map_free(), eina_file_flush(), eina_file_map_new(), eina_file_virtual_map_free(), eina_file_virtual_map_new(), and eina_file_virtualize().

◆ rmap

Eina_Hash* _Eina_File::rmap

◆ global_map

void* _Eina_File::global_map

A pointer to the entire contents of the file that have been mapped with mmap(2).

This is the common case, and EFL and is optimized for it.

Referenced by eina_file_dup(), eina_file_flush(), eina_file_map_all(), eina_file_map_faulted(), eina_file_map_free(), eina_file_map_populate(), eina_file_virtual_map_all(), eina_file_virtual_map_free(), eina_file_virtual_map_new(), and eina_file_virtualize().

◆ lock

Eina_Lock _Eina_File::lock

◆ length

unsigned long long _Eina_File::length

◆ mtime

time_t _Eina_File::mtime

◆ inode

ino_t _Eina_File::inode

The inode.

Referenced by eina_file_refresh().

◆ refcount

int _Eina_File::refcount

◆ global_refcount

int _Eina_File::global_refcount

◆ fd

int _Eina_File::fd

◆ dead_map

Eina_List* _Eina_File::dead_map

Tracks regions that get a failure from mmap(2).

Referenced by eina_file_common_map_free(), eina_file_flush(), and eina_file_map_faulted().