BeOS: Porting UNIX Applications

The core of most programs revolves around the functions that directly access the kernel or a layer of kernel functionality. Without many of these basic functions, most applications simply wouldn't be able to work, even if you managed to replace some of the functions we discuss in later chapters.
This chapter covers the core limits and datatypes, memory access, accessing users and groups, processes, interprocess communication, and then the core kernel functions for spawning new jobs. Later in this chapter, I've included information on some of the utility support functions, including nonlocal jumps and string handling. Although not strictly kernel related, they do affect the core routines of many applications.
The Metrowerks compiler specifies a number of base datatypes based on the Standard C definitions. Additionally, it defines some datatypes able to cope with larger numbers. The header limits.h defines the minimum and maximum values. The types, their byte sizes, and minimum/maximum values are listed in Table 18-1.
As you can see, the BeOS already able to handle huge numbers is all set for 64-bit processors
When porting or writing software to be cross-platform compatible from the OS up, a number of types are defined in the header files. These datatype macros can be used both for building the kernel and for writing applications. So regardless of the origin of a package, when it is recompiled, the underlying datatypes will remain the same, and no type casting or conversion will be necessary.