// 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_