From 80469b4bfaf49a407d8d6b5bf3c2eb0d1c9870e6 Mon Sep 17 00:00:00 2001 From: Joe Zhao Date: Fri, 16 May 2014 17:12:37 +0800 Subject: Comments update --- rs422lib/sysctl.h | 23 +++++++++++++++++++++-- 1 file changed, 21 insertions(+), 2 deletions(-) (limited to 'rs422lib/sysctl.h') diff --git a/rs422lib/sysctl.h b/rs422lib/sysctl.h index 11b65ed..b8301fa 100644 --- a/rs422lib/sysctl.h +++ b/rs422lib/sysctl.h @@ -12,6 +12,8 @@ #ifndef SYSCTL_H_ #define SYSCTL_H_ +// Sysctl priority bit +// Lowest first #define SYS_BIT7 (0x80) #define SYS_BIT6 (0x40) #define SYS_BIT5 (0x20) @@ -20,17 +22,34 @@ #define SYS_BIT2 (0x04) #define SYS_BIT1 (0x02) #define SYS_BIT0 (0x01) + +// SYSCALL invocation routine +// Used this in IRQ, also wakes up the cpu #define SYSCALL_IRQ(X) (syscall|=X,_BIC_SR_IRQ(CPUOFF)) +// Use this in anywhere other than IRQ +// Continuous invocation ? #define SYSCALL(X) (syscall|=X) +// Call handler type +// Does't have any input +// Preserve the state in other global variables +// Usage example -> rsbus_syscall() typedef void (*syshdlr)(); -void sysctl_reghdlr(unsigned int bit,syshdlr rot);// Always replace +// Register call handler +// Always replace old value +void sysctl_reghdlr(unsigned int bit,syshdlr rot); -void sysctl_rmhdlr(unsigned int bit);// Replace with something useless +// Remove old call handler +// Replace with something useless +void sysctl_rmhdlr(unsigned int bit); +// Insert it into mainloop +// enabling automatic procedure invocation void sysroutine(); +// Setting up the proc base +// Call before usage void sysctl_init(); extern volatile unsigned char syscall; -- cgit v1.2.3-70-g09d2