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

📄 primpl.h

📁 Netscape NSPR库源码
💻 H
📖 第 1 页 / 共 5 页
字号:
**   The memory segment and the PRSegment are freed** INPUTS:	seg:  pointer to PRSegment to be freed** OUTPUTS:	the the PRSegment and its associated memory segment are freed** RETURN:	void***********************************************************************/extern void _PR_DestroySegment(PRSegment *seg);extern PRThreadStack * _PR_NewStack(PRUint32 stackSize);extern void _PR_FreeStack(PRThreadStack *stack);extern PRBool _PR_NotifyThread (PRThread *thread, PRThread *me);extern void _PR_NotifyLockedThread (PRThread *thread);NSPR_API(void) _PR_AddSleepQ(PRThread *thread, PRIntervalTime timeout);NSPR_API(void) _PR_DelSleepQ(PRThread *thread, PRBool propogate_time);extern void _PR_AddThreadToRunQ(PRThread *me, PRThread *thread);NSPR_API(PRThread*) _PR_CreateThread(PRThreadType type,                                     void (*start)(void *arg),                                     void *arg,                                     PRThreadPriority priority,                                     PRThreadScope scope,                                     PRThreadState state,                                     PRUint32 stackSize,                     PRUint32 flags);extern void _PR_NativeDestroyThread(PRThread *thread);extern void _PR_UserDestroyThread(PRThread *thread);extern PRThread* _PRI_AttachThread(    PRThreadType type, PRThreadPriority priority,    PRThreadStack *stack, PRUint32 flags);extern void _PRI_DetachThread(void);#define _PR_IO_PENDING(_thread) ((_thread)->io_pending)NSPR_API(void) _PR_MD_INIT_CPUS();#define    _PR_MD_INIT_CPUS _MD_INIT_CPUSNSPR_API(void) _PR_MD_WAKEUP_CPUS();#define    _PR_MD_WAKEUP_CPUS _MD_WAKEUP_CPUS/* Interrupts related */NSPR_API(void) _PR_MD_START_INTERRUPTS(void);#define    _PR_MD_START_INTERRUPTS _MD_START_INTERRUPTSNSPR_API(void) _PR_MD_STOP_INTERRUPTS(void);#define    _PR_MD_STOP_INTERRUPTS _MD_STOP_INTERRUPTSNSPR_API(void) _PR_MD_ENABLE_CLOCK_INTERRUPTS(void);#define    _PR_MD_ENABLE_CLOCK_INTERRUPTS _MD_ENABLE_CLOCK_INTERRUPTSNSPR_API(void) _PR_MD_DISABLE_CLOCK_INTERRUPTS(void);#define    _PR_MD_DISABLE_CLOCK_INTERRUPTS _MD_DISABLE_CLOCK_INTERRUPTSNSPR_API(void) _PR_MD_BLOCK_CLOCK_INTERRUPTS(void);#define    _PR_MD_BLOCK_CLOCK_INTERRUPTS _MD_BLOCK_CLOCK_INTERRUPTSNSPR_API(void) _PR_MD_UNBLOCK_CLOCK_INTERRUPTS(void);#define    _PR_MD_UNBLOCK_CLOCK_INTERRUPTS _MD_UNBLOCK_CLOCK_INTERRUPTS/* The _PR_MD_WAIT_LOCK and _PR_MD_WAKEUP_WAITER functions put to sleep and * awaken a thread which is waiting on a lock or cvar. */extern PRStatus _PR_MD_WAIT(PRThread *, PRIntervalTime timeout);#define    _PR_MD_WAIT _MD_WAITextern PRStatus _PR_MD_WAKEUP_WAITER(PRThread *);#define    _PR_MD_WAKEUP_WAITER _MD_WAKEUP_WAITER#ifndef _PR_LOCAL_THREADS_ONLY /* not if only local threads supported */NSPR_API(void) _PR_MD_CLOCK_INTERRUPT(void);#define    _PR_MD_CLOCK_INTERRUPT _MD_CLOCK_INTERRUPT#endif/* Stack debugging */NSPR_API(void) _PR_MD_INIT_STACK(PRThreadStack *ts, PRIntn redzone);#define    _PR_MD_INIT_STACK _MD_INIT_STACKNSPR_API(void) _PR_MD_CLEAR_STACK(PRThreadStack* ts);#define    _PR_MD_CLEAR_STACK _MD_CLEAR_STACK/* CPU related */NSPR_API(PRInt32) _PR_MD_GET_INTSOFF(void);#define    _PR_MD_GET_INTSOFF _MD_GET_INTSOFFNSPR_API(void) _PR_MD_SET_INTSOFF(PRInt32 _val);#define    _PR_MD_SET_INTSOFF _MD_SET_INTSOFFNSPR_API(_PRCPU*) _PR_MD_CURRENT_CPU(void);#define    _PR_MD_CURRENT_CPU _MD_CURRENT_CPUNSPR_API(void) _PR_MD_SET_CURRENT_CPU(_PRCPU *cpu);#define    _PR_MD_SET_CURRENT_CPU _MD_SET_CURRENT_CPUNSPR_API(void) _PR_MD_INIT_RUNNING_CPU(_PRCPU *cpu);#define    _PR_MD_INIT_RUNNING_CPU _MD_INIT_RUNNING_CPU/* * Returns the number of threads awoken or 0 if a timeout occurred; */extern PRInt32 _PR_MD_PAUSE_CPU(PRIntervalTime timeout);#define    _PR_MD_PAUSE_CPU _MD_PAUSE_CPUextern void _PR_MD_CLEANUP_BEFORE_EXIT(void);#define _PR_MD_CLEANUP_BEFORE_EXIT _MD_CLEANUP_BEFORE_EXITextern void _PR_MD_EXIT(PRIntn status);#define    _PR_MD_EXIT _MD_EXIT/* Locks related */NSPR_API(void) _PR_MD_INIT_LOCKS(void);#define    _PR_MD_INIT_LOCKS _MD_INIT_LOCKSNSPR_API(PRStatus) _PR_MD_NEW_LOCK(_MDLock *md);#define    _PR_MD_NEW_LOCK _MD_NEW_LOCKNSPR_API(void) _PR_MD_FREE_LOCK(_MDLock *md);#define    _PR_MD_FREE_LOCK _MD_FREE_LOCKNSPR_API(void) _PR_MD_LOCK(_MDLock *md);#define    _PR_MD_LOCK _MD_LOCK/* Return 0 on success, a nonzero value on failure. */NSPR_API(PRIntn) _PR_MD_TEST_AND_LOCK(_MDLock *md);#define    _PR_MD_TEST_AND_LOCK _MD_TEST_AND_LOCKNSPR_API(void) _PR_MD_UNLOCK(_MDLock *md);#define    _PR_MD_UNLOCK _MD_UNLOCKNSPR_API(void) _PR_MD_IOQ_LOCK(void);#define    _PR_MD_IOQ_LOCK _MD_IOQ_LOCKNSPR_API(void) _PR_MD_IOQ_UNLOCK(void);#define    _PR_MD_IOQ_UNLOCK _MD_IOQ_UNLOCK#ifndef _PR_LOCAL_THREADS_ONLY /* not if only local threads supported *//* Semaphore related -- only for native threads */#ifdef HAVE_CVAR_BUILT_ON_SEMNSPR_API(void) _PR_MD_NEW_SEM(_MDSemaphore *md, PRUintn value);#define _PR_MD_NEW_SEM _MD_NEW_SEMNSPR_API(void) _PR_MD_DESTROY_SEM(_MDSemaphore *md);#define _PR_MD_DESTROY_SEM _MD_DESTROY_SEMNSPR_API(PRStatus) _PR_MD_TIMED_WAIT_SEM(    _MDSemaphore *md, PRIntervalTime timeout);#define _PR_MD_TIMED_WAIT_SEM _MD_TIMED_WAIT_SEMNSPR_API(PRStatus) _PR_MD_WAIT_SEM(_MDSemaphore *md);#define _PR_MD_WAIT_SEM _MD_WAIT_SEMNSPR_API(void) _PR_MD_POST_SEM(_MDSemaphore *md);#define _PR_MD_POST_SEM _MD_POST_SEM#endif /* HAVE_CVAR_BUILT_ON_SEM */#endif/* Condition Variables related -- only for native threads */#ifndef _PR_LOCAL_THREADS_ONLY /* not if only local threads supported */NSPR_API(PRInt32) _PR_MD_NEW_CV(_MDCVar *md);#define    _PR_MD_NEW_CV _MD_NEW_CVNSPR_API(void) _PR_MD_FREE_CV(_MDCVar *md);#define    _PR_MD_FREE_CV _MD_FREE_CVNSPR_API(void) _PR_MD_WAIT_CV(    _MDCVar *mdCVar,_MDLock *mdLock,PRIntervalTime timeout);#define    _PR_MD_WAIT_CV _MD_WAIT_CVNSPR_API(void) _PR_MD_NOTIFY_CV(_MDCVar *md, _MDLock *lock);#define    _PR_MD_NOTIFY_CV _MD_NOTIFY_CVNSPR_API(void) _PR_MD_NOTIFYALL_CV(_MDCVar *md, _MDLock *lock);#define    _PR_MD_NOTIFYALL_CV _MD_NOTIFYALL_CV#endif /* _PR_LOCAL_THREADS_ONLY *//* Threads related */NSPR_API(PRThread*) _PR_MD_CURRENT_THREAD(void);#define    _PR_MD_CURRENT_THREAD _MD_CURRENT_THREADNSPR_API(PRThread*) _PR_MD_GET_ATTACHED_THREAD(void);#define    _PR_MD_GET_ATTACHED_THREAD _MD_GET_ATTACHED_THREADNSPR_API(PRThread*) _PR_MD_LAST_THREAD(void);#define    _PR_MD_LAST_THREAD _MD_LAST_THREADNSPR_API(void) _PR_MD_SET_CURRENT_THREAD(PRThread *thread);#define    _PR_MD_SET_CURRENT_THREAD _MD_SET_CURRENT_THREADNSPR_API(void) _PR_MD_SET_LAST_THREAD(PRThread *thread);#define    _PR_MD_SET_LAST_THREAD _MD_SET_LAST_THREADextern PRStatus _PR_MD_INIT_THREAD(PRThread *thread);#define    _PR_MD_INIT_THREAD _MD_INIT_THREADextern void _PR_MD_EXIT_THREAD(PRThread *thread);#define    _PR_MD_EXIT_THREAD _MD_EXIT_THREAD#ifndef _PR_LOCAL_THREADS_ONLY /* not if only local threads supported */NSPR_API(PRStatus) _PR_MD_INIT_ATTACHED_THREAD(PRThread *thread);#define    _PR_MD_INIT_ATTACHED_THREAD _MD_INIT_ATTACHED_THREADextern void _PR_MD_SUSPEND_THREAD(PRThread *thread);#define    _PR_MD_SUSPEND_THREAD _MD_SUSPEND_THREADextern void _PR_MD_RESUME_THREAD(PRThread *thread);#define    _PR_MD_RESUME_THREAD _MD_RESUME_THREADextern void _PR_MD_SUSPEND_CPU(_PRCPU  *cpu);#define    _PR_MD_SUSPEND_CPU _MD_SUSPEND_CPUextern void _PR_MD_RESUME_CPU(_PRCPU  *cpu);#define    _PR_MD_RESUME_CPU _MD_RESUME_CPUextern void _PR_MD_BEGIN_SUSPEND_ALL(void);#define    _PR_MD_BEGIN_SUSPEND_ALL _MD_BEGIN_SUSPEND_ALLextern void _PR_MD_END_SUSPEND_ALL(void);#define    _PR_MD_END_SUSPEND_ALL _MD_END_SUSPEND_ALLextern void _PR_MD_BEGIN_RESUME_ALL(void);#define    _PR_MD_BEGIN_RESUME_ALL _MD_BEGIN_RESUME_ALLextern void _PR_MD_END_RESUME_ALL(void);#define    _PR_MD_END_RESUME_ALL _MD_END_RESUME_ALL#if defined(IRIX) NSPR_API(void) _PR_IRIX_CHILD_PROCESS(void);#endif        /* IRIX */#endif        /* !_PR_LOCAL_THREADS_ONLY */extern void _PR_MD_CLEAN_THREAD(PRThread *thread);#define    _PR_MD_CLEAN_THREAD _MD_CLEAN_THREAD#ifdef HAVE_CUSTOM_USER_THREADSextern void _PR_MD_CREATE_PRIMORDIAL_USER_THREAD(PRThread *);#define    _PR_MD_CREATE_PRIMORDIAL_USER_THREAD _MD_CREATE_PRIMORDIAL_USER_THREADextern PRThread* _PR_MD_CREATE_USER_THREAD(                        PRUint32 stacksize,                        void (*start)(void *),                        void *arg);#define    _PR_MD_CREATE_USER_THREAD _MD_CREATE_USER_THREAD#endifextern PRStatus _PR_MD_CREATE_THREAD(                        PRThread *thread,                         void (*start) (void *),                         PRThreadPriority priority,                                              PRThreadScope scope,                        PRThreadState state,                        PRUint32 stackSize);#define    _PR_MD_CREATE_THREAD _MD_CREATE_THREADextern void _PR_MD_JOIN_THREAD(_MDThread *md);#define    _PR_MD_JOIN_THREAD _MD_JOIN_THREADextern void _PR_MD_END_THREAD(void);#define    _PR_MD_END_THREAD _MD_END_THREADextern void _PR_MD_YIELD(void);#define    _PR_MD_YIELD _MD_YIELDextern void _PR_MD_SET_PRIORITY(_MDThread *md, PRThreadPriority newPri);#define    _PR_MD_SET_PRIORITY _MD_SET_PRIORITYNSPR_API(void) _PR_MD_SUSPENDALL(void);#define    _PR_MD_SUSPENDALL _MD_SUSPENDALLNSPR_API(void) _PR_MD_RESUMEALL(void);#define    _PR_MD_RESUMEALL _MD_RESUMEALLextern void _PR_MD_INIT_CONTEXT(    PRThread *thread, char *top, void (*start) (void), PRBool *status);#define    _PR_MD_INIT_CONTEXT _MD_INIT_CONTEXTextern void _PR_MD_SWITCH_CONTEXT(PRThread *thread);#define    _PR_MD_SWITCH_CONTEXT _MD_SWITCH_CONTEXTextern void _PR_MD_RESTORE_CONTEXT(PRThread *thread);#define    _PR_MD_RESTORE_CONTEXT _MD_RESTORE_CONTEXT/* Segment related */extern void _PR_MD_INIT_SEGS(void);#define    _PR_MD_INIT_SEGS _MD_INIT_SEGSextern PRStatus _PR_MD_ALLOC_SEGMENT(PRSegment *seg, PRUint32 size, void *vaddr);#define    _PR_MD_ALLOC_SEGMENT _MD_ALLOC_SEGMENTextern void _PR_MD_FREE_SEGMENT(PRSegment *seg);#define    _PR_MD_FREE_SEGMENT _MD_FREE_SEGMENT/* Directory enumeration related */extern PRStatus _PR_MD_OPEN_DIR(_MDDir *md,const char *name);#define    _PR_MD_OPEN_DIR _MD_OPEN_DIRextern char * _PR_MD_READ_DIR(_MDDir *md, PRIntn flags);#define    _PR_MD_READ_DIR _MD_READ_DIRextern PRInt32 _PR_MD_CLOSE_DIR(_MDDir *md);#define    _PR_MD_CLOSE_DIR _MD_CLOSE_DIR/* Named semaphores related */extern PRSem * _PR_MD_OPEN_SEMAPHORE(    const char *osname, PRIntn flags, PRIntn mode, PRUintn value);#define    _PR_MD_OPEN_SEMAPHORE _MD_OPEN_SEMAPHOREextern PRStatus _PR_MD_WAIT_SEMAPHORE(PRSem *sem);#define    _PR_MD_WAIT_SEMAPHORE _MD_WAIT_SEMAPHOREextern PRStatus _PR_MD_POST_SEMAPHORE(PRSem *sem);#define    _PR_MD_POST_SEMAPHORE _MD_POST_SEMAPHOREextern PRStatus _PR_MD_CLOSE_SEMAPHORE(PRSem *sem);#define    _PR_MD_CLOSE_SEMAPHORE _MD_CLOSE_SEMAPHOREextern PRStatus _PR_MD_DELETE_SEMAPHORE(const char *osname);#define    _PR_MD_DELETE_SEMAPHORE _MD_DELETE_SEMAPHORE/* I/O related */extern void _PR_MD_INIT_FILEDESC(PRFileDesc *fd);#define    _PR_MD_INIT_FILEDESC _MD_INIT_FILEDESC#ifdef XP_MACextern void _PR_MD_FREE_FILEDESC(PRFileDesc *fd);#define    _PR_MD_FREE_FILEDESC _MD_FREE_FILEDESC#endifextern void _PR_MD_MAKE_NONBLOCK(PRFileDesc *fd);#define    _PR_MD_MAKE_NONBLOCK _MD_MAKE_NONBLOCK/* File I/O related */extern PRInt32 _PR_MD_OPEN(const char *name, PRIntn osflags, PRIntn mode);#define    _PR_MD_OPEN _MD_OPENextern PRInt32 _PR_MD_OPEN_FILE(const char *name, PRIntn osflags, PRIntn mode);#define    _PR_MD_OPEN_FILE _MD_OPEN_FILEextern PRInt32 _PR_MD_CLOSE_FILE(PRInt32 osfd);#define    _PR_MD_CLOSE_FILE _MD_CLOSE_FILEextern PRInt32 _PR_MD_READ(PRFileDesc *fd, void *buf, PRInt32 amount);#define    _PR_MD_READ _MD_READextern PRInt32 _PR_MD_WRITE(PRFileDesc *fd, const void *buf, PRInt32 amount);#define    _PR_MD_WRITE _MD_WRITEextern PRInt32 _PR_MD_WRITEV(    PRFileDesc *fd, const struct PRIOVec *iov,    PRInt32 iov_size, PRIntervalTime timeout);#define    _PR_MD_WRITEV _MD_WRITEVextern PRInt32 _PR_MD_FSYNC(PRFileDesc *fd);#define    _PR_MD_FSYNC _MD_FSYNCextern PRInt32 _PR_MD_DELETE(const char *name);#define        _PR_MD_DELETE _MD_DELETEextern PRInt32 _PR_MD_RENAME(const char *from, const char *to);#define _PR_MD_RENAME _MD_RENAMEextern PRInt32 _PR_MD_ACCESS(const char *name, PRAccessHow how);#define _PR_MD_ACCESS _MD_ACCESSextern PRInt32 _PR_MD_STAT(const char *name, struct stat *buf);#define _PR_MD_STAT _MD_STATextern PRInt32 _PR_MD_MKDIR(const char *name, PRIntn mode);#define _PR_MD_MKDIR _MD_MKDIRextern PRInt32 _PR_MD_MAKE_DIR(const char *name, PRIntn mode);#define _PR_MD_MAKE_DIR _MD_MAKE_DIR

⌨️ 快捷键说明

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