int main(void) { /* NOTE! 这些初始化函数的位置别随便改动! */ trap_init(); /* 在设置其他中断之前 */ console_init(); /* 需打印的在这之后 */ keyboard_init(); hd_init(); /* 需读磁盘的放其后 */ /* graph_init(); */ mem_init(); sched_init(); buff_init(); /* 在内存初始化之后 */ inode_init(); file_table_init(); debug_init(); sti(); super_init(0); /* 开中断之后 */ files_init(); /* unsigned short color = rgb_to_565color(255,255,255); draw_rect(0, 0, 800, 600, color, 1); */ move_to_user_mode(); /* * 进程0马上execve(),替换掉用户态空间,这样进程0就 * 可以写时复制了。注意此时原来的用户态堆栈也被丢弃 * 了,换成了新堆栈。更多参见内存管理。 */ if(!execve("/init")) printf("main: execve init-process failed.\n");
/* Sets up the object. - ... */ RC_TYPE http_client_init(HTTP_CLIENT *p_self) { RC_TYPE rc; do { /*set local params*/ rc = local_set_params(p_self); if (rc != RC_OK) { break; } /*call super*/ rc = super_init(&p_self->super); if (rc != RC_OK) { break; } /*local init*/ } while(0); if (rc != RC_OK) { http_client_shutdown(p_self); } else { p_self->initialized = TRUE; } return rc; }
void shm_client::init(char*n,int l,int q){super_init(n,l,q);}
void shm_server::init(char*n,int l,int q,enum MODE m){super_init(n,l,q);mode=m;}