From 04548126b5c430356a723e30ba222ff4b874fad0 Mon Sep 17 00:00:00 2001 From: tcsullivan Date: Tue, 25 Sep 2018 17:09:53 -0400 Subject: began work to add privilege --- include/priv_gpio.h | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) create mode 100644 include/priv_gpio.h (limited to 'include') diff --git a/include/priv_gpio.h b/include/priv_gpio.h new file mode 100644 index 0000000..eee5e18 --- /dev/null +++ b/include/priv_gpio.h @@ -0,0 +1,26 @@ +#ifndef PRIV_GPIO_H_ +#define PRIV_GPIO_H_ + +#define GPIO_MODE 0 +#define GPIO_TYPE 1 +#define GPIO_PUPD 2 +#define GPIO_SPEED 3 +#define GPIO_OUT 4 + +void gpio(uint32_t call, uint32_t port, uint32_t pin, uint32_t value) +{ + register uint32_t r0 asm("r0") = call; + register uint32_t r1 asm("r1") = port; + register uint32_t r2 asm("r2") = pin; + register uint32_t r3 asm("r3") = value; + + asm("\ + mov r0, %0; \ + mov r1, %1; \ + mov r2, %2; \ + mov r3, %3; \ + svc 1; \ + " :: "r" (r0), "r" (r1), "r" (r2), "r" (r3)); +} + +#endif // PRIV_GPIO_H_ -- cgit v1.2.3