/* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*- */ /* 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_hal_Types_h #define mozilla_hal_Types_h #include "ipc/EnumSerializer.h" #include "mozilla/Observer.h" namespace mozilla { namespace hal { /** * These constants specify special values for content process IDs. You can get * a content process ID by calling ContentChild::GetID() or * ContentParent::GetChildID(). */ const uint64_t CONTENT_PROCESS_ID_UNKNOWN = uint64_t(-1); const uint64_t CONTENT_PROCESS_ID_MAIN = 0; // Note that we rely on the order of this enum's entries. Higher priorities // should have larger int values. enum ProcessPriority { PROCESS_PRIORITY_UNKNOWN = -1, PROCESS_PRIORITY_BACKGROUND, PROCESS_PRIORITY_BACKGROUND_PERCEIVABLE, PROCESS_PRIORITY_FOREGROUND_KEYBOARD, // The special class for the preallocated process, high memory priority but // low CPU priority. PROCESS_PRIORITY_PREALLOC, // Any priority greater than or equal to FOREGROUND is considered // "foreground" for the purposes of priority testing, for example // CurrentProcessIsForeground(). PROCESS_PRIORITY_FOREGROUND, PROCESS_PRIORITY_FOREGROUND_HIGH, PROCESS_PRIORITY_PARENT_PROCESS, NUM_PROCESS_PRIORITY }; /** * Convert a ProcessPriority enum value to a string. The strings returned by * this function are statically allocated; do not attempt to free one! * * If you pass an unknown process priority, we fatally assert in debug * builds and otherwise return "???". */ const char* ProcessPriorityToString(ProcessPriority aPriority); /** * Used by ModifyWakeLock */ enum WakeLockControl { WAKE_LOCK_REMOVE_ONE = -1, WAKE_LOCK_NO_CHANGE = 0, WAKE_LOCK_ADD_ONE = 1, NUM_WAKE_LOCK }; } // namespace hal } // namespace mozilla namespace IPC { /** * WakeLockControl serializer. */ template <> struct ParamTraits : public ContiguousEnumSerializer {}; template <> struct ParamTraits : public ContiguousEnumSerializer {}; } // namespace IPC #endif // mozilla_hal_Types_h