diff --git a/fsdrv/main.c b/fsdrv/main.c index 86fd9b4..51e584a 100644 --- a/fsdrv/main.c +++ b/fsdrv/main.c @@ -29,12 +29,6 @@ int main() { case VFS_OPEN: vfs_msg->flags=0; break; - case VFS_PUTC: { - char str[]={(char)vfs_msg->data,'\0'}; - vga_write_string(&str[0]); - vfs_msg->flags=0; - break; - } case VFS_PUTS: { char* data=malloc(sizeof(char)*vfs_msg->data); Message msg; diff --git a/libc/stdio.c b/libc/stdio.c index 0da7f6c..e63aa7c 100644 --- a/libc/stdio.c +++ b/libc/stdio.c @@ -64,27 +64,13 @@ FILE* fopen(char* filename,char* mode) { int putc(int c, FILE* stream) __attribute__ ((alias ("fputc"))); int fputc(int c, FILE* stream) { - vfs_message* msg_data=make_msg(VFS_PUTC,0,0,*stream,c); - Message msg; - msg.from=box; - msg.to=VFS_MBOX; - msg.msg=msg_data; - msg.size=sizeof(vfs_message); - mailbox_send_msg(&msg); - yieldToPID(VFS_PID); - mailbox_get_msg(box,&msg,sizeof(vfs_message)); - while (msg.from==0) { - yieldToPID(VFS_PID); - mailbox_get_msg(box,&msg,sizeof(vfs_message)); - } - vfs_message* vfs_msg=(vfs_message*)msg.msg; - if (vfs_msg->flags) { - free(msg.msg); - return EOF; - } else { - free(msg.msg); + char str[]={c,'\0'}; + if (fputs(str,stream)==0) { return c; + } else { + return EOF; } + return EOF; } int fputs(const char* s, FILE* stream) { diff --git a/sysroot/usr/include/ipc/vfs.h b/sysroot/usr/include/ipc/vfs.h index d023040..280feab 100644 --- a/sysroot/usr/include/ipc/vfs.h +++ b/sysroot/usr/include/ipc/vfs.h @@ -3,7 +3,6 @@ typedef enum { VFS_OPEN, - VFS_PUTC, VFS_PUTS, VFS_GETC, VFS_CLOSE, diff --git a/vfs/main.c b/vfs/main.c index 600bcb2..b55f640 100644 --- a/vfs/main.c +++ b/vfs/main.c @@ -127,27 +127,6 @@ void vfs_fopen(vfs_message* vfs_msg,uint32_t from) { vfs_msg->flags=2; } -void vfs_putc(vfs_message* vfs_msg,uint32_t from) { - uint32_t fd=vfs_msg->fd; - vfs_file file_info=fd_tables[from][fd]; - strcpy(&vfs_msg->path[0],file_info.path); - strcpy(&vfs_msg->mode[0],file_info.mode); - vfs_msg->pos=file_info.pos; - Message msg; - msg.from=box; - msg.to=drvs[file_info.mntpnt->type]; - msg.size=sizeof(vfs_message); - msg.msg=vfs_msg; - mailbox_send_msg(&msg); - yield(); - vfs_msg=get_message(&msg); - if (vfs_msg->flags!=0) { - return; - } - fd_tables[from][fd].pos++; - vfs_msg->flags=0; -} - void vfs_puts(vfs_message* vfs_msg,uint32_t from) { char* data=malloc(sizeof(char)*vfs_msg->data); Message msg; @@ -254,9 +233,6 @@ int main() { case VFS_OPEN: vfs_fopen(vfs_msg,msg.from); break; - case VFS_PUTC: - vfs_putc(vfs_msg,msg.from); - break; case VFS_PUTS: vfs_puts(vfs_msg,msg.from); break;