diff options
author | Patrick Walton <pcwalton@mimiga.net> | 2014-07-09 09:42:17 -0700 |
---|---|---|
committer | Patrick Walton <pcwalton@mimiga.net> | 2014-07-09 09:42:17 -0700 |
commit | 94909f2d087ff0568d34b259c5fda38dfb949bc7 (patch) | |
tree | 5d43e21becb8acb4f939d12c9881ecad32746f89 /src/platform/macos/rust-task_info/task_info.c | |
parent | 0dec28dd4a0f0d10dd721c16d8388c431718e303 (diff) | |
parent | 24d3979ce871dba7f20168dd0aebe5abd69644e7 (diff) | |
download | servo-94909f2d087ff0568d34b259c5fda38dfb949bc7.tar.gz servo-94909f2d087ff0568d34b259c5fda38dfb949bc7.zip |
Merge pull request #2786 from nnethercote/task_info
Add a `task_info` crate and a `task_basic_info` module within it.
Diffstat (limited to 'src/platform/macos/rust-task_info/task_info.c')
-rw-r--r-- | src/platform/macos/rust-task_info/task_info.c | 39 |
1 files changed, 39 insertions, 0 deletions
diff --git a/src/platform/macos/rust-task_info/task_info.c b/src/platform/macos/rust-task_info/task_info.c new file mode 100644 index 00000000000..e8f59082609 --- /dev/null +++ b/src/platform/macos/rust-task_info/task_info.c @@ -0,0 +1,39 @@ +// Copyright 2013 The Servo Project Developers. See the COPYRIGHT +// file at the top-level directory of this distribution. +// +// Licensed under the Apache License, Version 2.0 <LICENSE-APACHE or +// http://www.apache.org/licenses/LICENSE-2.0> or the MIT license +// <LICENSE-MIT or http://opensource.org/licenses/MIT>, at your +// option. This file may not be copied, modified, or distributed +// except according to those terms. + +#include <mach/mach_init.h> +#include <mach/task.h> + +static int +TaskBasicInfo(struct task_basic_info* info) +{ + mach_msg_type_number_t count = TASK_BASIC_INFO_COUNT; + kern_return_t kr = task_info(mach_task_self(), TASK_BASIC_INFO, + (task_info_t)info, &count); + return kr == KERN_SUCCESS ? 0 : -1; +} + +int +TaskBasicInfoVirtualSize(int64_t *virtualSize) +{ + struct task_basic_info ti; + int rv = TaskBasicInfo(&ti); + *virtualSize = (rv == 0) ? ti.virtual_size : 0; + return rv; +} + +int +TaskBasicInfoResidentSize(int64_t *residentSize) +{ + struct task_basic_info ti; + int rv = TaskBasicInfo(&ti); + *residentSize = (rv == 0) ? ti.resident_size : 0; + return rv; +} + |