优化ipc结构,非常精简

This commit is contained in:
zhangzheng
2023-09-07 23:47:34 +08:00
parent ad72f5e0da
commit b76d5e77bf
126 changed files with 31581 additions and 654 deletions

View File

@@ -34,7 +34,7 @@ static void log_reg(void)
INIT_KOBJ(log_reg);
static msg_tag_t log_write_data(log_t *log, const char *data, int len)
{
for (int i = 0; i < len; i++)
for (int i = 0; i < len && data[i]; i++)
{
putc(data[i]);
}
@@ -43,10 +43,10 @@ static msg_tag_t log_write_data(log_t *log, const char *data, int len)
static void
log_syscall(kobject_t *kobj, syscall_prot_t sys_p, msg_tag_t in_tag, entry_frame_t *f)
{
msg_tag_t tag = msg_tag_init3(0, 0, -EINVAL);
msg_tag_t tag = msg_tag_init4(0, 0, 0, -EINVAL);
if (sys_p.prot != LOG_PROT)
{
f->r[0] = msg_tag_init3(0, 0, -EPROTO).raw;
f->r[0] = msg_tag_init4(0, 0, 0, -EPROTO).raw;
return;
}
switch (sys_p.op)
@@ -54,7 +54,7 @@ log_syscall(kobject_t *kobj, syscall_prot_t sys_p, msg_tag_t in_tag, entry_frame
case WRITE_DATA:
tag = log_write_data(
(log_t *)kobj, (const char *)(&f->r[1]),
MIN(ipc_type_create(in_tag.type2).msg_buf_len, WORD_BYTES * 5));
MIN(in_tag.msg_buf_len * WORD_BYTES, WORD_BYTES * 5));
break;
case READ_DATA:
printk("don't support read data.\n");
@@ -63,7 +63,7 @@ log_syscall(kobject_t *kobj, syscall_prot_t sys_p, msg_tag_t in_tag, entry_frame
printk("don't support set flags.\n");
break;
default:
tag = msg_tag_init3(0, 0, -ENOSYS);
tag = msg_tag_init4(0, 0, 0, -ENOSYS);
break;
}
f->r[0] = tag.raw;