📄 portal.h
字号:
/*
* Copyright 1999, 2000, 2001, 2002 Lucent Technologies Inc.
* All Rights Reserved.
* Information Sciences Research Center, Bell Labs.
*
* LUCENT TECHNOLOGIES DOES NOT CLAIM MERCHANTABILITY OF THIS SOFTWARE
* OR THE SUITABILITY OF THIS SOFTWARE FOR ANY PARTICULAR PURPOSE. The
* software is provided "as is" without expressed or implied warranty
* of any kind.
*
* These notices must be retained in any copies of any part of this
* software.
*
*/
/*
* Definitions for the portal manager
*/
#ifndef _PORTAL_H
#define _PORTAL_H
enum {
MAX_PORTAL_LEN = (PAGESIZE/2), /* in bytes */
};
typedef enum {STACK_SHARED, STACK_QUEUE, STACK_EXCEPTION} PortalStack;
typedef enum {SAVE_FULL, SAVE_PARTIAL, SAVE_MINIMAL} PortalSave;
extern Portal gen_portal(vlong *save_p, int (*entry)(), int *epilog,
PortalStack stack_type, PortalSave save_type, StackQ *stack_q,
uint thread_reg, uint const_reg, int c, uint asid_reg, uint window_reg,
uchar window_type, uint bad_vaddr_reg,
int *portal_len, int *const_offset, int *c_reg);
extern Portal gen_null_portal(vlong *save_p, int (*entry)(), int *portal_len);
extern int *bad_win_call, *bad_win_rtn;
extern int *thr_stack_overflow;
extern int *ptable_level1;
extern int *log;
extern ulong excpt_stack_sp, excpt_stack_tlbhi, excpt_stack_tlblo0;
extern void *aligned_malloc(int size);
extern void aligned_incref(void *p), aligned_decref(void *p);
#endif /* _PORTAL_H */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -