_Eina_File Struct Reference
Eina » Tools » File

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

`#include <eina_file_common.h>`

## Data Fields

| EINA_MAGIC
| Indicates whether Eina Magic should be used.
const char * | filename
| The absolute path of the file.
Eina_Hash * | map
| Tracks portions of a file that have been mapped with mmap(2).
Eina_Hash * | rmap
| Similar function to map, but used to look up mapped areas by pointer rather than offset/length.
void * | global_map
| A pointer to the entire contents of the file that have been mapped with mmap(2).
Eina_Lock | lock
| A file locking mechanism.
unsigned long long | length
| The length of the file in bytes.
time_t | mtime
| The last modified time.
ino_t | inode
| The inode.
int | refcount
| Keeps track of references to map.
int | global_refcount
| Keeps track of references to global_map.
Eina_Statgen | statgen
| For inexact stats a stat gen count to rate limit syscalls to stat file.
int | fd
| The file descriptor.
Eina_List * | dead_map
| Tracks regions that get a failure from mmap(2).
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

## 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_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().

## 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().