diff --git a/bin/muffin/main.cc b/bin/muffin/main.cc index 59e9561..35d4cdd 100644 --- a/bin/muffin/main.cc +++ b/bin/muffin/main.cc @@ -30,6 +30,12 @@ #include #include +extern "C" { +#include +#include +#include +} + int main(int argc, char **argv) { vWindow *window = new vWindow(); @@ -43,17 +49,37 @@ ogImage * image = new ogImage(); ogSurface * bgImage = new ogSurface(); -//image->Load("/var/background/ringed800_600.bmp", *bgImage); //image->Load("/var/background/sphere800x600.bmp", *bgImage); //image->Load("/var/background/carrot2_Running.bmp", *bgImage); -bgImage->ogCreate(800,600,OG_PIXFMT_16BPP); -bgImage->ogLine(400, 400, 400, 200, bgImage->ogPack(255,0,255)); -bgImage->ogLine(200, 200, 200, 400, bgImage->ogPack(0,255,0)); +//bgImage->ogLine(400, 400, 400, 200, bgImage->ogPack(255,0,255)); +//bgImage->ogLine(200, 200, 200, 400, bgImage->ogPack(0,255,0)); +//window->ogCopy(*bgImage); +//image->Load("/var/background/sphere800x600.bmp", *window); + +//image->Load("/var/background/sphere800x600.bmp", *bgImage); + +bgImage->ogCreate(800,600,OG_PIXFMT_24BPP); + +int fd = open("/var/background/ringed800_600.bmp", O_RDONLY); +//int fd = open("/var/background/sphere800x600.bmp", O_RDONLY); + +std::cout << "FD: " << fd << std::endl; + +if (fd != 0) { +lseek(fd, 54, SEEK_SET); + +read(fd, bgImage->ogGetPtr(0,0), 800*600*3); + +close(fd); +} + +//image->Load("/var/background/ringed800_600.bmp", *bgImage); +//image->Load("/var/background/sphere800x600.bmp", *bgImage); window->ogCopy(*bgImage); window->vSDECommand(3); -bgImage->ogLine(bgImage->ogGetMaxX(), bgImage->ogGetMaxY(), 0, 0, 0xFF00FFFF); +//bgImage->ogLine(bgImage->ogGetMaxX(), bgImage->ogGetMaxY(), 0, 0, 0xFF00FFFF); return(0); while (1) { diff --git a/sys/fs/vfs/file.c b/sys/fs/vfs/file.c index 35fb2b2..655a0c9 100644 --- a/sys/fs/vfs/file.c +++ b/sys/fs/vfs/file.c @@ -227,6 +227,7 @@ ************************************************************************/ //void sysFopen(const char *file,char *flags,userFileDescriptor *userFd) { int sys_fopen( struct thread *td, struct sys_fopen_args *args ) { + kprintf("fopen really?"); if ( args->FILE == NULL ) { kprintf( "Error: userFd == NULL, File: %s, Line: %i\n", __FILE__, __LINE__ ); return (-1); diff --git a/sys/fs/vfs/vfs.c b/sys/fs/vfs/vfs.c index 716a78f..3a0cc92 100644 --- a/sys/fs/vfs/vfs.c +++ b/sys/fs/vfs/vfs.c @@ -143,6 +143,8 @@ int index = 0x0; struct file *nfp = 0x0; + kprintf("openat"); + error = falloc(td,&nfp,&index); if (error) @@ -156,6 +158,9 @@ td->td_retval[0] = -1; } else { + //td->o_files[index] = nfp; + td->td_retval[0] = index; + /* for (index = 0; index < 256;index++) { if (td->o_files[index] == 0x0) { td->o_files[index] = nfp;//->fd; @@ -166,9 +171,10 @@ td->td_retval[0] = -1;//nfp->fd->ino;//MrOlsen 2018index; } } + */ } - //kprintf("path: %s:%i ", args->path, index); + kprintf("path: %s:%i ", args->path, index); return (error); } diff --git a/sys/kernel/vfs_calls.c b/sys/kernel/vfs_calls.c index aa13043..c588451 100644 --- a/sys/kernel/vfs_calls.c +++ b/sys/kernel/vfs_calls.c @@ -88,6 +88,8 @@ getfd(td, &fd, args->fd); + //kprintf("\nsys_read\n"); + if (args->fd > 3) { td->td_retval[0] = fread(args->buf, args->nbyte, 1, fd->fd); }