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

📄 apc.h

📁 该项目主要是将wingdows程序直接运行在linux上
💻 H
字号:
/* * apc.h * * Copyright (C) 2006  Insigme Co., Ltd * * Authors:  * - Limin Jin * * 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. *//*  * apc.h: * Reference to ReactOS code */#ifndef _APC_H#define _APC_H#include <linux/module.h>#include "thread.h"#include "process.h"#include <linux/winternl.h>#include <linux/spinlock.h>#include <linux/sched.h>#include "win32.h"#ifdef CONFIG_UNIFIED_KERNEL#ifndef TIF_APC#define TIF_APC 13#endif#ifndef IO_NO_INCREMENT #define IO_NO_INCREMENT 0#endif#define DDKAPI#define SystemDllApcDispatcher NULL#define STATUS_UNSUCCESSFUL ((NTSTATUS)0xC0000001L)#define ARGUMENT_PRESENT(ArgumentPointer) \  ((BOOLEAN) ((PVOID)ArgumentPointer != (PVOID)NULL))#define PKKERNEL_ROUTINE        kernel_routine_t#define PKRUNDOWN_ROUTINE       rundown_routine_t#define PKNORMAL_ROUTINE        normal_routine_t#define KPROCESSOR_MODE         kprocessor_mode_t#ifdef __PPC__#define CONTEXT_CONTROL         1L#define CONTEXT_FLOATING_POINT  2L#define CONTEXT_INTEGER         4L#define CONTEXT_DEBUG_REGISTERS	8L#define CONTEXT_FULL (CONTEXT_CONTROL | CONTEXT_FLOATING_POINT | CONTEXT_INTEGER)#define CONTEXT_DEBUGGER (CONTEXT_FULL)#else /*86 *//*#define SIZE_OF_80387_REGISTERS      80*//* Values for contextflags */#define CONTEXT_i386    0x10000#define CONTEXT_CONTROL            (CONTEXT_i386 | 1)#define CONTEXT_INTEGER            (CONTEXT_i386 | 2)#define CONTEXT_SEGMENTS           (CONTEXT_i386 | 4)#define CONTEXT_FLOATING_POINT     (CONTEXT_i386 | 8)#define CONTEXT_DEBUG_REGISTERS    (CONTEXT_i386 | 0x10)#define CONTEXT_EXTENDED_REGISTERS (CONTEXT_i386 | 0x20)#define CONTEXT_FULL               (CONTEXT_CONTROL | CONTEXT_INTEGER | CONTEXT_SEGMENTS)#define MAXIMUM_SUPPORTED_EXTENSION  512#endiftypedef enum _KAPC_ENVIRONMENT {  OriginalApcEnvironment,  AttachedApcEnvironment,  CurrentApcEnvironment} KAPC_ENVIRONMENT;typedef struct kthread *PKTHREAD;typedef struct pt_regs *PKTRAP_FRAME;typedef struct kapc KAPC, *PKAPC;typedef enum _MODE {    KernelMode,    UserMode,    MaximumMode} MODE;typedef enum _KOBJECTS {   EventNotificationObject = 0,   EventSynchronizationObject = 1,   MutantObject = 2,   ProcessObject = 3,   QueueObject = 4,   SemaphoreObject = 5,   ThreadObject = 6,   GateObject = 7,   TimerNotificationObject = 8,   TimerSynchronizationObject = 9,   Spare2Object = 10,   Spare3Object = 11,   Spare4Object = 12,   Spare5Object = 13,   Spare6Object = 14,   Spare7Object = 15,   Spare8Object = 16,   Spare9Object = 17,   ApcObject = 18,   DpcObject = 19,   DeviceQueueObject = 20,   EventPairObject = 21,   InterruptObject = 22,   ProfileObject = 23,   ThreadedDpcObject = 24,   MaximumKernelObject = 25} KOBJECTS;typedef LONG KPRIORITY;typedef struct _FXSAVE_FORMAT{}FXSAVE_FORMAT,*PFXSAVE_FORMAT;typedef struct _FNSAVE_FORMAT{}FNSAVE_FORMAT,*PFNSAVE_FORMAT;typedef struct _FX_SAVE_AREA {	union {		FNSAVE_FORMAT FnArea;		FXSAVE_FORMAT FxArea;	} U;	ULONG NpxSavedCpu;	ULONG Cr0NpxState;} FX_SAVE_AREA, *PFX_SAVE_AREA;VOIDSTDCALLtest(PVOID* NormalContext,		PVOID* SystemArgument1,		PVOID* SystemArgument2);VOID STDCALLKiFreeApcRoutine(PKAPC Apc,                 PKNORMAL_ROUTINE* NormalRoutine,                 PVOID* NormalContext,                 PVOID* SystemArgument1,                 PVOID* SystemArgument2);BOOLEANSTDCALLKiInsertQueueApc(PKAPC Apc,                 KPRIORITY PriorityBoost);VOIDSTDCALLKeInitializeApc(IN PKAPC Apc,                IN PKTHREAD Thread,                IN KAPC_ENVIRONMENT TargetEnvironment,                IN PKKERNEL_ROUTINE KernelRoutine,                IN PKRUNDOWN_ROUTINE RundownRoutine OPTIONAL,                IN PKNORMAL_ROUTINE NormalRoutine,                IN KPROCESSOR_MODE Mode,                IN PVOID Context);BOOLEANSTDCALLKeInsertQueueApc(PKAPC Apc,                 PVOID SystemArgument1,                 PVOID SystemArgument2,                 KPRIORITY PriorityBoost);VOID STDCALLKiDeliverApc(KPROCESSOR_MODE DeliveryMode,	    PVOID Reserved,	    struct pt_regs * TrapFrame);BOOLEANSTDCALLKeTestAlertThread(IN KPROCESSOR_MODE AlertMode);VOIDSTDCALLKiInitializeUserApc(IN PVOID Reserved,                    IN PKTRAP_FRAME TrapFrame,                    IN PKNORMAL_ROUTINE NormalRoutine,                    IN PVOID NormalContext,                    IN PVOID SystemArgument1,                    IN PVOID SystemArgument2) ; VOIDKeContextToTrapFrame(PContext Context,		     PKTRAP_FRAME TrapFrame);#endif /* CONFIG_UNIFIED_KERNEL */#endif /* _APC_H */

⌨️ 快捷键说明

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