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

📄 child_info.h

📁 cygwin, 著名的在win32下模拟unix操作系统的东东
💻 H
字号:
/* child_info.h: shared child info for cygwin   Copyright 2000, 2001, 2002 Red Hat, Inc.This file is part of Cygwin.This software is a copyrighted work licensed under the terms of theCygwin license.  Please consult the file "CYGWIN_LICENSE" fordetails. */#include <setjmp.h>enum{  _PROC_EXEC,  _PROC_SPAWN,  _PROC_FORK,  _PROC_WHOOPS};#define OPROC_MAGIC_MASK 0xff00ff00#define OPROC_MAGIC_GENERIC 0xaf00f000#define PROC_MAGIC_GENERIC 0xaf00fa00#define PROC_EXEC (_PROC_EXEC)#define PROC_SPAWN (_PROC_SPAWN)#define PROC_FORK (_PROC_FORK)#define EXEC_MAGIC_SIZE sizeof(child_info)#define CURR_CHILD_INFO_MAGIC 0x8e0899faU/* NOTE: Do not make gratuitous changes to the names or organization of the   below class.  The layout is checksummed to determine compatibility between   different cygwin versions. */class child_info{public:  DWORD zero[4];	// must be zeroed  DWORD cb;		// size of this record  DWORD intro;		// improbable string  unsigned long magic;	// magic number unique to child_info  unsigned short type;	// type of record, exec, spawn, fork  int cygpid;		// cygwin pid of child process  HANDLE subproc_ready;	// used for synchronization with parent  HANDLE mount_h;  HANDLE parent;  HANDLE pppid_handle;  init_cygheap *cygheap;  void *cygheap_max;  HANDLE cygheap_h;  unsigned fhandler_union_cb;};class mount_info;class _pinfo;class child_info_fork: public child_info{public:  HANDLE forker_finished;// for synchronization with child  DWORD stacksize;	// size of parent stack  jmp_buf jmp;		// where child will jump to  void *stacktop;	// location of top of parent stack  void *stackbottom;	// location of bottom of parent stack};class fhandler_base;class cygheap_exec_info{public:  __uid32_t uid;  char *old_title;  int argc;  char **argv;  int envc;  char **envp;  HANDLE myself_pinfo;};class child_info_spawn: public child_info{public:  cygheap_exec_info *moreinfo;  HANDLE hexec_proc;  child_info_spawn (): moreinfo (NULL) {}  ~child_info_spawn ()  {    if (parent)      CloseHandle (parent);    if (moreinfo)      {	if (moreinfo->old_title)	  cfree (moreinfo->old_title);	if (moreinfo->envp)	  {	    for (char **e = moreinfo->envp; *e; e++)	      cfree (*e);	    cfree (moreinfo->envp);	  }	CloseHandle (moreinfo->myself_pinfo);	cfree (moreinfo);      }  }};void __stdcall init_child_info (DWORD, child_info *, int, HANDLE);extern child_info *child_proc_info;extern child_info_spawn *spawn_info __attribute__ ((alias ("child_proc_info")));extern child_info_fork *fork_info __attribute__ ((alias ("child_proc_info")));

⌨️ 快捷键说明

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