summaryrefslogtreecommitdiff
path: root/stacks/max25-bcpr/include/bcpr/bcpr_lock.h
diff options
context:
space:
mode:
authorinfo@mode42.com <info@mode42.com>2026-08-07 18:23:28 +0000
committerinfo@mode42.com <info@mode42.com>2026-08-07 18:23:28 +0000
commitfa05a5f8238e9e1417235711656e5062ccc843a7 (patch)
tree46fbbd18de54492b59307c16efcc7f3152723238 /stacks/max25-bcpr/include/bcpr/bcpr_lock.h
Initial push
Diffstat (limited to 'stacks/max25-bcpr/include/bcpr/bcpr_lock.h')
-rw-r--r--stacks/max25-bcpr/include/bcpr/bcpr_lock.h22
1 files changed, 22 insertions, 0 deletions
diff --git a/stacks/max25-bcpr/include/bcpr/bcpr_lock.h b/stacks/max25-bcpr/include/bcpr/bcpr_lock.h
new file mode 100644
index 0000000..fd6c6b7
--- /dev/null
+++ b/stacks/max25-bcpr/include/bcpr/bcpr_lock.h
@@ -0,0 +1,22 @@
+#ifndef BCPR_LOCK_H
+#define BCPR_LOCK_H
+
+#include "bcpr/bcpr_config.h"
+
+typedef struct bcpr_port_lock {
+ char serial[64];
+ unsigned iobase;
+ unsigned irq;
+ int lock_fd;
+ int uart_released;
+ int dry_run;
+} bcpr_port_lock_t;
+
+/* Exclusive COM lock: flock + setserial uart none. irq must match setserial. */
+int bcpr_lock_acquire(bcpr_port_lock_t *lk, const bcpr_dev_config_t *dev,
+ int dry_run);
+void bcpr_lock_release(bcpr_port_lock_t *lk);
+int bcpr_lock_verify_irq(const char *serial, unsigned expect_irq,
+ unsigned *got_irq, unsigned *got_io);
+
+#endif
git clone -b <branch> https://cgit.mode42.com/<repo>.git
git clone -b <branch> git://cgit.mode42.com/<repo>.git

info@mode42.com