1b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// Copyright (c) 2012 The Chromium Authors. All rights reserved. 2b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// Use of this source code is governed by a BSD-style license that can be 3b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// found in the LICENSE file. 4b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 5b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat#include "base/mac/scoped_mach_port.h" 6b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 7b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat#include "base/mac/mach_logging.h" 8b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 9b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Eratnamespace base { 10b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Eratnamespace mac { 11b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Eratnamespace internal { 12b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 13b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// static 14b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Eratvoid SendRightTraits::Free(mach_port_t port) { 15b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat kern_return_t kr = mach_port_deallocate(mach_task_self(), port); 16b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr) 17b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat << "ScopedMachSendRight mach_port_deallocate"; 18b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} 19b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 20b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// static 21b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Eratvoid ReceiveRightTraits::Free(mach_port_t port) { 22b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat kern_return_t kr = 23b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_RECEIVE, -1); 24b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr) 25b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat << "ScopedMachReceiveRight mach_port_mod_refs"; 26b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} 27b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 28b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat// static 29b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Eratvoid PortSetTraits::Free(mach_port_t port) { 30b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat kern_return_t kr = 31b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat mach_port_mod_refs(mach_task_self(), port, MACH_PORT_RIGHT_PORT_SET, -1); 32b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat MACH_LOG_IF(ERROR, kr != KERN_SUCCESS, kr) 33b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat << "ScopedMachPortSet mach_port_mod_refs"; 34b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} 35b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat 36b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} // namespace internal 37b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} // namespace mac 38b8cf94937c52feb53b55c39e3f82094d27de464cDaniel Erat} // namespace base 39