diff options
| author | Manuel Traut <manut@mecka.net> | 2014-03-31 16:53:55 +0200 |
|---|---|---|
| committer | Manuel Traut <manut@mecka.net> | 2014-03-31 16:53:55 +0200 |
| commit | 1adba473e6917b227e1b0a1118148101dca202e7 (patch) | |
| tree | 13180ede9564ba50c528b274ee5719b4e030ef06 /quellcode/versuch4/cpx.h | |
| parent | eacbf5bb4d57af21c731f41251015d3b991ad490 (diff) | |
Signed-off-by: Manuel Traut <manut@mecka.net>
Diffstat (limited to 'quellcode/versuch4/cpx.h')
| -rwxr-xr-x | quellcode/versuch4/cpx.h | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/quellcode/versuch4/cpx.h b/quellcode/versuch4/cpx.h new file mode 100755 index 0000000..7b4545a --- /dev/null +++ b/quellcode/versuch4/cpx.h @@ -0,0 +1,73 @@ +/** + * + * \file cpx.h + * \brief read and write DIO + * + * \author Manuel Traut + * \version 2006-10-06 + * + */ + +#ifndef CPX_H +#define CPX_H + +#include <iostream> + +#include <sys/mman.h> +#include <sys/ioctl.h> +#include <fcntl.h> +#include <unistd.h> + +#define CPX_Input "/dev/iio2" +#define CPX_Input_1 "/dev/iio2_in" +#define CPX_Output_1 "/dev/iio2_out" + +#define PORT1_OUT 0x2c00 +#define PORT2_OUT 0x3c00 +#define PORT3_OUT 0x4c00 + +#define PORT1_IN 0x5c00
+#define PORT2_IN 0x6c00
+#define PORT3_IN 0x7c00 + +# ifndef PROT_READ +# define PROT_READ 0x01 +# endif +# ifndef PROT_WRITE +# define PROT_WRITE 0x02 +# endif +# ifndef MAP_SHARED +# define MAP_SHARED 0x01 +# endif +# ifndef MAP_PRIVATE +# define MAP_PRIVATE 0x02 +# endif + +// ioctl (file descriptor, CPX_DIO_IOCTL_SET_SIGNAL, irq_send_signal_param*) +// enable sending signal on interrupt +// cpx_dio_set_signal_param.signal = signal to be sent to process +#define CPX_DIO_IOCTL_BASE 0xCD + +typedef struct{ + int signal; /* IN parameter: LINUX signal to be sent */ + int pid; /* IN parameter: process id where signal should be sent to */ +}cpx_dio_set_signal_param; + +#define CPX_DIO_IOCTL_ADD_SIG _IOW(CPX_DIO_IOCTL_BASE, 3, cpx_dio_set_signal_param) +#define CPX_DIO_IOCTL_DEL_SIG _IOW(CPX_DIO_IOCTL_BASE, 4, cpx_dio_set_signal_param) + +class CPX{ + public: + CPX(); + void set(short port, short value); + short get(short port); + private: + int init(); + unsigned char *mapped_in; + unsigned char *mapped_out; + volatile u_char *DOUT; + volatile u_char *DIN; + cpx_dio_set_signal_param param; +}; + +#endif |
