11.6. 64-bit Files in Solaris

For many years Sun shipped systems with a maximum file system and file size of 2 gigabytes. This size was a constraint imposed by the number of bits in the offset data types in the kernel. The size limitation occurred in three main places: the disk address type, daddr_t; the file system interface, off_t data type; and the uio structure used for device drivers and some file system interfaces. The pre-Solaris 2.0 types are both 32 bits, as shown below.

typedef long    daddr_t;
typedef long    off_t;

struct  uio {
        struct  iovec *uio_iov;
        int     uio_iovcnt;
        off_t   uio_offset;
        short   uio_segflg;
        short   uio_fmode;
        int     uio_resid;
};

The daddr_t and uio_t structures are used by device drivers and by some of the file system interfaces ...

Get Solaris™ Internals: Core Kernel Components now with O’Reilly online learning.

O’Reilly members experience live online training, plus books, videos, and digital content from 200+ publishers.