chromium/ios/components/order_file/order_file_common.h

// Copyright 2024 The Chromium Authors
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

#ifndef IOS_COMPONENTS_ORDER_FILE_ORDER_FILE_COMMON_H_
#define IOS_COMPONENTS_ORDER_FILE_ORDER_FILE_COMMON_H_

#import <libkern/OSAtomicQueue.h>

#ifdef __cplusplus
extern "C" {
#endif

// A struct representing a procedure call.
typedef struct {
  void* procedureCall;
  void* next;  // Used for offset.
} CRWProcedureCallNode;

// Queue containing the ordered procedure calls.
extern OSQueueHead gCRWSanitizerQueue;

// Whether the guard variables have been initialized.
extern bool gCRWGuardsInitialized;

// Whether the addition of more procedure calls is allowed.
extern bool gCRWFinishedCollecting;

#ifdef __cplusplus
}  // extern "C"
#endif

#endif  // IOS_COMPONENTS_ORDER_FILE_ORDER_FILE_COMMON_H_