#include <kdata.h>
#include <printf.h>
#include <devdw.h>
+#include <drivewire.h>
#define DW_READ 0
#define DW_WRITE 1
return dw_transfer(minor, false, rawflag);
}
+int dw_ioctl(uint8_t minor, uarg_t request, char *data)
+{
+ struct dw_trans s;
+ used( minor );
+
+ if( request != DRIVEWIREC_TRANS )
+ return -1;
+ if( uget( data, &s, sizeof(struct dw_trans) ) )
+ return -1;
+
+ return dw_transaction( s.sbuf, s.sbufz, s.rbuf, s.rbufz, 1 );
+
+}
int dw_read(uint8_t minor, uint8_t rawflag, uint8_t flag);
int dw_write(uint8_t minor, uint8_t rawflag, uint8_t flag);
int dw_open(uint8_t minor, uint16_t flag);
+int dw_ioctl(uint8_t minor, uarg_t request, char *data);
/* low level interface */
uint8_t dw_reset(void);
{ nxio_open, no_close, no_rdwr, no_rdwr, no_ioctl },
{ nxio_open, no_close, no_rdwr, no_rdwr, no_ioctl },
/* /dev/dw Drivewire */
- { dw_open, no_close, dw_read, dw_write, no_ioctl },
+ { dw_open, no_close, dw_read, dw_write, dw_ioctl },
};
bool validdev(uint16_t dev)
CC_NOOPT = $(CC_OPT)
ASM_OPT = -o
# copied in from kernel tree
-KRN_HEADERS = userstructs.h
+KRN_HEADERS = userstructs.h drivewire.h
KRN_HEADERS_SRC = $(addprefix ../../Kernel/include/,$(KRN_HEADERS))
KRN_HEADERS_COPY = $(addprefix ../include/sys/,$(KRN_HEADERS))
SRC_CRT0 = crt0_$(PLATFORM).s crt0nostdio_$(PLATFORM).s