Merge fputc with fputs

This commit is contained in:
pjht 2019-08-30 08:17:59 -05:00
parent f92f5f784d
commit 772a121dd8
4 changed files with 5 additions and 50 deletions

View File

@ -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;

View File

@ -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) {

View File

@ -3,7 +3,6 @@
typedef enum {
VFS_OPEN,
VFS_PUTC,
VFS_PUTS,
VFS_GETC,
VFS_CLOSE,

View File

@ -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;