Subversion Repositories Kolibri OS

Rev

Rev 5890 | Go to most recent revision | Details | Compare with Previous | Last modification | View Log | RSS feed

Rev Author Line No. Line
5883 pavelyakov 1
#ifndef INCLUDE_LIBFS_H
2
#define INCLUDE_LIBFS_H
3
#print "[include ]\n"
4
 
5
#ifndef INCLUDE_KOLIBRI_H
6
#include "../lib/kolibri.h"
7
#endif
8
 
9
#ifndef INCLUDE_DLL_H
10
#include "../lib/dll.h"
11
#endif
12
 
13
:struct FILE_SYSTEM_FUNCTION
14
{
15
	dword remove_pointer;
16
	byte remove(dword path);
17
 
5885 pavelyakov 18
	dword read_pointer;
19
	dword read(dword path);
20
 
5890 pavelyakov 21
	dword run_pointer;
22
	dword run(dword path,arg);
23
 
5883 pavelyakov 24
	dword move_pointer;
25
	byte move(dword path1,path2);
26
 
27
	dword copy_pointer;
28
	byte copy(dword path1,path2);
29
 
30
	dword get_size_pointer;
31
	qword get_size(dword path);
32
} fs;
33
 
34
:byte FILE_SYSTEM_FUNCTION::remove(dword path)
35
{
36
	dword tmp = path;
5894 pavelyakov 37
	lib_init_fs();
5883 pavelyakov 38
	remove_pointer stdcall(tmp);
39
	return EAX;
40
}
41
 
5885 pavelyakov 42
:dword FILE_SYSTEM_FUNCTION::read(dword path)
43
{
44
	dword tmp = path;
5894 pavelyakov 45
	lib_init_fs();
5885 pavelyakov 46
	read_pointer stdcall(tmp);
47
	return EAX;
48
}
49
 
5890 pavelyakov 50
:dword FILE_SYSTEM_FUNCTION::run(dword path,arg)
51
{
52
	dword tmp1 = path1;
53
	dword tmp2 = arg;
5894 pavelyakov 54
	lib_init_fs();
5890 pavelyakov 55
	run_pointer stdcall(tmp1,tmp2);
56
	return EAX;
57
}
58
 
5883 pavelyakov 59
:qword FILE_SYSTEM_FUNCTION::get_size(dword path)
60
{
61
	dword tmp = path;
5894 pavelyakov 62
	lib_init_fs();
5883 pavelyakov 63
	get_size_pointer stdcall(tmp);
64
	return EAX;
65
}
66
 
67
:byte FILE_SYSTEM_FUNCTION::move(dword path1,path2)
68
{
69
	dword tmp1 = path1;
70
	dword tmp2 = path2;
5894 pavelyakov 71
	lib_init_fs();
5883 pavelyakov 72
	move_pointer stdcall(tmp1,tmp2);
73
	return EAX;
74
}
75
 
76
:byte FILE_SYSTEM_FUNCTION::copy(dword path1,path2)
77
{
78
	dword tmp1 = path1;
79
	dword tmp2 = path2;
5894 pavelyakov 80
	lib_init_fs();
5883 pavelyakov 81
	copy_pointer stdcall(tmp1,tmp2);
82
	return EAX;
83
}
84
 
5885 pavelyakov 85
:byte __CHECK_FS__ = 0;
5883 pavelyakov 86
:void lib_init_fs()
87
{
5885 pavelyakov 88
	IF(__CHECK_FS__)return;
5883 pavelyakov 89
	library.load("/sys/LIB/FS.OBJ");
90
	fs.remove_pointer = library.get("fs.remove");
91
	fs.get_size_pointer = library.get("fs.get_size");
92
	fs.move_pointer = library.get("fs.move");
93
	fs.copy_pointer = library.get("fs.copy");
5885 pavelyakov 94
	fs.read_pointer = library.get("fs.read");
5890 pavelyakov 95
	fs.run_pointer = library.get("fs.execute");
5885 pavelyakov 96
	__CHECK_FS__ = true;
5883 pavelyakov 97
}
98
 
99
#endif