diff --git a/disk_freebsd.go b/disk_freebsd.go index fa35e02..155446a 100644 --- a/disk_freebsd.go +++ b/disk_freebsd.go @@ -7,57 +7,6 @@ import ( "unsafe" ) -const ( - MNT_WAIT = 1 - MFSNAMELEN = 16 /* length of type name including null */ - MNAMELEN = 88 /* size of on/from name bufs */ -) - -// sys/mount.h -const ( - MNT_RDONLY = 0x00000001 /* read only filesystem */ - MNT_SYNCHRONOUS = 0x00000002 /* filesystem written synchronously */ - MNT_NOEXEC = 0x00000004 /* can't exec from filesystem */ - MNT_NOSUID = 0x00000008 /* don't honor setuid bits on fs */ - MNT_UNION = 0x00000020 /* union with underlying filesystem */ - MNT_ASYNC = 0x00000040 /* filesystem written asynchronously */ - MNT_SUIDDIR = 0x00100000 /* special handling of SUID on dirs */ - MNT_SOFTDEP = 0x00200000 /* soft updates being done */ - MNT_NOSYMFOLLOW = 0x00400000 /* do not follow symlinks */ - MNT_GJOURNAL = 0x02000000 /* GEOM journal support enabled */ - MNT_MULTILABEL = 0x04000000 /* MAC support for individual objects */ - MNT_ACLS = 0x08000000 /* ACL support enabled */ - MNT_NOATIME = 0x10000000 /* disable update of file access time */ - MNT_NOCLUSTERR = 0x40000000 /* disable cluster read */ - MNT_NOCLUSTERW = 0x80000000 /* disable cluster write */ - MNT_NFS4ACLS = 0x00000010 -) - -type Statfs struct { - F_version uint32 /* structure version number */ - F_type uint32 /* type of filesystem */ - F_flags uint64 /* copy of mount exported flags */ - F_bsize uint64 /* filesystem fragment size */ - F_iosize uint64 /* optimal transfer block size */ - F_blocks uint64 /* total data blocks in filesystem */ - F_bfree uint64 /* free blocks in filesystem */ - F_bavail int64 /* free blocks avail to non-superuser */ - F_files uint64 /* total file nodes in filesystem */ - F_ffree int64 /* free nodes avail to non-superuser */ - F_syncwrites uint64 /* count of sync writes since mount */ - F_asyncwrites uint64 /* count of async writes since mount */ - F_syncreads uint64 /* count of sync reads since mount */ - F_asyncreads uint64 /* count of async reads since mount */ - F_spare [10]uint64 /* unused spare */ - F_namemax uint32 /* maximum filename length */ - F_owner uint32 /* user that mounted the filesystem */ - F_fsid int32 /* filesystem id */ - F_charspare [80]byte /* spare string space */ - F_fstypename [MFSNAMELEN]byte /* filesystem type name */ - F_mntfromname [MNAMELEN]byte /* mounted filesystem */ - F_mntonname [MNAMELEN]byte /* directory on which mounted */ -} - func Disk_partitions() ([]Disk_partitionStat, error) { ret := make([]Disk_partitionStat, 0) diff --git a/disk_freebsd_amd64.go b/disk_freebsd_amd64.go new file mode 100644 index 0000000..0322e8b --- /dev/null +++ b/disk_freebsd_amd64.go @@ -0,0 +1,55 @@ +// +build freebsd +// +build amd64 + +package gopsutil + +const ( + MNT_WAIT = 1 + MFSNAMELEN = 16 /* length of type name including null */ + MNAMELEN = 88 /* size of on/from name bufs */ +) + +// sys/mount.h +const ( + MNT_RDONLY = 0x00000001 /* read only filesystem */ + MNT_SYNCHRONOUS = 0x00000002 /* filesystem written synchronously */ + MNT_NOEXEC = 0x00000004 /* can't exec from filesystem */ + MNT_NOSUID = 0x00000008 /* don't honor setuid bits on fs */ + MNT_UNION = 0x00000020 /* union with underlying filesystem */ + MNT_ASYNC = 0x00000040 /* filesystem written asynchronously */ + MNT_SUIDDIR = 0x00100000 /* special handling of SUID on dirs */ + MNT_SOFTDEP = 0x00200000 /* soft updates being done */ + MNT_NOSYMFOLLOW = 0x00400000 /* do not follow symlinks */ + MNT_GJOURNAL = 0x02000000 /* GEOM journal support enabled */ + MNT_MULTILABEL = 0x04000000 /* MAC support for individual objects */ + MNT_ACLS = 0x08000000 /* ACL support enabled */ + MNT_NOATIME = 0x10000000 /* disable update of file access time */ + MNT_NOCLUSTERR = 0x40000000 /* disable cluster read */ + MNT_NOCLUSTERW = 0x80000000 /* disable cluster write */ + MNT_NFS4ACLS = 0x00000010 +) + +type Statfs struct { + F_version uint32 /* structure version number */ + F_type uint32 /* type of filesystem */ + F_flags uint64 /* copy of mount exported flags */ + F_bsize uint64 /* filesystem fragment size */ + F_iosize uint64 /* optimal transfer block size */ + F_blocks uint64 /* total data blocks in filesystem */ + F_bfree uint64 /* free blocks in filesystem */ + F_bavail int64 /* free blocks avail to non-superuser */ + F_files uint64 /* total file nodes in filesystem */ + F_ffree int64 /* free nodes avail to non-superuser */ + F_syncwrites uint64 /* count of sync writes since mount */ + F_asyncwrites uint64 /* count of async writes since mount */ + F_syncreads uint64 /* count of sync reads since mount */ + F_asyncreads uint64 /* count of async reads since mount */ + F_spare [10]uint64 /* unused spare */ + F_namemax uint32 /* maximum filename length */ + F_owner uint32 /* user that mounted the filesystem */ + F_fsid int32 /* filesystem id */ + F_charspare [80]byte /* spare string space */ + F_fstypename [MFSNAMELEN]byte /* filesystem type name */ + F_mntfromname [MNAMELEN]byte /* mounted filesystem */ + F_mntonname [MNAMELEN]byte /* directory on which mounted */ +} diff --git a/disk_linux.go b/disk_linux.go index 4da538b..e7e7827 100644 --- a/disk_linux.go +++ b/disk_linux.go @@ -2,7 +2,6 @@ package gopsutil - func Disk_partitions() ([]Disk_partitionStat, error) { ret := make([]Disk_partitionStat, 0) diff --git a/host_freebsd.go b/host_freebsd.go index d5cc1e6..69d86d2 100644 --- a/host_freebsd.go +++ b/host_freebsd.go @@ -12,19 +12,6 @@ import ( "unsafe" ) -const ( - UT_NAMESIZE = 16 /* see MAXLOGNAME in */ - UT_LINESIZE = 8 - UT_HOSTSIZE = 16 -) - -type utmp struct { - Ut_line [UT_LINESIZE]byte - Ut_name [UT_NAMESIZE]byte - Ut_host [UT_HOSTSIZE]byte - Ut_time int32 -} - func HostInfo() (HostInfoStat, error) { ret := HostInfoStat{} diff --git a/host_freebsd_amd64.go b/host_freebsd_amd64.go new file mode 100644 index 0000000..e413c7c --- /dev/null +++ b/host_freebsd_amd64.go @@ -0,0 +1,17 @@ +// +build freebsd +// +build amd64 + +package gopsutil + +const ( + UT_NAMESIZE = 16 /* see MAXLOGNAME in */ + UT_LINESIZE = 8 + UT_HOSTSIZE = 16 +) + +type utmp struct { + Ut_line [UT_LINESIZE]byte + Ut_name [UT_NAMESIZE]byte + Ut_host [UT_HOSTSIZE]byte + Ut_time int32 +} diff --git a/host_linux.go b/host_linux.go index 5a9a488..b90ec8a 100644 --- a/host_linux.go +++ b/host_linux.go @@ -11,29 +11,6 @@ import ( "unsafe" ) -type exit_status struct { - E_termination int16 // Process termination status. - E_exit int16 // Process exit status. -} -type timeval struct { - Tv_sec uint32 // Seconds. - Tv_usec uint32 // Microseconds. -} - -type utmp struct { - Ut_type int16 // Type of login. - Ut_pid int32 // Process ID of login process. - Ut_line [32]byte // Devicename. - Ut_id [4]byte // Inittab ID. - Ut_user [32]byte // Username. - Ut_host [256]byte // Hostname for remote login. - Ut_exit exit_status // Exit status of a process marked - Ut_session int32 // Session ID, used for windowing. - Ut_tv timeval // Time entry was made. - Ut_addr_v6 [16]byte // Internet address of remote host. - Unused [20]byte // Reserved for future use. // original is 20 -} - func HostInfo() (HostInfoStat, error) { ret := HostInfoStat{} diff --git a/host_linux_amd64.go b/host_linux_amd64.go new file mode 100644 index 0000000..a0771d2 --- /dev/null +++ b/host_linux_amd64.go @@ -0,0 +1,27 @@ +// +build linux +// +build amd64 + +package gopsutil + +type exit_status struct { + E_termination int16 // Process termination status. + E_exit int16 // Process exit status. +} +type timeval struct { + Tv_sec uint32 // Seconds. + Tv_usec uint32 // Microseconds. +} + +type utmp struct { + Ut_type int16 // Type of login. + Ut_pid int32 // Process ID of login process. + Ut_line [32]byte // Devicename. + Ut_id [4]byte // Inittab ID. + Ut_user [32]byte // Username. + Ut_host [256]byte // Hostname for remote login. + Ut_exit exit_status // Exit status of a process marked + Ut_session int32 // Session ID, used for windowing. + Ut_tv timeval // Time entry was made. + Ut_addr_v6 [16]byte // Internet address of remote host. + Unused [20]byte // Reserved for future use. // original is 20 +}