embox

Форк
0
/
ramfs_dvfs.c 
54 строки · 1.0 Кб
1
/**
2
 * @file
3
 * @brief Tmp file system
4
 *
5
 * @date 12.11.12
6
 * @author Andrey Gazukin
7
 */
8

9
#include <stddef.h>
10
#include <string.h>
11
#include <sys/stat.h>
12

13
#include <fs/inode.h>
14
#include <fs/super_block.h>
15

16
#include "ramfs.h"
17

18
extern struct ramfs_file_info ramfs_files[RAMFS_FILES];
19

20
struct inode *ramfs_ilookup(struct inode *node, char const *name, struct inode const *dir) {
21
	struct super_block *sb;
22

23
	assert(dir);
24
	assert(dir->i_sb);
25
	assert(dir->i_sb->sb_data);
26

27
	sb = dir->i_sb;
28

29
	for (int i = 0; i < RAMFS_FILES; i++) {
30
		if (ramfs_files[i].fsi != sb->sb_data) {
31
			continue;
32
		}
33

34
		if (strcmp(name, ramfs_files[i].name)) {
35
			continue;
36
		}
37

38
		node->i_privdata = &ramfs_files[i];
39
		node->i_no = ramfs_files[i].index;
40
		node->i_size = ramfs_files[i].length;
41
		node->i_mode = ramfs_files[i].mode & (S_IFMT | S_IRWXA);
42

43
		return node;
44
	}
45

46
	return NULL;
47
}
48

49
extern struct idesc *dvfs_file_open_idesc(struct lookup *lookup, int __oflag);
50

51
struct super_block_operations ramfs_sbops = {
52
	.open_idesc    = dvfs_file_open_idesc,
53
	.destroy_inode = ramfs_destroy_inode,
54
};
55

Использование cookies

Мы используем файлы cookie в соответствии с Политикой конфиденциальности и Политикой использования cookies.

Нажимая кнопку «Принимаю», Вы даете АО «СберТех» согласие на обработку Ваших персональных данных в целях совершенствования нашего веб-сайта и Сервиса GitVerse, а также повышения удобства их использования.

Запретить использование cookies Вы можете самостоятельно в настройках Вашего браузера.