# OpenBSD RTL-to-C structure compatibility checker description file # # Use # h2paschk t_openbsd.h2paschk # # ...to generate Pascal and C code, then make sure they both compile and that # the Pascal program produces the same output as the C program for each # supported architecture. @Pascal uses baseunix; @Pascal {$i ptypes.inc} @Pascal {$i ostypes.inc} @Pascal begin @C #define _LARGEFILE_SOURCE 1 @C #define _FILE_OFFSET_BITS 64 ## @C #define _USE_FILE_OFFSET64 ## @C #ifdef __i386__ ## @C #define _LARGEFILE64_SOURCE ## @C #endif @C #include @C #include @C #include @C #include @C #include @C #include @C #include @C #include @C #include @C #include @C #include @C #include @C #include @C #include @C #include @C int main() @C { @type dev_t @type gid_t @type ino_t @type mode_t @type nlink_t @type off_t @type pid_t @type size_t @type ssize_t @type uid_t @type clock_t @type time_t @type socklen_t @record timeval,struct timeval .tv_sec .tv_usec @record timespec,struct timespec .tv_sec .tv_nsec @type pthread_t @type pthread_attr_t @type pthread_mutex_t @type pthread_mutexattr_t @type pthread_cond_t @type pthread_condattr_t @type pthread_key_t @type pthread_rwlock_t @type pthread_rwlockattr_t @type rlim_t @record stat,struct stat .st_dev .st_ino .st_mode #.st_padding0 .st_nlink .st_uid .st_gid #.st_padding1 .st_rdev .st_size .st_blocks .st_blksize .st_atime,st_atim.tv_sec .st_atime_nsec,st_atim.tv_nsec .st_mtime,st_mtim.tv_sec .st_mtime_nsec,st_mtim.tv_nsec .st_ctime,st_ctim.tv_sec .st_ctime_nsec,st_ctim.tv_nsec @Pascal {$if defined (CPUPOWERPC) or defined(CPUPOWERPC64)} @C #ifdef __powerpc__ .__unused4 .__unused5 @Pascal {$ifdef CPU64} @C #ifdef __LP64__ .__unused6 @C #endif @Pascal {$endif CPU64} @C #endif @Pascal {$endif powerpc} #.st_flags #.st_gen @record dirent,struct dirent .d_fileno .d_off .d_reclen .d_type #.d_pad0 #.d_namlen #.d_pad1 .d_name @record TStatFs,struct statfs .fstype,f_type .bsize,f_bsize .blocks,f_blocks .bfree,f_bfree .bavail,f_bavail .files,f_files .ffree,f_ffree .fsid,f_fsid .namelen,f_namelen .frsize,f_frsize .flags,f_flags .spare,f_spare @record pollfd,struct pollfd .fd .events .revents @record utimbuf,struct utimbuf .actime .modtime @record flock,struct flock .l_start .l_len .l_pid .l_type .l_whence @record tms,struct tms .tms_utime .tms_stime .tms_cutime .tms_cstime @record timezone,struct timezone .tz_minuteswest .tz_dsttime #@record rusage,struct rusage #.ru_utime #.ru_stime #.ru_maxrss #.ru_ixrss #.ru_idrss #.ru_isrss #.ru_minflt #.ru_majflt #.ru_nswap #.ru_inblock #.ru_oublock #.ru_msgsnd #.ru_msgrcv #.ru_nsignals #.ru_nvcsw #.ru_nivcsw @record TRLimit,struct rlimit .rlim_cur .rlim_max @record iovec,struct iovec .iov_base .iov_len @C return 0; @C } @Pascal end.