Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 4920 → Rev 4921

/contrib/sdk/sources/newlib/libc/sys/io.c
0,0 → 1,60
 
#include <stddef.h>
#include "io.h"
 
extern __io_handle __io_tab[64];
 
static int fake_io(const char *path, const void *buff,
size_t offset, size_t count, size_t *done)
{
*done = 0;
return 10;
};
 
static int fake_io_read(const char *path, void *buff,
size_t offset, size_t count, size_t *done) __attribute__ ((alias("fake_io")));
 
static int fake_io_write(const char *path, const void *buff,
size_t offset, size_t count, size_t *done) __attribute__ ((alias("fake_io")));
 
static inline void debug_out(const char val)
{
__asm__ __volatile__(
"int $0x40 \n\t"
::"a"(63), "b"(1),"c"(val));
}
 
static int debugwrite(const char *path, const void *buff,
size_t offset, size_t count, size_t *writes)
{
int ret = count;
const char *p = buff;
 
while (count--)
{
debug_out(*p++);
};
*writes = ret;
return ret;
};
 
void init_stdio()
{
__io_handle *ioh;
 
ioh = &__io_tab[__io_alloc()];
ioh->mode = _READ|_ISTTY;
ioh->read = &fake_io_read;
ioh->write = &fake_io_write;
 
ioh = &__io_tab[__io_alloc()];
ioh->mode = _WRITE|_ISTTY;
ioh->read = &fake_io_read;
ioh->write = &debugwrite;
 
ioh = &__io_tab[__io_alloc()];
ioh->mode = _WRITE|_ISTTY;
ioh->read = &fake_io_read;
ioh->write = &debugwrite;
 
}