Address
:
[go:
up one dir
,
main page
]
Include Form
Remove Scripts
Accept Cookies
Show Images
Show Referer
Rotate13
Base64
Strip Meta
Strip Title
Session Cookies
More Web Proxy on the site http://driver.im/
Documentation Home
> Solaris 64-bit Developer's Guide
Solaris 64-bit Developer's Guide
Book Information
Index
Numbers and Symbols
A
C
D
E
F
G
H
I
K
L
P
S
U
W
Preface
Chapter 1 64-bit Computing
Getting Past the 4 Gigabyte Barrier
Beyond Large Address Spaces
Chapter 2 When to Use 64-bit
Major Features
Large Virtual Address Space
Large Files
64–bit Arithmetic
System Limitations Removed
Interoperability Issues
Kernel Memory Readers
/proc Restrictions
64–bit Libraries
Estimating the Effort of Conversion
Chapter 3 Comparing 32-bit Interfaces and 64–bit Interfaces
Application Programming Interfaces
Application Binary Interfaces
Compatibility Between 32-bit Applications and 64–bit Applications
Application Binaries
Application Source Code
Device Drivers
Which Solaris Operating Environment Are You Running?
Chapter 4 Converting Applications
Data Model
Implementing Single-Source Code
Feature Test Macros
Derived Types
<sys/types.h> File
<inttypes.h> File
Fixed-Width Integer Types
uintptr_t and Other Helpful Types
Constant Macros
Limits Defined by <inttypes.h>
Format String Macros
Tools Support
lint for 32–bit and 64–bit Environments
Guidelines for Converting to LP64
Do Not Assume int and Pointers Are the Same Size
Do Not Assume int and long Are the Same Size
Sign Extension
Use Pointer Arithmetic Instead of Address Arithmetic
Repacking a Structure
Check Unions
Specify Constant Types
Beware of Implicit Declaration
sizeof is an unsigned long
Use Casts to Show Your Intentions
Check Format String Conversion Operation
Other Considerations
Derived Types That Have Grown in Size
Check for Side Effects of Changes
Check Whether Literal Uses of long Still Make Sense
Use #ifdef for Explicit 32-bit Versus 64-bit Prototypes
Algorithmic Changes
Checklist for Getting Started
Sample Program
Chapter 5 The Development Environment
Build Environment
Header Files
Compiler Environments
32-bit and 64-bit Libraries
Linking Object Files
LD_LIBRARY_PATH Environment Variable
$ORIGIN Keyword
Packaging 32-bit and 64-bit Applications
Placement of Libraries and Programs
Packaging Guidelines
Application Naming Conventions
Shell-Script Wrappers
/usr/lib/isaexec Binary File
isaexec(3c) Interface
Debugging 64-bit Applications
Chapter 6 Advanced Topics
SPARC V9 ABI Features
Stack Bias
Address Space Layout of the SPARC V9 ABI
Placement of Text and Data of the SPARC V9 ABI
Code Models of the SPARC V9 ABI
AMD64 ABI Features
Address Space Layout for amd64 Applications
Alignment Issues
Interprocess Communication
ELF and System Generation Tools
/proc Interface
Extensions to sysinfo(2)
libkvm and /dev/ksyms
libkstat Kernel Statistics
Changes to stdio
Performance Issues
64-bit Application Advantages
64-bit Application Disadvantages
System Call Issues
What Does EOVERFLOW Mean?
Beware ioctl()
Appendix A Changes in Derived Types
Appendix B Frequently Asked Questions (FAQs)
© 2010, Oracle Corporation and/or its affiliates