Subversion Repositories Kolibri OS

Rev

Go to most recent revision | Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
8280 superturbo 1
#include 
2
#include 
3
#include 
4
 
5
#pragma pack(push,1)
6
typedef struct {
7
    unsigned	p00;
8
    unsigned long long	p04;
9
    unsigned	p12;
10
    unsigned	p16;
11
    char		p20;
12
    char		*p21;
13
} kol_struct70;
14
#pragma pack(pop)
15
 
16
int kol_file_70(kol_struct70 *k)
17
{
18
    asm volatile ("int $0x40"::"a"(70), "b"(k));
19
}
20
 
21
bool dir_operations(unsigned char fun_num, char *path)
22
{
23
    kol_struct70 inf;
24
    inf.p00 = fun_num;
25
    inf.p04 = 0;
26
    inf.p12 = 0;
27
    inf.p16 = 0;
28
    inf.p20 = 0;
29
    inf.p21 = path;
30
    if(!kol_file_70(&inf)){
31
        return true;
32
    }
33
    else {
34
	    return false;
35
    }
36
}
37
 
38
char *getcwd(char *buf, unsigned size)
39
{
40
    if(buf == NULL){
41
        buf = malloc(size);
42
    }
43
    __asm__ __volatile__(
44
    "int $0x40"
45
    ::"a"(30),"b"(2),"c"(buf), "d"(size));
46
    return(buf);
47
}
48
 
49
void setcwd(const char* cwd)
50
{
51
    __asm__ __volatile__(
52
    "int $0x40"
53
    ::"a"(30),"b"(1),"c"(cwd));
54
}
55
 
56
bool rmdir(const char* dir)
57
{
58
    return dir_operations(8, dir);
59
}
60
 
61
bool mkdir(const char* dir)
62
{
63
    return dir_operations(9, dir);
64
}