第一章 引论 1
1.1 WE32000处理器和系统V ABI 1
1.2 如何使用WE 32000 ABI补充 1
1.2.1 ABI规范的演变 1
目录 1
第二章 软件安装 3
2.1 软件发行格式 3
2.1.1 物理发行媒体 3
第三章 低级系统信息 5
3.1 机器界面 5
3.1.1 处理器体系结构 5
3.1.2 数据表示 5
3.1.2.1 基本类型 5
图与表 6
图3—1:标量类型 6
3.1.2.2 聚集与联合 6
图3—2:小于一个字的结构 7
图3—3:无充填 7
图3—4:内部充填 7
图3—5:内部和尾部充填 7
图3—6:union分配 8
图3—7:位段范围 8
3.1.2.3 位段 8
图3—10:边界对齐 9
图3—8:位编号 9
图3—9:从左到右分配 9
图3—12:union分配 10
图3—11:存储单元共享 10
图3—13:未命名的位段 10
3.2 函数调用序列 10
图3—14:处理器寄存器 11
3.2.1 寄存器和栈帧 11
图3—15:标准的栈帧 12
图3—16:函数开场部分 13
3.2.3 浮点实参 14
3.2.2 整型和指针实参 14
图3—18:浮点实参 14
图3—17:整型和指针实参 14
图3—20:函数收尾部分 15
图3—19:结构和联合实参 15
3.2.6 函数返回结构或联合 15
3.2.5 函数返回标量或无值 15
3.2.4 结构和联合实参 15
图3—21:函数收尾部分 16
3.3.1.2 虚拟地址分配 16
3.3.1.1 页面大小 16
3.3.1 虚拟地址空间 16
3.3 操作系统界面 16
图3—22:虚拟地址配置 17
3.3.1.3 管理进程栈 17
3.3.2 处理器执行状态 18
3.3.1.4 编码准则 18
图3—23:-exit系统捕俘 19
图3—24:异常情况和信号 19
3.3.3 异常界面 19
3.3.4.1 专用寄存器 20
3.3.4 进程初始化 20
图3—25:main的声明 20
3.3.4.2 进程栈 21
图3—26:处理器状态字字段 21
图3—27:初始的进程栈 21
图3—28:辅助向量 22
图3—29:辅助向量类型,a-type 23
图3—30:进程栈例子 25
3.4 编程示例 26
3.4.1 程序模型概述 26
图3—31:绝对装入和存储 27
3.4.2 数据对象 27
图3—33:绝对的直接函数调用 28
图3—34:与位置无关的直接函数调用 28
图3—32:与位置无关的装入和存储 28
3.4.3 函数调用 28
图3—35:绝对的间接函数调用 29
图3—36:与位置无关的间接函数调用 29
图3—37:转移指令的两种模型 29
3.4.4 转移 29
图3—38:绝对的switch代码 30
3.4.5 C语言栈帧 31
图3—39:与位置无关的switch代码 31
图3—40:C语言栈结构 32
3.4.6 可变的实参表 32
3.4.7 动态分配栈空间 33
图4—1:WE 32100标识,e-ident 35
图4—2:针对具体处理器的标志,e-flags 35
4.1 ELF前导文件 35
4.1.1 机器信息 35
4.2 节 35
4.2.1 特殊的节 35
第四章 目标文件 35
4.3 重定位 36
4.3.1 重定位类型 36
图4—3:特殊的节 36
图4—4:重定位字段 36
图4—5:重定位类型 38
第五章 程序的装入和动态连接 41
图5—1:可执行文件 41
图5—2:程序头段 42
图5—3:进程映象段 43
图5—4:共享目标段地址示例 44
5.2.1 动态节 44
5.2.2 全局偏移量表 44
5.2 动态连接 44
5.1 程序装入……………………………………………………………(41 ) 44
5.2.3 过程连接表 45
图5—5:过程连接表 45
图6—1:libsys中附加的所需入口点 47
第六章 库 47
6.1 系统库 47
6.1.2 支持的例程 47
6.1.1 附加的入口点 47
图6—3:libsys全局外部数据符号 48
图6—2:libsys中的支持例程 48
6.1.3.1 应用限制 48
6.1.3 全局数据符号 48
图6—4:libc:支持的例程 49
6.3.1 数据定义 49
6.2 C库 49
6.2.1 另外的支持例程 49
6.3 系统数据界面 49
图6—5:〈assert.h〉 50
图6—6:〈ctype.h〉 50
图6—7:〈dirent.h〉 51
图6—8:〈errno.h〉 51
图6—9:〈fcntl.h〉 54
图6—11:〈fmtmsg.h〉 55
图6—10:〈float.h〉 55
图6—13:〈grp.h〉 56
图6—12:〈ftw.h〉 56
图6—14:〈sys/ipc.h〉 57
图6—15:〈langinfo.h〉 57
图6—16:〈limits.h〉 59
图6—17:〈locale.h〉 60
图6—19:〈sys/mman.h〉 61
图6—20:〈sys/mount.h〉 61
图6—18:〈math.h〉 61
图6—21:〈sys/msg.h〉 62
图6—22:〈netconfig.h〉 63
图6—23:〈netdir.h〉 64
图6—24:〈nl_types.h〉 65
图6—25:〈sys/param.h〉 65
图6—26:〈poll.h〉 66
图6—27:〈sys/procset.h〉 67
图6—29:〈sys/resource.h〉 68
图6—28:〈pwd.h〉 68
图6—30:〈rpc.h〉 69
图6—31:〈search.h〉 76
图6—32:〈sys/sem.h〉 77
图6—33:〈setjmp.h〉 77
图6—34:〈sys/shm.h〉 78
图6—35:〈sigaction.h〉 78
图6—36:〈signal.h〉 79
图6—37:〈sys/siginfo.h〉 80
图6—38:〈sys/stat.h〉 81
图6—39:〈sys/statvfs.h〉 83
图6—40:〈stddef.h〉 83
图6—41:〈stdio.h〉 84
图6—42:〈stdlib.h〉 85
图6—43:〈stropts.h〉 85
图6—44:〈termios.h〉 88
图6—45:〈sys/time.h〉 92
图6—48:〈sys/tiuser.h〉,传输界面状态 93
图6—46:〈sys/times.h〉 93
图6—47:〈sys/tiuser.h〉,服务类型 93
图6—49:〈sys/tiuser.h〉,用户层事件 94
图6—50:〈sys/tiuser.h〉,出错返回值 95
图6—51:〈sys/tiuser.h〉,传输界面数据结构 95
图6—52:〈sys/tiuser.h〉,结构类型 96
图6—53:〈sys/tiuser.h〉,结构字段 97
图6—54:〈sys/tiuser.h〉,事件位屏蔽 97
图6—55:〈sys/tiuser.h〉,标志 97
图6—56:〈sys/types.h〉 98
图6—57:〈ucontext.h〉 98
图6—58:〈sys/uio.h〉 99
图6—59:〈ulimit.h〉 99
图6—60:〈unistd.h〉 99
图6—61:〈utime.h〉 100
图6—62:〈sys/utsname.h〉 101
图6—63:〈wait.h〉 101