⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 process.c

📁 linux内核源码
💻 C
字号:
/* * Copyright (C) 2002 - 2007 Jeff Dike (jdike@{addtoit,linux.intel}.com) * Licensed under the GPL */#include "linux/init.h"#include "linux/sched.h"#include "as-layout.h"#include "os.h"#include "skas.h"int new_mm(unsigned long stack){	int fd;	fd = os_open_file("/proc/mm", of_cloexec(of_write(OPENFLAGS())), 0);	if (fd < 0)		return fd;	if (skas_needs_stub)		map_stub_pages(fd, STUB_CODE, STUB_DATA, stack);	return fd;}extern void start_kernel(void);static int __init start_kernel_proc(void *unused){	int pid;	block_signals();	pid = os_getpid();	cpu_tasks[0].pid = pid;	cpu_tasks[0].task = current;#ifdef CONFIG_SMP	cpu_online_map = cpumask_of_cpu(0);#endif	start_kernel();	return 0;}extern int userspace_pid[];extern char cpu0_irqstack[];int __init start_uml(void){	stack_protections((unsigned long) &cpu0_irqstack);	set_sigstack(cpu0_irqstack, THREAD_SIZE);	if (proc_mm)		userspace_pid[0] = start_userspace(0);	init_new_thread_signals();	init_task.thread.request.u.thread.proc = start_kernel_proc;	init_task.thread.request.u.thread.arg = NULL;	return start_idle_thread(task_stack_page(&init_task),				 &init_task.thread.switch_buf);}unsigned long current_stub_stack(void){	if (current->mm == NULL)		return 0;	return current->mm->context.id.stack;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -