added buffer info ioctl support and some alpha buffer related functions
authorFrank Mori Hess <fmhess@speakeasy.net>
Fri, 6 Apr 2001 23:12:42 +0000 (23:12 +0000)
committerFrank Mori Hess <fmhess@speakeasy.net>
Fri, 6 Apr 2001 23:12:42 +0000 (23:12 +0000)
include/comedi.h
include/comedilib.h
lib/Makefile
lib/ioctl.c
lib/libinternal.h

index a4e1915fae5250e1ca27a3b9edb8c85e023b6dc3..81f51bfbf81967af6bb94ac12f3773f7c458efe7 100644 (file)
@@ -171,6 +171,7 @@ typedef unsigned short sampl_t;
 #define COMEDI_INSNLIST _IOR(CIO,11,comedi_insnlist)
 #define COMEDI_INSN _IOR(CIO,12,comedi_insn)
 #define COMEDI_BUFCONFIG _IOR(CIO,13,comedi_bufconfig)
+#define COMEDI_BUFINFO _IOWR(CIO,14,comedi_bufinfo)
 
 
 /* structures */
@@ -186,6 +187,7 @@ typedef struct comedi_devconfig_struct comedi_devconfig;
 typedef struct comedi_rangeinfo_struct comedi_rangeinfo;
 typedef struct comedi_krange_struct comedi_krange;
 typedef struct comedi_bufconfig_struct comedi_bufconfig;
+typedef struct comedi_bufinfo_struct comedi_bufinfo;
 
 struct comedi_trig_struct{
        unsigned int subdev;            /* subdevice */
@@ -298,6 +300,18 @@ struct comedi_bufconfig_struct{
        unsigned int unused[4];
 };
 
+struct comedi_bufinfo_struct{
+       unsigned int subdevice;
+       unsigned int bytes_read;
+
+       unsigned int buf_int_ptr;
+       unsigned int buf_user_ptr;
+       unsigned int buf_int_count;
+       unsigned int buf_user_count;
+
+       unsigned int unused[5];
+};
+
 /* range stuff */
 
 #define __RANGE(a,b)   ((((a)&0xffff)<<16)|((b)&0xffff))
index 26a3a062123ac80386cdd69855074c4f82016027..2e93a66bc7701f25fb29032cb0fc119ca190714b 100644 (file)
@@ -150,7 +150,11 @@ enum comedi_oor_behavior {
 
 enum comedi_oor_behavior comedi_set_global_oor_behavior(enum comedi_oor_behavior behavior);
 
-
+int comedi_buf_resize(comedi_t *it, unsigned int subdev, unsigned int size);
+int comedi_buf_resize_max(comedi_t *it, unsigned int subdev, unsigned int max_size);
+int comedi_buf_size(comedi_t *it, unsigned int subdev);
+int comedi_buf_contents(comedi_t *it, unsigned int subdev);
+int comedi_buf_mark_read(comedi_t *it, unsigned int subdev, unsigned int bytes);
 
 
 #ifdef __cplusplus
index 83a2406aa80800e35413e785f997110beb92e549..ec52d5ac554cf383f9e5fe59d70d2153a818ac18 100644 (file)
@@ -2,7 +2,7 @@
 CFLAGS = -fPIC -Wall -Wstrict-prototypes -O2 -I../include -I.
 
 OBJS=comedi.o timer.o sv.o range.o ioctl.o filler.o timed.o error.o \
-       dio.o data.o get.o
+       dio.o data.o get.o buffer.o
 
 libcomedi.a: $(OBJS)
        #gcc -shared -Wl,-soname,libcomedi.so,-T,version_script -o libcomedi.so.${VERSION_CODE} $(OBJS) -lm
index 3bc58ee6d418a056aed74eb2d5f8a71ad91cb12b..7b5b91d5f265adf461d3a3d04ac3c0de2e7b43b5 100644 (file)
@@ -75,4 +75,12 @@ int ioctl_rangeinfo(int fd,int range_type,comedi_krange *range_ptr)
        return ioctl(fd,COMEDI_RANGEINFO,&it);
 }
 
+int ioctl_bufconfig(int fd, comedi_bufconfig *bc)
+{
+       return ioctl(fd, COMEDI_BUFCONFIG, bc);
+}
 
+int ioctl_bufinfo(int fd, comedi_bufinfo *bi)
+{
+       return ioctl(fd, COMEDI_BUFINFO, bi);
+}
index 7aac704f53428a7d7b662fd4d20f64f0a62defab..2e4dd5faa5d9c749870b269e974cdb7f3834a0ec 100644 (file)
@@ -100,6 +100,8 @@ int ioctl_chaninfo(int fd,unsigned int subdev,lsampl_t *maxdata_list,
                                unsigned int *flaglist,unsigned int *rangelist);
 int ioctl_trigger(int fd,comedi_trig *it);
 int ioctl_rangeinfo(int fd,int range_type,comedi_krange *range_ptr);
+int ioctl_bufconfig(int fd, comedi_bufconfig *bc);
+int ioctl_bufinfo(int fd, comedi_bufinfo *bi);
 
 /* filler routines */