X-Git-Url: http://git.sourceforge.jp/view?p=pf3gnuchains%2Fgcc-fork.git;a=blobdiff_plain;f=libgo%2Fmksysinfo.sh;h=5e3e9bb0897e6bb3b34d128d8b747120afab5a19;hp=2984638131598749a0609c626a84ecd5171a71ac;hb=9e4aaf6e3f20974a57fbab91160ad023aaaa424b;hpb=6f9d8b766328b49f624395cabf9f3848899302a6 diff --git a/libgo/mksysinfo.sh b/libgo/mksysinfo.sh index 29846381315..5e3e9bb0897 100755 --- a/libgo/mksysinfo.sh +++ b/libgo/mksysinfo.sh @@ -78,6 +78,7 @@ cat > sysinfo.c < #endif +#include #include #include #include @@ -102,6 +103,21 @@ cat > sysinfo.c < #endif +#if defined(HAVE_SYS_TIMEX_H) +#include +#endif +#if defined(HAVE_SYS_SYSINFO_H) +#include +#endif +#if defined(HAVE_USTAT_H) +#include +#endif +#if defined(HAVE_UTIME_H) +#include +#endif +#if defined(HAVE_LINUX_REBOOT_H) +#include +#endif /* Constants that may only be defined as expressions on some systems, expressions too complex for -fdump-go-spec to handle. These are @@ -339,6 +355,11 @@ if grep "^// type _upad128_t" gen-sysinfo.go > /dev/null 2>&1; then echo "type _upad128_t struct { _l [4]uint32; }" >> ${OUT} fi +# The time_t type. +if grep '^type _time_t ' gen-sysinfo.go > /dev/null 2>&1; then + echo 'type Time_t _time_t' >> ${OUT} +fi + # The time structures need special handling: we need to name the # types, so that we can cast integers to the right types when # assigning to the structures. @@ -712,6 +733,10 @@ grep '^const _IFLA' gen-sysinfo.go | \ sed -e 's/^\(const \)_\(IFLA[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} grep '^const _IFF' gen-sysinfo.go | \ sed -e 's/^\(const \)_\(IFF[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} +grep '^const _IFNAMSIZ' gen-sysinfo.go | \ + sed -e 's/^\(const \)_\(IFNAMSIZ[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} +grep '^const _SIOC' gen-sysinfo.go | + sed -e 's/^\(const \)_\(SIOC[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} # The size of the ifinfomsg struct. if grep 'type IfInfomsg ' ${OUT} > /dev/null 2>&1; then @@ -806,4 +831,95 @@ fi | sed -e 's/type _statfs64/type Statfs_t/' \ -e 's/f_spare/Spare/' \ >> ${OUT} +# The timex struct. +grep '^type _timex ' gen-sysinfo.go | \ + sed -e 's/_timex/Timex/' \ + -e 's/modes/Modes/' \ + -e 's/offset/Offset/' \ + -e 's/freq/Freq/' \ + -e 's/maxerror/Maxerror/' \ + -e 's/esterror/Esterror/' \ + -e 's/status/Status/' \ + -e 's/constant/Constant/' \ + -e 's/precision/Precision/' \ + -e 's/tolerance/Tolerance/' \ + -e 's/ time / Time /' \ + -e 's/tick/Tick/' \ + -e 's/ppsfreq/Ppsfreq/' \ + -e 's/jitter/Jitter/' \ + -e 's/shift/Shift/' \ + -e 's/stabil/Stabil/' \ + -e 's/jitcnt/Jitcnt/' \ + -e 's/calcnt/Calcnt/' \ + -e 's/errcnt/Errcnt/' \ + -e 's/stbcnt/Stbcnt/' \ + -e 's/tai/Tai/' \ + -e 's/_timeval/Timeval/' \ + >> ${OUT} + +# The rlimit struct. +grep '^type _rlimit ' gen-sysinfo.go | \ + sed -e 's/_rlimit/Rlimit/' \ + -e 's/rlim_cur/Cur/' \ + -e 's/rlim_max/Max/' \ + >> ${OUT} + +# The RLIMIT constants. +grep '^const _RLIMIT_' gen-sysinfo.go | + sed -e 's/^\(const \)_\(RLIMIT_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} + +# The sysinfo struct. +grep '^type _sysinfo ' gen-sysinfo.go | \ + sed -e 's/_sysinfo/Sysinfo_t/' \ + -e 's/uptime/Uptime/' \ + -e 's/loads/Loads/' \ + -e 's/totalram/Totalram/' \ + -e 's/freeram/Freeram/' \ + -e 's/sharedram/Sharedram/' \ + -e 's/bufferram/Bufferram/' \ + -e 's/totalswap/Totalswap/' \ + -e 's/freeswap/Freeswap/' \ + -e 's/procs/Procs/' \ + -e 's/totalhigh/Totalhigh/' \ + -e 's/freehigh/Freehigh/' \ + -e 's/mem_unit/Unit/' \ + >> ${OUT} + +# The ustat struct. +grep '^type _ustat ' gen-sysinfo.go | \ + sed -e 's/_ustat/Ustat_t/' \ + -e 's/f_tfree/Tfree/' \ + -e 's/f_tinode/Tinoe/' \ + -e 's/f_fname/Fname/' \ + -e 's/f_fpack/Fpack/' \ + >> ${OUT} + +# The utimbuf struct. +grep '^type _utimbuf ' gen-sysinfo.go | \ + sed -e 's/_utimbuf/Utimbuf/' \ + -e 's/actime/Actime/' \ + -e 's/modtime/Modtime/' \ + >> ${OUT} + +# The GNU/Linux LINUX_REBOOT flags. +grep '^const _LINUX_REBOOT_' gen-sysinfo.go | + sed -e 's/^\(const \)_\(LINUX_REBOOT_[^= ]*\)\(.*\)$/\1\2 = _\2/' >> ${OUT} + +# The GNU/Linux sock_filter struct. +grep '^type _sock_filter ' gen-sysinfo.go | \ + sed -e 's/_sock_filter/SockFilter/' \ + -e 's/code/Code/' \ + -e 's/jt/Jt/' \ + -e 's/jf/Jf/' \ + -e 's/k /K /' \ + >> ${OUT} + +# The GNU/Linux sock_fprog struct. +grep '^type _sock_fprog ' gen-sysinfo.go | \ + sed -e 's/_sock_fprog/SockFprog/' \ + -e 's/len/Len/' \ + -e 's/filter/Filter/' \ + -e 's/_sock_filter/SockFilter/' \ + >> ${OUT} + exit $?