AFAIK, the 4GB limit on (teraspace) allocations addressable by a 16-byte pointer is an artifact of the 4-byte unsigned size_t parameter to malloc(). (To get anything over 16MB in a single allocation you must be using teraspace -- single-level store segments are 16MB in size.) Now, for fun numbers: The theoretical limit for 16-byte pointers is ( 2^128 - 1 ) or 340,282,366,920,938,463,463,374,607,431,768,211,455 bytes. The theoretical limit for 8-byte pointers (used by the PowerN hardware) is ( 2^64 - 1 ) or 18,446,744,073,709,551,615 bytes. The theoretical limit for teraspace addresses is 2^40-1 or 1,099,511,627,775 bytes (1 terabyte -- hence the name). HTH. -blair ___ _ Blair Wyman IBM Rochester ( /_) / _ ' _ (507)253-2891 blairw@xxxxxxxxxx __/__)_/_<_/_/_/_' Opinions expressed may not be those of IBM "Keith Carpenter" <CarpCon@xxxxxxx> Sent by: To c400-l-bounces@mi "C programming iSeries / AS400" drange.com <c400-l@xxxxxxxxxxxx> cc 07/01/2004 06:12 Subject PM Re: [C400-L] RE: Porting C Linux to ILE C: Performance problem Please respond to C programming iSeries / AS400 4gb is the limit for 16 byte pointers. Larger allocations require 8 byte pointers and DTAMDL(*LLP64) Apparently these 8 byte pointers should also perform better. ILE concepts, Chapter 4. > It sounds to me though, that the original poster really needs to look at the > teraspace compile options. With it, you can allocate up to 4GB blocks (on > V5R1). _______________________________________________ This is the C programming iSeries / AS400 (C400-L) mailing list To post a message email: C400-L@xxxxxxxxxxxx To subscribe, unsubscribe, or change list options, visit: http://lists.midrange.com/mailman/listinfo/c400-l or email: C400-L-request@xxxxxxxxxxxx Before posting, please take a moment to review the archives at http://archive.midrange.com/c400-l.