freebsd-ports/devel/pikdev/files/patch-pikdev_uparport.cc
Jose Alonso Cardenas Marquez 9d4693d397 New port: devel/pikdev
PiKdev is a simple graphic IDE for the development of PIC-based applications.
It currently supports assembly language. C language is also supported for PIC
18 devices. PiKdev is developed in C++ under Linux, FreeBSD and is based on
the KDE environment.

WWW:    http://pikdev.free.fr/

Approved by:	garga (mentor)
2006-08-01 11:20:58 +00:00

163 lines
5.6 KiB
C++

--- src/uparport.cc Sat Jun 24 13:21:15 2006
+++ src/uparport.cc Sat Jun 24 14:31:29 2006
@@ -25,23 +25,23 @@
struct parport::pintable parport::pin_table[26] =
{
{ NA, NA ,0x00, &parport::errimg }, /* pin 0 Invalid pin # */
- { PPRCONTROL, PPWCONTROL,0x01, &parport::controlimg }, /* pin 1 (out) !strobe */
- { PPRDATA, PPWDATA ,0x01, &parport::dataimg },/* pin 2 (out) Data 0 */
- { PPRDATA, PPWDATA ,0x02, &parport::dataimg },/* pin 3 (out) Data 1 */
- { PPRDATA, PPWDATA ,0x04, &parport::dataimg },/* pin 4 (out) Data 2 */
- { PPRDATA, PPWDATA ,0x08, &parport::dataimg },/* pin 5 (out) Data 3 */
- { PPRDATA, PPWDATA ,0x10, &parport::dataimg },/* pin 6 (out) Data 4 */
- { PPRDATA, PPWDATA ,0x20, &parport::dataimg },/* pin 7 (out) Data 5 */
- { PPRDATA, PPWDATA ,0x40, &parport::dataimg },/* pin 8 (out) Data 6 */
- { PPRDATA, PPWDATA ,0x80, &parport::dataimg },/* pin 9 (out) Data 7 */
- { PPRSTATUS, NA ,0x40, &parport::statusimg },/* pin 10 (in) !ack */
- { PPRSTATUS, NA ,0x80, &parport::statusimg }, /* pin 11 (in) busy */
- { PPRSTATUS, NA ,0x20, &parport::statusimg }, /* pin 12 (in) Pout */
- { PPRSTATUS, NA ,0x10, &parport::statusimg }, /* pin 13 (in) Select */
- { PPRCONTROL, PPWCONTROL,0x02, &parport::controlimg },/* pin 14 (out) !feed */
- { PPRSTATUS, NA ,0x08, &parport::statusimg },/* pin 15 (in) !error */
- { PPRCONTROL, PPWCONTROL,0x04, &parport::controlimg },/* pin 16 (out) !init */
- { PPRCONTROL, PPWCONTROL,0x08, &parport::controlimg },/* pin 17 (out) !SI */
+ { PPIGCTRL, PPISCTRL ,0x01, &parport::controlimg }, /* pin 1 (out) !strobe */
+ { PPIGDATA, PPISDATA ,0x01, &parport::dataimg },/* pin 2 (out) Data 0 */
+ { PPIGDATA, PPISDATA ,0x02, &parport::dataimg },/* pin 3 (out) Data 1 */
+ { PPIGDATA, PPISDATA ,0x04, &parport::dataimg },/* pin 4 (out) Data 2 */
+ { PPIGDATA, PPISDATA ,0x08, &parport::dataimg },/* pin 5 (out) Data 3 */
+ { PPIGDATA, PPISDATA ,0x10, &parport::dataimg },/* pin 6 (out) Data 4 */
+ { PPIGDATA, PPISDATA ,0x20, &parport::dataimg },/* pin 7 (out) Data 5 */
+ { PPIGDATA, PPISDATA ,0x40, &parport::dataimg },/* pin 8 (out) Data 6 */
+ { PPIGDATA, PPISDATA ,0x80, &parport::dataimg },/* pin 9 (out) Data 7 */
+ { PPIGSTATUS, NA ,0x40, &parport::statusimg },/* pin 10 (in) !ack */
+ { PPIGSTATUS, NA ,0x80, &parport::statusimg }, /* pin 11 (in) busy */
+ { PPIGSTATUS, NA ,0x20, &parport::statusimg }, /* pin 12 (in) Pout */
+ { PPIGSTATUS, NA ,0x10, &parport::statusimg }, /* pin 13 (in) Select */
+ { PPIGCTRL, PPISCTRL,0x02, &parport::controlimg },/* pin 14 (out) !feed */
+ { PPIGSTATUS, NA ,0x08, &parport::statusimg },/* pin 15 (in) !error */
+ { PPIGCTRL, PPISCTRL,0x04, &parport::controlimg },/* pin 16 (out) !init */
+ { PPIGCTRL, PPISCTRL,0x08, &parport::controlimg },/* pin 17 (out) !SI */
{ NA, NA , 0x00, &parport::errimg }, /* pin 18 GND */
{ NA, NA , 0x00, &parport::errimg }, /* pin 19 GND */
{ NA, NA , 0x00, &parport::errimg }, /* pin 20 GND */
@@ -68,7 +68,6 @@
int parport::yield()
{
if(fd == -1) return -1;
- return ioctl(fd,PPYIELD) ;
}
// --------------------------------------------------------
@@ -83,22 +82,15 @@
int k;
- if( ((sscanf(np,"/dev/parport%d",&k) == 1) || (sscanf(np,"/dev/parports/%d",&k) == 1))
+ if( ((sscanf(np,"/dev/ppi%d",&k) == 1) || (sscanf(np,"/dev/ppi/%d",&k) == 1))
&& (k >= 0) && (k < 10))
{
// seems correct ..
fd = open(np, O_RDWR) ;
- if( fd != -1)
+ if( fd != 0)
{
- if( (k = ioctl(fd, PPCLAIM)) != 0)
- {
- char b[200] ;
- sprintf(b,"parport::setport (%.150s must be rw enabled)", np);
- perror(b) ;
- ::close(fd) ;
- fd = -1 ;
- }
+ return ;
}
else
perror("Cannot open parallel port") ;
@@ -110,7 +102,7 @@
int parport::writedata(unsigned char x)
{
- int s = ioctl(fd,PPWDATA,&x);
+ int s = ioctl(fd,PPISDATA,&x);
if( s )
perror("parport::writedata") ;
else
@@ -120,7 +112,7 @@
int parport::readdata(unsigned char& x)
{
- int s = ioctl(fd,PPRDATA,&x);
+ int s = ioctl(fd,PPIGDATA,&x);
if( s )
perror( "parport::readdata") ;
else
@@ -131,7 +123,7 @@
int parport::writecontrol(unsigned char x)
{
- int s = ioctl(fd,PPWCONTROL,&x);
+ int s = ioctl(fd, PPISCTRL,&x);
if( s ) perror( "parport::writecontrol") ;
else controlimg = x ;
return s ;
@@ -139,7 +131,7 @@
int parport::readcontrol(unsigned char& x)
{
- int s = ioctl(fd,PPRCONTROL,&x);
+ int s = ioctl(fd, PPIGCTRL,&x);
if( s )
perror("parport::readcontrol");
else
@@ -160,7 +152,7 @@
int parport::readstatus(unsigned char& x)
{
- int s = ioctl(fd,PPRSTATUS,&x);
+ int s = ioctl(fd,PPIGSTATUS,&x);
if( s )
perror("parport::readstatus") ;
else
@@ -235,34 +227,18 @@
int fd = open(pname, O_RDWR) ;
if( fd == -1 ) return -2 ;
- int k = ioctl(fd, PPCLAIM) ;
-
- if( k != 0 )
- {
- ::close(fd) ;
- return -1 ;
- }
-
- ioctl(fd,PPRELEASE) ;
-
- ::close(fd) ;
+ ::close(fd) ;
return 0 ;
-
}
/** No descriptions */
void parport::close()
{
- if( fd != -1)
- {
- int stat = ioctl(fd,PPRELEASE) ;
- ::close(fd) ;
- if( stat != 0)
- {
- perror("parport::~parport") ;
- }
- }
- fd = -1 ;
+ if( fd != -1)
+ {
+ ::close(fd) ;
+ }
+ fd = -1 ;
}
bool parport::isok()
{