Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 8288 → Rev 8289

/programs/develop/ktcc/trunk/libc/fs/dir.c
35,11 → 35,53
}
}
 
int lsdir(const char* dir, short_file_info **list)
{
int num_of_file=0;
kol_struct70 inf;
inf.p00 = 1;
inf.p04 = 0;
inf.p12 = 2;
inf.p16 = (unsigned*) malloc(32+inf.p12*560);
inf.p20 = 0;
inf.p21 = dir;
if(kol_file_70(&inf))
{
free((void*)inf.p16);
return FS_ERROR;
}
num_of_file = *(unsigned*)(inf.p16+8);
inf.p12 = num_of_file;
free((void*)inf.p16);
inf.p16 = (unsigned) malloc(32+inf.p12*560);
*list = (short_file_info*)malloc(num_of_file*sizeof(short_file_info));
if(kol_file_70(&inf))
{
free((void*)inf.p16);
return FS_ERROR;
}
for(int i=0; i<num_of_file; i++)
{
(*list)[i].type = *(unsigned*)(inf.p16+32+(264+40)*i);
(*list)[i].name =(char*)(inf.p16+32+40+(264+40)*i);
}
return num_of_file;
}
 
 
char *getcwd(char *buf, unsigned size)
{
if(buf == NULL){
buf = malloc(size);
if((buf = malloc(size))==NULL)
{
return NULL;
}
}
__asm__ __volatile__(
"int $0x40"
::"a"(30),"b"(2),"c"(buf), "d"(size));