hal/HalInternal.h
author Nathan Froyd <froydnj@mozilla.com>
Mon, 22 Apr 2019 23:44:28 +0000
changeset 470426 09240f7397c12707cc0a8ff63051d28568be40e9
parent 454520 5f4630838d46dd81dadb13220a4af0da9e23a619
permissions -rw-r--r--
Bug 1542958 - fix code section adjustments in elfhack; r=glandium We were never adjusting `last` in this loop, so we were computing the wrong addresses for all sections beyond the first. Which in turn meant that we would compute the wrong size for the section data we needed to allocate. Differential Revision: https://phabricator.services.mozilla.com/D28195

/* -*- Mode: C++; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 2 -*- */
/* vim: set sw=2 ts=8 et ft=cpp : */
/* This Source Code Form is subject to the terms of the Mozilla Public
 * License, v. 2.0. If a copy of the MPL was not distributed with this
 * file, You can obtain one at http://mozilla.org/MPL/2.0/. */

#ifndef mozilla_HalInternal_h
#define mozilla_HalInternal_h 1

/*
 * This file is included by HalImpl.h and HalSandbox.h with a mechanism similar
 * to Hal.h. That means those headers set MOZ_HAL_NAMESPACE to specify in which
 * namespace the internal functions should appear.
 *
 * The difference between Hal.h and HalInternal.h is that methods declared in
 * HalInternal.h don't appear in the hal namespace. That also means this file
 * should not be included except by HalImpl.h and HalSandbox.h.
 */

#ifndef MOZ_HAL_NAMESPACE
#  error "You shouldn't directly include HalInternal.h!"
#endif

namespace mozilla {
namespace MOZ_HAL_NAMESPACE {

/**
 * Enables battery notifications from the backend.
 */
void EnableBatteryNotifications();

/**
 * Disables battery notifications from the backend.
 */
void DisableBatteryNotifications();

/**
 * Enables network notifications from the backend.
 */
void EnableNetworkNotifications();

/**
 * Disables network notifications from the backend.
 */
void DisableNetworkNotifications();

/**
 * Enables screen orientation notifications from the backend.
 */
void EnableScreenConfigurationNotifications();

/**
 * Disables screen orientation notifications from the backend.
 */
void DisableScreenConfigurationNotifications();

/**
 * Has the child-side HAL IPC object been destroyed?  If so, you shouldn't send
 * messages to hal_sandbox.
 */
bool HalChildDestroyed();
}  // namespace MOZ_HAL_NAMESPACE
}  // namespace mozilla

#endif  // mozilla_HalInternal_h