diff options
author | jmallett <jmallett@FreeBSD.org> | 2011-02-12 02:08:24 +0000 |
---|---|---|
committer | jmallett <jmallett@FreeBSD.org> | 2011-02-12 02:08:24 +0000 |
commit | 43ee1f2df30c3b8c4c3bbf22918455c6e0032535 (patch) | |
tree | 7cb42a62b2992d416a5721dfcfe9f64c3c4a94d6 /sys/mips/sibyte | |
parent | f74b693166215a41e29f1932c91ef7c921e662a7 (diff) | |
download | FreeBSD-src-43ee1f2df30c3b8c4c3bbf22918455c6e0032535.zip FreeBSD-src-43ee1f2df30c3b8c4c3bbf22918455c6e0032535.tar.gz |
Allow the platform code to return a bitmask of running cores rather than just
a number of cores, this allows for a sparse set of CPUs. Implement support
for sparse core masks on Octeon.
XXX jeff@ suggests that all_cpus should include cores that are offline or
running other applications/OSes, so the platform API should be further
extended to allow us to set all_cpus to include all cores that are
physically-present as opposed to only those that are running FreeBSD.
Submitted by: Bhanu Prakash (with modifications)
Reviewed by: jchandra
Glanced at by: kib, jeff, jhb
Diffstat (limited to 'sys/mips/sibyte')
-rw-r--r-- | sys/mips/sibyte/sb_scd.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/sys/mips/sibyte/sb_scd.c b/sys/mips/sibyte/sb_scd.c index f0c7295..e5ac23c 100644 --- a/sys/mips/sibyte/sb_scd.c +++ b/sys/mips/sibyte/sb_scd.c @@ -242,11 +242,11 @@ sb_clear_mailbox(int cpu, uint64_t val) sb_store64(regaddr, val); } -int -platform_num_processors(void) +cpumask_t +platform_cpu_mask(void) { - return (SYSREV_NUM_PROCESSORS(sb_read_sysrev())); + return (~0U >> (32 - SYSREV_NUM_PROCESSORS(sb_read_sysrev()))); } #endif /* SMP */ |