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

📄 pthread.h

📁 很有名的一款用于组织DDoS的恶意机器人程序。仅供研究学习
💻 H
📖 第 1 页 / 共 3 页
字号:
/* This is an implementation of the threads API of POSIX 1003.1-2001. * * -------------------------------------------------------------------------- * *      Pthreads-win32 - POSIX Threads Library for Win32 *      Copyright(C) 1998 John E. Bossom *      Copyright(C) 1999,2003 Pthreads-win32 contributors *  *      Contact Email: rpj@callisto.canberra.edu.au *  *      The current list of contributors is contained *      in the file CONTRIBUTORS included with the source *      code distribution. The list can also be seen at the *      following World Wide Web location: *      http://sources.redhat.com/pthreads-win32/contributors.html *  *      This library is free software; you can redistribute it and/or *      modify it under the terms of the GNU Lesser General Public *      License as published by the Free Software Foundation; either *      version 2 of the License, or (at your option) any later version. *  *      This library is distributed in the hope that it will be useful, *      but WITHOUT ANY WARRANTY; without even the implied warranty of *      MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU *      Lesser General Public License for more details. *  *      You should have received a copy of the GNU Lesser General Public *      License along with this library in the file COPYING.LIB; *      if not, write to the Free Software Foundation, Inc., *      59 Temple Place - Suite 330, Boston, MA 02111-1307, USA */#if !defined( PTHREAD_H )#define PTHREAD_H#undef PTW32_LEVEL#if defined(_POSIX_SOURCE)#define PTW32_LEVEL 0/* Early POSIX */#endif#if defined(_POSIX_C_SOURCE) && _POSIX_C_SOURCE >= 199309#undef PTW32_LEVEL#define PTW32_LEVEL 1/* Include 1b, 1c and 1d */#endif#if defined(INCLUDE_NP)#undef PTW32_LEVEL#define PTW32_LEVEL 2/* Include Non-Portable extensions */#endif#define PTW32_LEVEL_MAX 3#if !defined(PTW32_LEVEL)#define PTW32_LEVEL PTW32_LEVEL_MAX/* Include everything */#endif#ifdef _UWIN#   define HAVE_STRUCT_TIMESPEC 1#   define HAVE_SIGNAL_H	1#   undef HAVE_CONFIG_H#   pragma comment(lib, "pthread")#endif/* * ------------------------------------------------------------- * * * Module: pthread.h * * Purpose: *	Provides an implementation of PThreads based upon the *	standard: * *		POSIX 1003.1-2001 *  and *    The Single Unix Specification version 3 * *    (these two are equivalent) * *	in order to enhance code portability between Windows, *  various commercial Unix implementations, and Linux. * *	See the ANNOUNCE file for a full list of conforming *	routines and defined constants, and a list of missing *	routines and constants not defined in this implementation. * * Authors: *	There have been many contributors to this library. *	The initial implementation was contributed by *	John Bossom, and several others have provided major *	sections or revisions of parts of the implementation. *	Often significant effort has been contributed to *	find and fix important bugs and other problems to *	improve the reliability of the library, which sometimes *	is not reflected in the amount of code which changed as *	result. *	As much as possible, the contributors are acknowledged *	in the ChangeLog file in the source code distribution *	where their changes are noted in detail. * *	Contributors are listed in the CONTRIBUTORS file. * *	As usual, all bouquets go to the contributors, and all *	brickbats go to the project maintainer. * * Maintainer: *	The code base for this project is coordinated and *	eventually pre-tested, packaged, and made available by * *		Ross Johnson <rpj@ise.canberra.edu.au> * * QA Testers: *	Ultimately, the library is tested in the real world by *	a host of competent and demanding scientists and *	engineers who report bugs and/or provide solutions *	which are then fixed or incorporated into subsequent *	versions of the library. Each time a bug is fixed, a *	test case is written to prove the fix and ensure *	that later changes to the code don't reintroduce the *	same error. The number of test cases is slowly growing *	and therefore so is the code reliability. * * Compliance: *	See the file ANNOUNCE for the list of implemented *	and not-implemented routines and defined options. *	Of course, these are all defined is this file as well. * * Web site: *	The source code and other information about this library *	are available from * *		http://sources.redhat.com/pthreads-win32/ * * ------------------------------------------------------------- *//* Try to avoid including windows.h */#if defined(__MINGW32__) && defined(__cplusplus)/* * FIXME: The pthreadGCE.dll build gets linker unresolved errors * on pthread_key_create() unless windows.h is included here. * It appears to have something to do with an argument type mismatch. * Looking at tsd.o with 'nm' shows this line: * 00000000 T _pthread_key_create__FPP14pthread_key_t_PFPv_v * instead of * 00000000 T _pthread_key_create */#define PTW32_INCLUDE_WINDOWS_H#endif#ifdef PTW32_INCLUDE_WINDOWS_H#include <windows.h>#endif/* * ----------------- * autoconf switches * ----------------- */#if HAVE_CONFIG_H#include "config.h"#endif /* HAVE_CONFIG_H */#if PTW32_LEVEL >= PTW32_LEVEL_MAX/* Try to avoid including windows.h */#if defined(__MINGW32__) && defined(__cplusplus)/* * FIXME: The pthreadGCE.dll build gets linker unresolved errors * on pthread_key_create() unless windows.h is included here. * It appears to have something to do with an argument type mismatch. * Looking at tsd.o with 'nm' shows this line: * 00000000 T _pthread_key_create__FPP14pthread_key_t_PFPv_v * instead of * 00000000 T _pthread_key_create */#define PTW32_INCLUDE_WINDOWS_H#endif#ifdef PTW32_INCLUDE_WINDOWS_H#include <windows.h>#endif#ifndef NEED_FTIME#include <time.h>#else /* NEED_FTIME *//* use native WIN32 time API */#endif /* NEED_FTIME */#if HAVE_SIGNAL_H#include <signal.h>#endif /* HAVE_SIGNAL_H */#include <setjmp.h>#include <limits.h>/* * Boolean values to make us independent of system includes. */enum {  PTW32_FALSE = 0,  PTW32_TRUE = (! PTW32_FALSE)};/* * This is a duplicate of what is in the autoconf config.h, * which is only used when building the pthread-win32 libraries. */#ifndef PTW32_CONFIG_H#  if defined(WINCE)#    define NEED_ERRNO#    define NEED_SEM#  endif#  if defined(_UWIN) || defined(__MINGW32__)#    define HAVE_MODE_T#  endif#endif/* * */#if PTW32_LEVEL >= PTW32_LEVEL_MAX#ifdef NEED_ERRNO#include "need_errno.h"#else#include <errno.h>#endif#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX *//* * Several systems don't define ENOTSUP. If not, we use * the same value as Solaris. */#ifndef ENOTSUP#  define ENOTSUP 48#endif#ifndef ETIMEDOUT#  define ETIMEDOUT 10060     /* This is the value in winsock.h. */#endif#include <sched.h>/* * To avoid including windows.h we define only those things that we * actually need from it. I don't like the potential incompatibility that * this creates with future versions of windows. */#ifndef PTW32_INCLUDE_WINDOWS_H#ifndef HANDLE# define PTW32__HANDLE_DEF# define HANDLE void *#endif#ifndef DWORD# define PTW32__DWORD_DEF# define DWORD unsigned long#endif#endif#endif /* PTW32_LEVEL >= PTW32_LEVEL_MAX */#ifndef HAVE_STRUCT_TIMESPECstruct timespec {	long tv_sec;	long tv_nsec;};#endif /* HAVE_STRUCT_TIMESPEC */#ifndef SIG_BLOCK#define SIG_BLOCK 0#endif /* SIG_BLOCK */#ifndef SIG_UNBLOCK #define SIG_UNBLOCK 1#endif /* SIG_UNBLOCK */#ifndef SIG_SETMASK#define SIG_SETMASK 2#endif /* SIG_SETMASK */#ifdef __cplusplusextern "C"{#endif				/* __cplusplus *//* * ------------------------------------------------------------- * * POSIX 1003.1-2001 Options * ========================= * * _POSIX_THREADS (set) *			If set, you can use threads * * _POSIX_THREAD_ATTR_STACKSIZE (set) *			If set, you can control the size of a thread's *			stack *				pthread_attr_getstacksize *				pthread_attr_setstacksize * * _POSIX_THREAD_ATTR_STACKADDR (not set) *			If set, you can allocate and control a thread's *			stack. If not supported, the following functions *			will return ENOSYS, indicating they are not *			supported: *				pthread_attr_getstackaddr *				pthread_attr_setstackaddr * * _POSIX_THREAD_PRIORITY_SCHEDULING (set) *			If set, you can use realtime scheduling. *			Indicates the availability of: *				pthread_attr_getinheritsched *				pthread_attr_getschedparam *				pthread_attr_getschedpolicy *				pthread_attr_getscope *				pthread_attr_setinheritsched *				pthread_attr_setschedparam *				pthread_attr_setschedpolicy *				pthread_attr_setscope *				pthread_getschedparam *				pthread_setschedparam *				sched_get_priority_max *				sched_get_priority_min *				sched_rr_set_interval * * _POSIX_THREAD_PRIO_INHERIT (not set) *			If set, you can create priority inheritance *			mutexes. *				pthread_mutexattr_getprotocol + *				pthread_mutexattr_setprotocol + * * _POSIX_THREAD_PRIO_PROTECT (not set) *			If set, you can create priority ceiling mutexes *			Indicates the availability of: *				pthread_mutex_getprioceiling *				pthread_mutex_setprioceiling *				pthread_mutexattr_getprioceiling *				pthread_mutexattr_getprotocol	  + *				pthread_mutexattr_setprioceiling *				pthread_mutexattr_setprotocol	  + * * _POSIX_THREAD_PROCESS_SHARED (not set) *			If set, you can create mutexes and condition *			variables that can be shared with another *			process.If set, indicates the availability *			of: *				pthread_mutexattr_getpshared *				pthread_mutexattr_setpshared *				pthread_condattr_getpshared *				pthread_condattr_setpshared * * _POSIX_THREAD_SAFE_FUNCTIONS (set) *			If set you can use the special *_r library *			functions that provide thread-safe behaviour * * _POSIX_READER_WRITER_LOCKS (set) *			If set, you can use read/write locks * * _POSIX_SPIN_LOCKS (set) *			If set, you can use spin locks * * _POSIX_BARRIERS (set) *			If set, you can use barriers * *	+ These functions provide both 'inherit' and/or *	  'protect' protocol, based upon these macro *	  settings. * * POSIX 1003.1-2001 Limits * =========================== * * PTHREAD_DESTRUCTOR_ITERATIONS *			Maximum number of attempts to destroy *			a thread's thread-specific data on *			termination (must be at least 4) * * PTHREAD_KEYS_MAX *			Maximum number of thread-specific data keys *			available per process (must be at least 128) * * PTHREAD_STACK_MIN *			Minimum supported stack size for a thread * * PTHREAD_THREADS_MAX *			Maximum number of threads supported per *			process (must be at least 64). * * _POSIX_SEM_NSEMS_MAX *	The maximum number of semaphores a process can have. *	(only defined if not already defined) * * _POSIX_SEM_VALUE_MAX *	The maximum value a semaphore can have. *	(only defined if not already defined) * * ------------------------------------------------------------- *//* * POSIX Options */#ifndef _POSIX_THREADS#define _POSIX_THREADS#endif#ifndef _POSIX_READER_WRITER_LOCKS#define _POSIX_READER_WRITER_LOCKS#endif#ifndef _POSIX_SPIN_LOCKS#define _POSIX_SPIN_LOCKS#endif#ifndef _POSIX_BARRIERS#define _POSIX_BARRIERS#endif#define _POSIX_THREAD_SAFE_FUNCTIONS#define _POSIX_THREAD_ATTR_STACKSIZE#define _POSIX_THREAD_PRIORITY_SCHEDULING

⌨️ 快捷键说明

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