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

📄 unifiedkernel-0.2.0-k2.6.13.diff

📁 该项目主要是将wingdows程序直接运行在linux上
💻 DIFF
📖 第 1 页 / 共 5 页
字号:
+	unsigned long			commit_charge;		 	/* */+	+	/* vm */+	unsigned long			peak_virtual_size;		/* */+	unsigned long			virtual_size;		  	/* */+	+	struct mmsupport		vm;			   	/* */+	struct list_head		session_process_links;		/* */+	+	void*				debug_port;			/* */+	void*				exception_port;			/* */+	struct handle_table*		object_table;		  	/* */+	+	/* security */+	struct ex_fast_ref		token;				/* */+	+	unsigned long			working_set_page;		/* */+	struct kguarded_mutex		address_creation_lock;		/* */+	spinlock_t			hyper_spacelock;	   	/* */+	struct ethread*			fork_in_progress;		/* */+	unsigned long			hardware_trigger;	  	/* */+	void*				pae_top;		   	/* */+	unsigned long			modified_page_count;		/* */+	struct mm_avl_table		vad_root;		  	/* */+	void*				vad_free_hint;			/* */+	void*				clone_root;			/* */+		+	struct mm_avl_table		physical_vadroot;	  	/* */+	+	unsigned long			number_of_private_pages;	/* */+	unsigned long			number_of_locked_pages;		/* */+	unsigned short			next_page_color;		/* */+	+	/* used by debug subsystem */+	void*				section_object;			/* */+	+	/* peb */+	void*			peb;			 	/* */+	void*				section_base_address;		/* */+	+	struct eprocess_quota_block*	quota_block;		  	/* */+	unsigned long			last_thread_exit_status;	/* */+	+	struct pagefault_history* 	working_set_watch;		/* */+	void*				win32_window_station;		/* */+	void *				inherited_from_unique_pid;	/* */+	access_mask_t			granted_access;			/* */+	unsigned long			def_hard_error_processing; 	/* */+	void*				ldt_information;	   	/* */+	void*				vdm_objects;		 	/* */+	void*				device_map;			/* */+	+	void*				spare0[3];			/* */+	+	union+	{+		struct hardware_pte_x86	pagedirectory_pte;	 	/* */+		unsigned long long	filler;				/* */+	};+	char				image_file_name[16];		/* */+	unsigned char			priority_class;			/* */+	union+	{+		struct+		{+			unsigned char	subsystem_minor_version;	/* */+			unsigned char	subsystem_major_version;	/* */+		};+		unsigned short		subsystem_version;		/* */+	};+	void**				win32_process;			/* */+	struct ejob*			job;			 	/* */+	unsigned long			job_status;			/* */+	struct list_head		job_links;		 	/* */+	void*				locked_pages_list;		/* */+	+	/* used by rdr/security for authentication */+	void*				security_port;		 	/* */+	+	large_integer_t			read_operation_count;		/* */+	large_integer_t			write_operation_count;		/* */+	large_integer_t			other_operation_count;		/* */+	large_integer_t			read_transfer_count;		/* */+	large_integer_t			write_transfer_count;		/* */+	large_integer_t			other_transfer_count;		/* */+	+	unsigned long			commit_charge_limit;		/* */+	unsigned long			commit_charge_peak;		/* */+	+	struct list_head		thread_list_head;		/* */+	+	union+	{+		struct+		{+			unsigned long	create_reported:1;+			unsigned long	no_debug_inherit:1;+			unsigned long	process_exiting:1;+			unsigned long	process_delete:1;+			unsigned long	wow64_split_pages:1;+			unsigned long	vm_deleted:1;+			unsigned long	outswap_enabled:1;+			unsigned long	outswapped:1;+			unsigned long	fork_failed:1;+			unsigned long	wow64_va_space4Gb:1;+			unsigned long	address_space_initialized:2;+			unsigned long	set_timer_resolution:1;+			unsigned long	break_on_termination:1;+			unsigned long	session_creation_underway:1;+			unsigned long	write_watch:1;+			unsigned long	process_in_session:1;+			unsigned long	override_address_space:1;+			unsigned long	has_address_space:1;+			unsigned long	launch_prefetched:1;+			unsigned long	inject_inpage_errors:1;+			unsigned long	vm_top_down:1;+			unsigned long	image_notify_done:1;+			unsigned long	pde_update_needed:1;+			unsigned long	vdm_allowed:1;+			unsigned long	smap_allowed:1;+			unsigned long	create_failed:1;+			unsigned long	default_io_priority:3;+			unsigned long	spare1:1;+			unsigned long	spare2:1;+		};+		unsigned long		flags;					/* */+	};++	unsigned long			cookie;				   	/* */+	unsigned long			session;			  	/* */+	unsigned long			active_threds;			   	/* */+	struct ex_fast_ref		prefetch_trace;				/* */+	void*				awe_info;				/* */+	struct se_audit_proc_creation_info	se_audit_proc_creation_info;	/* */+	struct list_head			mm_process_links;		/* */++	/* FIXME MOVE TO AVL TREES */+	struct maddress_space		address_space;				/* */++	/* for unified kernel */+	struct win32_object* 		ep_obj;	/* process object */+	struct nls_table*		ep_nls;	/* unicode-ascii translation */+	rwlock_t			ep_lock;+	struct win32_object		**ep_handles;	/* handle map */+	struct win32_object		*ep_handles_array[0];	/* handle map */+}; /* struc eprocess */++typedef struct eprocess EPROCESS, *PEPROCESS;++static inline struct ethread *get_first_thread(struct eprocess *process)+{+	return list_entry(process->thread_list_head.next, struct ethread, thread_list_entry);+}++#endif /* _WIN32_PROCESS_H */+diff -Nur linux-2.6.13.ori/include/linux/win32_thread.h linux-2.6.13/include/linux/win32_thread.h--- linux-2.6.13.ori/include/linux/win32_thread.h	1970-01-01 00:00:00.000000000 +0000+++ linux-2.6.13/include/linux/win32_thread.h	2006-12-29 15:12:11.000000000 +0000@@ -0,0 +1,344 @@+/*+ * win32_thread.h+ *+ * Copyright (C) 2006  Insigme Co., Ltd+ *+ * Authors: + * - Decao Mao, Chenzhan Hu, Lixing Chu, Limin Jin, Liwei Zhou, Zhiqiang Jiao+ *+ * This software has been developed while working on the Linux Unified Kernel+ * project (http://linux.insigma.com.cn) in the Insigma Reaserch Institute,  + * which is a subdivision of Insigma Co., Ltd (http://www.insigma.com.cn).+ * + * The project is sponsored by Insigma Co., Ltd.+ *+ * The authors can be reached at linux@insigma.com.cn.+ *+ * This program is free software; you can redistribute it and/or modify it+ * under the terms of  the GNU General  Public License as published by the+ * Free Software Foundation; either version 2 of the  License, or (at your+ * option) any later version.+ *+ * Revision History:+ *   Jan 2006 - Created.+ */++#ifndef _WIN32_THREAD_H_+#define _WIN32_THREAD_H_++#include <linux/module.h>+#include <linux/list.h>+#include <asm/atomic.h>+#include <linux/win32_object.h>+#include <linux/winternl.h>++#define WIN32_THREAD_SIGNAL_OKAY	0+#define WIN32_THREAD_CANCEL_SIGNAL	1++struct task_struct;++enum kthread_state {+	Initialized,+    	Ready,+    	Running,+    	Standby,+    	Terminated,+    	Waiting,+    	Transition,+    	DeferredReady,+};++struct ethread_operations {+	const char	*name;		/* ethread name */+	struct module	*owner;		/* responsible module */++	void (*close)(struct ethread *thread);	/* request to destruct */+	void (*exit)(struct ethread *thread, int status);	/* notification of exit */+	int (*signal)(struct ethread *thread, int signal);	/* notification of signal (can cancel) */+	void (*execve)(struct ethread *thread);	/* notification of execve */+	/* notification that fork/clone has set up the new process and */+	void (*fork)(struct ethread *thread, struct task_struct *parent,+		     struct task_struct *child, unsigned long clone_flags);+};++struct w32thread+{+	void*			message_queue;+	struct semaphore 	window_list_lock;+	struct list_head 	window_list_head;+	struct list_head 	w32_callback_list_head;+	struct kbdtables*	keyboard_layout;+	struct desktop_object*	desktop;+	void*			desktop_handle;+	unsigned long  		message_pump_hook_value;+	unsigned char 		is_exiting;+};++struct kthread+{+	struct dispatcher_header 	header;    +	struct list_head        	mutant_list_head;      +	void*				initial_stack;        +	unsigned long         		stack_limit;          +	void*			teb;                +	void*				tls_array;            +	void*				kernel_stack;         +	unsigned char             	debug_active;         +	unsigned char             	state;               +	unsigned char           	alerted[2];          +	unsigned char             	iopl;                +	unsigned char             	npx_state;            +	char              		saturation;          +	char              		priority;            +	unsigned long             	context_switches;     +	long              		wait_status;          +	kirql_t             		wait_irql;            +	kprocessor_mode_t              	wait_mode;            +	unsigned char             	wait_next;            +	unsigned char             	wait_reason;          +	union                                  +	{+		struct kwait_block*	wait_block_list;       +		struct kgate*		gate_object;          +	};                                     +	struct list_head        	wait_list_entry;       +	unsigned long             	wait_time;            +	char              		base_priority;        +	unsigned char             	decrement_count;      +	unsigned char             	priority_decrement;   +	char              		quantum;             +	struct kwait_block       	wait_block[4];        +	void*				lego_data;            ++	kaffinity_t         		user_affinity;        +	kaffinity_t         		affinity;            +	unsigned char             	system_affinity_active;++	unsigned char             	power_state;          +	unsigned char             	npx_irql;             +	unsigned char             	pad[1];              ++	struct kqueue*			queue;              +	struct ktimer            	timer;               +	struct list_head        	queue_list_entry;      ++	unsigned char             	preempted;           +	unsigned char             	process_ready_queue;   +	unsigned char             	next_processor;       +	unsigned char             	kstack_resident; ++	void*				callback_stack;       ++	struct w32thread*		win32thread;        +	struct ktrap_frame*		trap_frame;        ++	/* APC */+	union+	{+		struct+		{+			unsigned short 	kernel_apc_disable;+			unsigned short  special_apc_disable;+		};+		unsigned long         	combined_apc_disable;  +	};+	spinlock_t        		apc_queue_lock;        +	struct kapc_state*		apc_state_pointer[2];  +	struct kapc_state        	apc_state;            +	struct kapc_state        	saved_apc_state;       +	struct kapc              	suspend_apc;          +	unsigned char             	apc_queueable;        +	unsigned char             	apc_state_index;       ++	unsigned char             	enable_stack_swap;     +	unsigned char             	large_stack;          +	unsigned char             	resource_index;       +	unsigned char             	previous_mode;        +	unsigned char             	alertable;           +	unsigned char             	auto_alignment;       +	void*				stack_base;           +	struct semaphore        	suspend_semaphore;    +	struct list_head        	thread_list_entry;     +	char              		freeze_count;         +	unsigned char            	suspend_count;        +	unsigned char             	ideal_processor;      +	unsigned char             	disable_boost;        +	unsigned char             	quantum_reset;        +};++struct ethread+{+	struct kthread			tcb;+	union+	{+		ntstatus_t              exit_status;                  +		void*			ofs_chain;                    +	};+	struct list_head                post_block_list;               +	union+	{+		struct termination_port* termination_port;            +		struct ethread*		reaper_link;                 +		void*			keyed_wait_value;              +	};+	spinlock_t                     	active_timer_list_lock;         +	struct list_head               	active_timer_list_head;         +	struct client_id               	cid;                         ++	union+	{+		struct semaphore        lpc_reply_semaphore;           +		struct semaphore        keyed_reply_semaphore;         +	};+	union+	{+		void*			lpc_reply_message;             +		void*			lpc_waiting_on_port;            +	};+	union+	{+		struct list_head	lpc_reply_chain;               +		struct list_head	keyed_wait_chain;              +	};+	unsigned long               	lpc_reply_messageid;           ++	struct ps_impersonation_information*	impersonation_info;           ++	struct list_head 		irp_list;                     +	unsigned long                	top_level_irp;                 +	struct device_object*		device_to_verify;              +	struct eprocess*		threads_process;             +	void*				start_address;                +	union+	{+		void*			win32_start_address;           +		unsigned long           lpc_received_messageid;        +	};+	struct list_head		thread_list_entry;+	ex_rundown_ref_t 		rundown_protect;              +	spinlock_t                   	thread_lock;                  +	unsigned long      		read_cluster_size;             +	access_mask_t 			granted_access;               +	union+	{+		struct+		{+			unsigned long  	terminated:1;+			unsigned long  	dead_thread:1;+			unsigned long  	hide_from_debugger:1;+			unsigned long   active_impersonation_info:1;+			unsigned long   system_thread:1;+			unsigned long   hard_errors_are_disabled:1;+			unsigned long   break_on_termination:1;+			unsigned long   skip_creation_msg:1;+			unsigned long   skip_termination_msg:1;+		};+		unsigned long           cross_thread_flags;            +	};+	union+	{+		struct+		{+			unsigned long   active_exworker:1;+			unsigned long   exworker_can_wait_user:1;+			unsigned long   memory_maker:1;+			unsigned long   keyed_event_inuse:1;+		};+		unsigned long           same_thread_passive_flags;      +	};+	union+	{+		struct+		{+			unsigned long   lpc_received_msgid_valid:1;+			unsigned long   lpc_exit_thread_called:1;+			unsigned long   address_space_owner:1;+			unsigned long   owns_process_workingsete_xclusive:1;+			unsigned long   owns_process_workingset_shared:1;+			unsigned long   owns_system_workingset_exclusive:1;+			unsigned long   owns_system_workingset_shared:1;+			unsigned long   owns_session_workingset_exclusive:1;+			unsigned long   owns_session_workingset_shared:1;+			unsigned long   apc_needed:1;+		};+		unsigned long           same_thread_apc_flags;          +	};+	unsigned char                   forward_cluster_only;          +	unsigned char                   disable_page_fault_clustering;  +	unsigned char                   active_fault_count;            ++	/* for unified kernel */+	atomic_t			et_count;	/* ref count */         +	struct task_struct*		et_task;	/* Linux task */+	struct win32_object*		et_obj;		/* thread object */+	struct ethread_operations*	et_ops;+};++typedef struct ethread ETHREAD, *PETHREAD;++static __inline__ void etget(struct ethread *thread)+{+	atomic_inc(&thread->et_count);+} /* end etget() */++static __inline__ void etput(struct ethread *thread)+{+	if (atomic_dec_and_test(&thread->et_count)){+		struct module *owner = thread->et_ops->owner;+		thread->et_ops->close(thread);	/* will destroy this ethread */+		if(owner)+			module_put(owner);+	}+} /* end etput()*/++/* add a win32 thread to a task */+extern void add_ethread(struct task_struct *tsk, struct ethread *thread);++/* remove a win32 thread from a task */+extern void remove_ethread(struct task_struct *tsk, struct ethread *thread);++/* a win32 thread exit */

⌨️ 快捷键说明

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