claim.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2020 Raspberry Pi (Trading) Ltd.
3 *
4 * SPDX-License-Identifier: BSD-3-Clause
5 */
6
7#ifndef _HARDWARE_CLAIM_H
8#define _HARDWARE_CLAIM_H
9
10#include "pico.h"
11#include "hardware/sync.h"
12
34#ifdef __cplusplus
35extern "C" {
36#endif
37
47void hw_claim_or_assert(uint8_t *bits, uint bit_index, const char *message);
48
59int hw_claim_unused_from_range(uint8_t *bits, bool required, uint bit_lsb, uint bit_msb, const char *message);
60
70bool hw_is_claimed(const uint8_t *bits, uint bit_index);
71
80void hw_claim_clear(uint8_t *bits, uint bit_index);
81
93uint32_t hw_claim_lock(void);
94
102void hw_claim_unlock(uint32_t token);
103
104#ifdef __cplusplus
105}
106#endif
107
108#endif
void hw_claim_or_assert(uint8_t *bits, uint bit_index, const char *message)
Atomically claim a resource, panicking if it is already in use.
Definition: claim.c:21
void hw_claim_clear(uint8_t *bits, uint bit_index)
Atomically unclaim a resource.
Definition: claim.c:49
bool hw_is_claimed(const uint8_t *bits, uint bit_index)
Determine if a resource is claimed at the time of the call.
Definition: claim.c:17
uint32_t hw_claim_lock(void)
Acquire the runtime mutual exclusion lock provided by the hardware_claim library.
Definition: claim.c:9
int hw_claim_unused_from_range(uint8_t *bits, bool required, uint bit_lsb, uint bit_msb, const char *message)
Atomically claim one resource out of a range of resources, optionally asserting if none are free.
Definition: claim.c:31
void hw_claim_unlock(uint32_t token)
Release the runtime mutual exclusion lock provided by the hardware_claim library.
Definition: claim.c:13