embox

Форк
0
/
file_xattr_oldfs.c 
61 строка · 1.7 Кб
1
/**
2
 * @file
3
 * @brief
4
 *
5
 * @author  Anton Kozlov
6
 * @date    03.12.2013
7
 */
8

9
#include <fs/file_desc.h>
10
#include <fs/xattr.h>
11
#include <util/member.h>
12

13
#include <kernel/task/resource/idesc.h>
14

15
static int file_idesc_getxattr(struct idesc *idesc, const char *name, void *value,
16
		size_t size);
17
static int file_idesc_setxattr(struct idesc *idesc, const char *name,
18
		const void *value, size_t size, int flags);
19
static int file_idesc_listxattr(struct idesc *idesc, char *list, size_t size);
20
static int file_idesc_removexattr(struct idesc *idesc, const char *name);
21

22
const struct idesc_xattrops file_idesc_xattrops = {
23
	.getxattr = file_idesc_getxattr,
24
	.setxattr = file_idesc_setxattr,
25
	.listxattr = file_idesc_listxattr,
26
	.removexattr = file_idesc_removexattr,
27
};
28

29
static int file_idesc_getxattr(struct idesc *idesc, const char *name, void *value,
30
		size_t size) {
31
	struct file_desc *desc;
32

33
	desc = member_cast_out(idesc, struct file_desc, f_idesc);
34

35
	return kfile_xattr_get(desc->f_inode, name, value, size);
36
}
37

38
static int file_idesc_setxattr(struct idesc *idesc, const char *name,
39
		const void *value, size_t size, int flags) {
40
	struct file_desc *desc;
41

42
	desc = member_cast_out(idesc, struct file_desc, f_idesc);
43

44
	return kfile_xattr_set(desc->f_inode, name, value, size, flags);
45
}
46

47
static int file_idesc_listxattr(struct idesc *idesc, char *list, size_t size) {
48
	struct file_desc *desc;
49

50
	desc = member_cast_out(idesc, struct file_desc, f_idesc);
51

52
	return kfile_xattr_list(desc->f_inode, list, size);
53
}
54

55
static int file_idesc_removexattr(struct idesc *idesc, const char *name) {
56
	struct file_desc *desc;
57

58
	desc = member_cast_out(idesc, struct file_desc, f_idesc);
59

60
	return kfile_xattr_set(desc->f_inode, name, NULL, 0, XATTR_REMOVE);
61
}
62

63

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

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

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

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