Subversion Repositories shark

Compare Revisions

Ignore whitespace Rev 80 → Rev 1114

/shark/tags/rel_0_4/include/drivers/pci6025e/pci6025e.h
38,6 → 38,10
 
#include "regconst.h"
 
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
//#define __REG_DEBUG__ //enable this in debug mode to see
//configuration registers value
 
101,5 → 105,6
extern WORD joint_reset, interrupt_a_enable, interrupt_a_ack,
interrupt_b_enable, interrupt_b_ack, clock_and_fout;
 
__END_DECLS
#endif
/*End of File: Pci6025e.h*/
/shark/tags/rel_0_4/include/drivers/pci6025e/timer.h
37,7 → 37,10
 
#include <drivers/pci6025e/pci6025e.h>
#include <drivers/pci6025e/regconst.h>
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
#define C0 0
#define C1 1
 
62,5 → 65,7
void TIM_bufferedEventCounting(BYTE, BYTE, BYTE, BYTE, DWORD);
void TIM_timeMeasurement(BYTE, BYTE, BYTE, BYTE, BYTE, DWORD);
void TIM_bufferedTimeMeasurement(BYTE, BYTE, BYTE, BYTE, DWORD);
 
__END_DECLS
#endif
/*--------------------------------------------------------------------------*/
/shark/tags/rel_0_4/include/drivers/pci6025e/dio_ppi.h
34,7 → 34,10
#define _MY_DIO_H_
 
#include <drivers/pci6025e/pci6025e.h>
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
#define ALL_IN 0x0000 //All 8 STC line in input
#define ALL_OUT 0x00FF //All 8 STC line in output
 
66,5 → 69,7
WORD PPI_setConfig(BYTE, BYTE, BYTE, BYTE, BYTE, BYTE);
WORD PPI_getConfig(BYTE);
BYTE PPI_getAddress(BYTE);
 
__END_DECLS
#endif
/*--------------------------------------------------------------------------*/
/shark/tags/rel_0_4/include/drivers/pci6025e/dac.h
33,7 → 33,10
 
#include <drivers/pci6025e/pci6025e.h>
#include <drivers/pci6025e/regconst.h>
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
#define DAC0 0
#define DAC1 1
 
53,5 → 56,7
 
void DAC_Init(void);
void DAC_output(BYTE, WORD);
 
__END_DECLS
#endif
/*End of file: DAC.H*/
/shark/tags/rel_0_4/include/drivers/gd.h
20,11 → 20,11
 
/**
------------
CVS : $Id: gd.h,v 1.1.1.1 2002-03-29 14:12:51 pj Exp $
CVS : $Id: gd.h,v 1.3 2003-03-13 13:38:28 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-03-29 14:12:51 $
Revision: $Revision: 1.3 $
Last update: $Date: 2003-03-13 13:38:28 $
------------
 
**/
54,7 → 54,10
#include <ll/sys/types.h>
/* Std 16 colors... are in cons.h !!!*/
#include <ll/i386/cons.h>
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
/* 15bpp, 16bpp, 24bpp and 32bpp colors... */
#define color15(r, g, b) (((WORD)(r & 0x1F) << 10) | ((WORD)(g & 0x1F) << 5) | ((WORD)(b & 0x1F)))
#define color16(r, g, b) (((WORD)(r & 0x1F) << 11) | ((WORD)(g & 0x3F) << 5) | ((WORD)(b & 0x1F)))
88,7 → 91,7
DWORD gd_getmem(void);
void gd_showmodeinfo(void);
int gd_modenum(WORD x, WORD y, BYTE depth);
int gd_getmodeinfo(vga_modeinfo *m);
int gd_getmodeinfo(grx_vga_modeinfo *m);
 
void Load_Write_Bank_256(BYTE bank);
 
100,4 → 103,6
void gd_setcolor(BYTE ind,BYTE r,BYTE g,BYTE b);
void gd_getpalette(BYTE start, BYTE num, BYTE *pal);
void gd_setpalette(BYTE start, BYTE num, BYTE *pal);
 
__END_DECLS
#endif
/shark/tags/rel_0_4/include/drivers/pxc.h
20,11 → 20,11
 
/**
------------
CVS : $Id: pxc.h,v 1.1.1.1 2002-03-29 14:12:51 pj Exp $
CVS : $Id: pxc.h,v 1.2 2003-03-13 13:38:28 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-03-29 14:12:51 $
Revision: $Revision: 1.2 $
Last update: $Date: 2003-03-13 13:38:28 $
------------
 
**/
75,6 → 75,10
#include <kernel/types.h>
#include <modules/cabs.h>
 
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
// Definizione degli indirizzi di comando della scheda , relativamente
// a quelli direttamente impiegati
 
189,5 → 193,5
CAB PXC_GetCab(void);
 
 
 
__END_DECLS
#endif
/shark/tags/rel_0_4/include/drivers/linuxpci.h
964,6 → 964,9
#define PCI_DEVICE_ID_ARK_STINGARK 0xa099
#define PCI_DEVICE_ID_ARK_2000MT 0xa0a1
 
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
/*
* The PCI interface treats multi-function devices as independent
* devices. The slot/function address of each device is encoded
1076,4 → 1079,5
extern const char *pci_strclass (unsigned int class);
extern const char *pci_strvendor (unsigned int vendor);
 
__END_DECLS
#endif /* LINUX_PCI_H */
/shark/tags/rel_0_4/include/drivers/dma.h
20,11 → 20,11
 
/**
------------
CVS : $Id: dma.h,v 1.1.1.1 2002-03-29 14:12:51 pj Exp $
CVS : $Id: dma.h,v 1.2 2003-03-13 13:38:28 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-03-29 14:12:51 $
Revision: $Revision: 1.2 $
Last update: $Date: 2003-03-13 13:38:28 $
------------
 
**/
51,6 → 51,10
#ifndef __DRIVERS_DMA_H__
#define __DRIVERS_DMA_H__
 
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
typedef struct dma_buff{
BYTE *p;
DWORD len;
82,4 → 86,5
int infun(struct dma_buff *b);
int outfun(struct dma_buff *b);
 
__END_DECLS
#endif
/shark/tags/rel_0_4/include/drivers/llpci.h
1,3 → 1,6
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
extern int (*pcibios_read_config_byte)
(BYTE bus, BYTE dev, BYTE where, BYTE *val);
extern int (*pcibios_read_config_word)
15,3 → 18,4
int pcibios_find_device(WORD vendor, WORD device, WORD index, BYTE *bus, BYTE *dev);
int pcibios_init(void);
int pcibios_present(void);
__END_DECLS
/shark/tags/rel_0_4/include/drivers/glib.h
20,11 → 20,11
 
/**
------------
CVS : $Id: glib.h,v 1.1.1.1 2002-03-29 14:12:51 pj Exp $
CVS : $Id: glib.h,v 1.2 2003-03-13 13:38:28 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-03-29 14:12:51 $
Revision: $Revision: 1.2 $
Last update: $Date: 2003-03-13 13:38:28 $
------------
 
**/
53,7 → 53,10
 
#include <ll/sys/types.h>
#include <drivers/gd.h>
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
int grx_init(void);
int grx_setmode(WORD mode);
int grx_close(void);
80,4 → 83,6
int grx_open(WORD x, WORD y, BYTE depth);
 
void grx_clear(DWORD color);
 
__END_DECLS
#endif
/shark/tags/rel_0_4/include/drivers/parport.h
0,0 → 1,244
/*
* Project:
* Parallel Port S.Ha.R.K. Project
*
* Module:
* ppDrv.h
*
* Description:
* file contents description
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors:
* Andrea Battistotti <btandrea@libero.it>
* Armando Leggio <a_leggio@hotmail.com>
*
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*
*/
 
/* PPDrv.h
header file for par port communication...
*/
 
/*
* Copyright (C) 2002 Andrea Battistotti , Armando Leggio
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
* CVS : $Id: parport.h,v 1.3 2003-03-13 13:38:28 pj Exp $
*/
 
#include <kernel/kern.h>
#include <drivers/keyb.h>
#include <time.h>
#include <stdio.h>
#include <stdlib.h>
#include <kernel/func.h>
#include <string.h>
#include <ll/ll.h>
#include <kernel/types.h>
#include <kernel/descr.h>
#include <math.h>
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
 
/* general defs... */
#define PP_DEBUG 1 /* 1/0 Activate/Disactive internal debugs... */
#define PP_STATS 1 /* 1/0 Activate/Disactive internal statistics... */
 
/* return value... */
#define FALSE 0
#define TRUE 1
#define TIMEOUT 2
 
#define PP_BASE_ADR 0x0378 /* std addr for LPT1 */
 
#define BYTE unsigned char
#define BOOL unsigned char
#define BUF_IDX unsigned int
#define BUF_PNTR unsigned int
#define PIN_MASK unsigned int
 
#define clock() sys_gettime(NULL)
 
enum PIN_STATUS { PIN_OFF , PIN_ON } ; /* positive logic: off==0, on==1 */
 
/*********************************************************************************/
/* PART 1 : LOW LIVEL FUNC */
 
/* defs used in ppPinDrv....*/
/* for std & pin use of pp... */
#define PP_DATA_REG (PP_BASE_ADR+0) // address of data register
#define PP_STATUS_REG (PP_BASE_ADR+1) // address of status register
#define PP_CONTR_REG (PP_BASE_ADR+2) // address of control regist
 
/* out data pins... */
#define PP_PIN_D0 0x01 /* pin 2 */
#define PP_PIN_D1 0x02 /* pin 3 */
#define PP_PIN_D2 0x04 /* pin 4 */
#define PP_PIN_D3 0x08 /* pin 5 */
#define PP_PIN_D4 0x10 /* pin 6 */
#define PP_PIN_D5 0x20 /* pin 7 */
#define PP_PIN_D6 0x40 /* pin 8 */
#define PP_PIN_D7 0x80 /* pin 9 */
/* status pins... */
#define PP_PIN_ERROR 0x08 /* pin 15 */
#define PP_PIN_SELECTED 0x10 /* pin 13 */
#define PP_PIN_PAPEROUT 0x20 /* pin 12 */
#define PP_PIN_ACK 0x40 /* pin 10 */
#define PP_PIN_BUSY 0x80 /* pin 11 */
 
/* control pins... */
#define PP_PIN_DATASTROBE 0x01 /* pin 1 */
#define PP_PIN_AUTOFEED 0x02 /* pin 14 */
#define PP_PIN_INITOUT 0x04 /* pin 16 */
#define PP_PIN_SELECT 0x08 /* pin 17 */
/* Data i/o */
#define ppSetDataByte(a) outp(PP_DATA_REG,a)
#define ppReadDataByte() inp(PP_DATA_REG)
/* this is NOT bidirectional actually: simply read value that I myself wrote on parport early...*/
/* in std lpt you cannot lay down electric pin D0,D1,..D7 from extern and read value in pc...*/
/* this (in std lpt) will broke down lpt port!... */
/* there are obviously also bi-dir port on 8 bit (ECC & ECP) but ctrl & status pins have */
/* different meaning so we don't manage them... See docs. */
 
/* Data pins */
void ppSetDataPin(int state, PIN_MASK pin); /* in ppPinDrv.c */
#define ppSetPin_D0(a) ppSetDataPin(a,PP_PIN_D0) /* On ==1 , Off == 0 */
#define ppSetPin_D1(a) ppSetDataPin(a,PP_PIN_D1)
#define ppSetPin_D2(a) ppSetDataPin(a,PP_PIN_D2)
#define ppSetPin_D3(a) ppSetDataPin(a,PP_PIN_D3)
#define ppSetPin_D4(a) ppSetDataPin(a,PP_PIN_D4)
#define ppSetPin_D5(a) ppSetDataPin(a,PP_PIN_D5)
#define ppSetPin_D6(a) ppSetDataPin(a,PP_PIN_D6)
#define ppSetPin_D7(a) ppSetDataPin(a,PP_PIN_D7)
 
/* Status pins */
#define ppCheckPin_Error() (inp(PP_STATUS_REG & PP_PIN_ERROR)!=0?1:0)
#define ppCheckPin_Selected() (inp(PP_STATUS_REG & PP_PIN_SELECTED)!=0?1:0)
#define ppCheckPin_PaperOut() (inp(PP_STATUS_REG & PP_PIN_PAPEROUT)!=0?1:0)
#define ppCheckPin_Acknowledge() (inp(PP_STATUS_REG & PP_PIN_ACK)!=0?1:0)
#define ppCheckPin_Busy() (inp(PP_STATUS_REG & PP_PIN_BUSY)!=0?0:1) /* act low...*/
 
/* Control pins */
/* Control i/o */
#define ppSetCtrlByte(a) outp(PP_CONTR_REG,a)
#define ppReadCtrlByte() inp(PP_CONTR_REG)
/* idem...*/
void ppSetCtrlPin(int state, PIN_MASK pin); /* in ppPinDrv.c */
#define ppSetPin_DataStrobe(a) ppSetCtrlPin(!a,PP_PIN_DATASTROBE) /* low active...*/
#define ppSetPin_Autofeed(a) ppSetCtrlPin(!a,PP_PIN_AUTOFEED) /* low active...*/
#define ppSetPin_InitOut(a) ppSetCtrlPin(a,PP_PIN_INITOUT)
#define ppSetPin_Select(a) ppSetCtrlPin(!a,PP_PIN_SELECT) /* low active...*/
 
 
 
 
/*********************************************************************************/
/* PART 2 : DATA TRANSFER BETWEEN PC */
/* defs used in ppDrv & ppNRTDrv... */
#define PPDRV_PERIOD 1000 /* 300000 ok for debug...*/
#define PPDRV_WCET 150 /* lower bound: 120; more if debug & stats are on...*/
#define PP_BUF_LEN 1024 /* between 2^2 and 2^16 (64k) */
#define CLK_TIMEOUT 55000 /* timeout for sync pc-pc...*/
 
/* for laplink use of std pp... */
#define TX_PORT PP_BASE_ADR /* transmit port */
#define RX_PORT TX_PORT+1 /* receive port */
 
/* laplink bit mask */
#define TX_DATA 0x0F /* 0000 1111 pin 2,3,4,5 */
#define TX_CTR 0x10 /* 0001 0000 bit 4 port TX pin 6*/
#define RX_DATA 0x78 /* 0111 1000 pin 15,13,12,10 */
#define RX_CTR 0x80 /* 1000 0000 bit 7 port RX pin 11*/
#define LSN 0x0F /* 0000 1111 low significative nibble */
#define MSN 0xF0 /* 1111 0000 most significative nibble */
#define BYTE_CTR 0xAF /* 1010 1111 control char */
 
 
/* comm protocol */
#define ppSendRTS() ppSetOnPinTX_CTR()
#define ppIsRTS() ppReadIfPinRX_CTRIsOn()
#define ppSendOTS() ppSetOnPinTX_CTR()
#define ppIsOTS() ppReadIfPinRX_CTRIsOn()
#define ppSendDR() ppSetOffPinTX_CTR()
#define ppIsDR() ppReadIfPinRX_CTRIsOff()
#define ppSendER() ppSetOffPinTX_CTR()
#define ppIsER() ppReadIfPinRX_CTRIsOff()
 
 
#define ppSetOnPinTX_CTR() outp(TX_PORT,(inp(TX_PORT)|TX_CTR)) /* used by: ppSendRTS ppSendOTS */
#define ppSetOffPinTX_CTR() outp(TX_PORT,(inp(TX_PORT)&(~TX_CTR))) /* used by: ppSendDR ppSendER */
#define ppReadIfPinRX_CTRIsOn() ((((~inp(RX_PORT))&RX_CTR)==0)?FALSE:TRUE)
#define ppReadIfPinRX_CTRIsOff() (((BYTE)((~RX_CTR)|(~inp(RX_PORT)))==0x7F)?TRUE:FALSE)
 
/* Funct Return Code */
enum PP_COMM_RTR_CODE {
PP_COMM_OK,
PP_COMM_NOREADYBYTES_EXC,
PP_COMM_NOFREEBYTES_EXC
};
 
/* Funct Return Code */
enum PP_SYSMSG_RTR_CODE {
PP_SYSMSG_OK,
PP_NOSYSMSG_EXC,
PP_NOFREEMSG_EXC
};
 
/* NON REAL TIME (== BLOCK) functions...*/
/* from ppNRTDrv.c...*/
BOOL ppNRTOpenComm(void);
BOOL ppNRTWaitRTS(void);
BOOL ppNRTWaitDR(void);
BOOL ppNRTWaitOTS(void);
BOOL ppNRTWaitER(void);
BOOL ppNRTTxOneByte(BYTE c);
BOOL ppNRTRxOneByte(BYTE *c);
 
 
/* REAL TIME (== NON BLOCK) POLLING SERVER */
/* from ppDrv.c... */
void ppInitDrv(void (*pf)(char *)); /* NRT: to be called before start ppPollingSrv...*/
TASK ppPollingSvr(void *arg); /* periodic task to be started before any call to Rx/Tx...*/
 
/* input output function */
int ppRxOneByte(BYTE *c); /* retrive 1 byte */
int ppTxOneByte(BYTE c); /* send 1 byte */
 
int ppRxBytes(BYTE *c, unsigned int nbyte); /* retrive n byte... */
int ppTxBytes(BYTE *c, unsigned int nbyte); /* send n byte... */
 
 
/* System msg */
#define SYS_MSG_COLS 33
#define SYS_MSG_LINS 15
 
 
int ppReadSysMsg(char * buf);
int ppWriteSysMsg(char * buf, ...);
 
__END_DECLS
/shark/tags/rel_0_4/include/drivers/mouse.h
20,11 → 20,11
 
/**
------------
CVS : $Id: mouse.h,v 1.1.1.1 2002-03-29 14:12:51 pj Exp $
CVS : $Id: mouse.h,v 1.2 2003-03-13 13:38:28 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-03-29 14:12:51 $
Revision: $Revision: 1.2 $
Last update: $Date: 2003-03-13 13:38:28 $
------------
 
**/
31,11 → 31,11
 
/**
------------
CVS : $Id: mouse.h,v 1.1.1.1 2002-03-29 14:12:51 pj Exp $
CVS : $Id: mouse.h,v 1.2 2003-03-13 13:38:28 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-03-29 14:12:51 $
Revision: $Revision: 1.2 $
Last update: $Date: 2003-03-13 13:38:28 $
------------
 
Author: Gerardo Lamastra
80,6 → 80,10
#include <drivers/scom.h>
#endif
 
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
/* mouse buttons constant */
#define MOUSE_RBUTT 1
#define MOUSE_CBUTT 2
211,4 → 215,5
void (*mouse_on)(void);
void (*mouse_off)(void);
 
__END_DECLS
#endif
/shark/tags/rel_0_4/include/drivers/rtc.h
20,11 → 20,11
 
/**
------------
CVS : $Id: rtc.h,v 1.1.1.1 2002-03-29 14:12:51 pj Exp $
CVS : $Id: rtc.h,v 1.2 2003-03-13 13:38:28 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-03-29 14:12:51 $
Revision: $Revision: 1.2 $
Last update: $Date: 2003-03-13 13:38:28 $
------------
 
**/
57,6 → 57,10
 
#include <time.h>
 
#include "ll/sys/cdefs.h"
 
__BEGIN_DECLS
 
/*
* The struct used to pass data via the following ioctl. Similar to the
* struct tm in <time.h>, but it needs to be here so that the kernel
80,4 → 84,5
 
time_t sys_getdate(void);
 
__END_DECLS
#endif
/shark/tags/rel_0_4/include/drivers/grxsvga/glib.h
0,0 → 1,70
/*
* Project: S.Ha.R.K.
*
* Coordinators:
* Giorgio Buttazzo <giorgio@sssup.it>
* Paolo Gai <pj@gandalf.sssup.it>
*
* Authors :
* Paolo Gai <pj@gandalf.sssup.it>
* Massimiliano Giorgi <massy@gandalf.sssup.it>
* Luca Abeni <luca@gandalf.sssup.it>
* (see the web pages for full authors list)
*
* ReTiS Lab (Scuola Superiore S.Anna - Pisa - Italy)
*
* http://www.sssup.it
* http://retis.sssup.it
* http://shark.sssup.it
*/
 
/**
------------
CVS : $Id: glib.h,v 1.1 2003-03-13 13:19:54 giacomo Exp $
 
File: $File$
Revision: $Revision: 1.1 $
Last update: $Date: 2003-03-13 13:19:54 $
------------
 
**/
 
/*
* Copyright (C) 2000 Luca Abeni
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*
*/
 
#ifndef __GLIB_H__
#define __GLIB_H__
 
#include <ll/sys/types.h>
 
int grx_setbuffer(BYTE *vbuf,WORD w, WORD h);
 
void grx_plot(WORD x, WORD y, DWORD color);
DWORD grx_getpixel(WORD x, WORD y);
//void grx_getimage(WORD x1, WORD y1, WORD x2, WORD y2, BYTE *buf);
//void grx_putimage(WORD x1, WORD y1, WORD x2, WORD y2, BYTE *buf);
void grx_box(WORD x1, WORD y1, WORD x2, WORD y2, DWORD color);
void grx_rect(WORD x1, WORD y1, WORD x2, WORD y2, DWORD color);
void grx_line(WORD x1, WORD y1, WORD x2, WORD y2, DWORD color);
void grx_text(char *text, WORD x, WORD y, DWORD fg, DWORD bg);
void grx_circle(WORD x, WORD y, WORD r, DWORD col);
void grx_disc(WORD x, WORD y, WORD r, DWORD col);
void grx_clear(DWORD color);
 
#endif
/shark/tags/rel_0_4/include/drivers/vga.h
0,0 → 1,593
/* VGAlib version 1.2 - (c) 1993 Tommy Frandsen */
/* */
/* This library is free software; you can redistribute it and/or */
/* modify it without any restrictions. This library is distributed */
/* in the hope that it will be useful, but without any warranty. */
 
/* Extended for svgalib by Harm Hanemaayer and Hartmut Schirmer */
 
#ifndef VGA_H
#define VGA_H
 
#include <sys/types.h>
#include <sys/time.h>
#include <drivers/grxsvga/glib.h>
#include <kernel/log.h>
 
#ifdef __cplusplus
extern "C"
{
#endif
 
#define rgb15(r, g, b) ((((WORD)(r & 0xF8)>>3) << 10) | (((WORD)(g & 0xF8)>>3) << 5) | ((WORD)(b & 0xF8)>>3))
#define rgb16(r, g, b) ((((WORD)(r & 0xF8)>>3) << 11) | (((WORD)(g & 0xFC)>>2) << 5) | ((WORD)(b & 0xF8)>>3))
#define rgb24(r, g, b) (((DWORD)(r & 0xFF) << 16) | ((DWORD)(g & 0xFF) << 8) | (DWORD)(b & 0xFF))
#define rgb32(r, g, b) (((DWORD)(r & 0xFF) << 16) | ((DWORD)(g & 0xFF) << 8) | (DWORD)(b & 0xFF))
#define rgba(r, g, b) (((DWORD)(b & 0xFF) << 16) | ((DWORD)(g & 0xFF) << 8) | (DWORD)(r & 0xFF))
#define SVGALIB_VER 0x010900
 
#define TEXT 0 /* Compatible with VGAlib v1.2 */
#define G320x200x16 1
#define G640x200x16 2
#define G640x350x16 3
#define G640x480x16 4
#define G320x200x256 5
#define G320x240x256 6
#define G320x400x256 7
#define G360x480x256 8
#define G640x480x2 9
 
#define G640x480x256 10
#define G800x600x256 11
#define G1024x768x256 12
 
#define G1280x1024x256 13 /* Additional modes. */
 
#define G320x200x32K 14
#define G320x200x64K 15
#define G320x200x16M 16
#define G640x480x32K 17
#define G640x480x64K 18
#define G640x480x16M 19
#define G800x600x32K 20
#define G800x600x64K 21
#define G800x600x16M 22
#define G1024x768x32K 23
#define G1024x768x64K 24
#define G1024x768x16M 25
#define G1280x1024x32K 26
#define G1280x1024x64K 27
#define G1280x1024x16M 28
 
#define G800x600x16 29
#define G1024x768x16 30
#define G1280x1024x16 31
 
#define G720x348x2 32 /* Hercules emulation mode */
 
#define G320x200x16M32 33 /* 32-bit per pixel modes. */
#define G640x480x16M32 34
#define G800x600x16M32 35
#define G1024x768x16M32 36
#define G1280x1024x16M32 37
 
/* additional resolutions */
#define G1152x864x16 38
#define G1152x864x256 39
#define G1152x864x32K 40
#define G1152x864x64K 41
#define G1152x864x16M 42
#define G1152x864x16M32 43
 
#define G1600x1200x16 44
#define G1600x1200x256 45
#define G1600x1200x32K 46
#define G1600x1200x64K 47
#define G1600x1200x16M 48
#define G1600x1200x16M32 49
 
#define G320x240x256V 50
#define G320x240x32K 51
#define G320x240x64K 52
#define G320x240x16M 53
#define G320x240x16M32 54
 
#define G400x300x256 55
#define G400x300x32K 56
#define G400x300x64K 57
#define G400x300x16M 58
#define G400x300x16M32 59
 
#define G512x384x256 60
#define G512x384x32K 61
#define G512x384x64K 62
#define G512x384x16M 63
#define G512x384x16M32 64
 
#define G960x720x256 65
#define G960x720x32K 66
#define G960x720x64K 67
#define G960x720x16M 68
#define G960x720x16M32 69
 
#define G1920x1440x256 70
#define G1920x1440x32K 71
#define G1920x1440x64K 72
#define G1920x1440x16M 73
#define G1920x1440x16M32 74
 
/* The following modes have been introduced by SciTech Display Doctor */
 
#define G320x400x256V 75
#define G320x400x32K 76
#define G320x400x64K 77
#define G320x400x16M 78
#define G320x400x16M32 79
 
#define G640x400x256 80
#define G640x400x32K 81
#define G640x400x64K 82
#define G640x400x16M 83
#define G640x400x16M32 84
 
#define G320x480x256 85
#define G320x480x32K 86
#define G320x480x64K 87
#define G320x480x16M 88
#define G320x480x16M32 89
 
#define G720x540x256 90
#define G720x540x32K 91
#define G720x540x64K 92
#define G720x540x16M 93
#define G720x540x16M32 94
 
#define G848x480x256 95
#define G848x480x32K 96
#define G848x480x64K 97
#define G848x480x16M 98
#define G848x480x16M32 99
 
#define G1072x600x256 100
#define G1072x600x32K 101
#define G1072x600x64K 102
#define G1072x600x16M 103
#define G1072x600x16M32 104
 
#define G1280x720x256 105
#define G1280x720x32K 106
#define G1280x720x64K 107
#define G1280x720x16M 108
#define G1280x720x16M32 109
 
#define G1360x768x256 110
#define G1360x768x32K 111
#define G1360x768x64K 112
#define G1360x768x16M 113
#define G1360x768x16M32 114
 
#define G1800x1012x256 115
#define G1800x1012x32K 116
#define G1800x1012x64K 117
#define G1800x1012x16M 118
#define G1800x1012x16M32 119
 
#define G1920x1080x256 120
#define G1920x1080x32K 121
#define G1920x1080x64K 122
#define G1920x1080x16M 123
#define G1920x1080x16M32 124
 
#define G2048x1152x256 125
#define G2048x1152x32K 126
#define G2048x1152x64K 127
#define G2048x1152x16M 128
#define G2048x1152x16M32 129
 
#define G2048x1536x256 130
#define G2048x1536x32K 131
#define G2048x1536x64K 132
#define G2048x1536x16M 133
#define G2048x1536x16M32 134
 
#define G512x480x256 135
#define G512x480x32K 136
#define G512x480x64K 137
#define G512x480x16M 138
#define G512x480x16M32 139
 
#define G400x600x256 140
#define G400x600x32K 141
#define G400x600x64K 142
#define G400x600x16M 143
#define G400x600x16M32 144
 
#define G400x300x256X 145
 
#define G320x200x256V 146
 
#define __GLASTMODE G320x200x256V
#define GLASTMODE vga_lastmodenumber()
 
#define IS_IN_STANDARD_VGA_DRIVER(mode) ( \
((mode) < G640x480x256) || ((mode) == G720x348x2) || \
( ((mode) >= G400x300x256X) && ((mode) <= G400x300x256X) ) )
 
extern int vga_version;
extern int __svgalib_chipset;
 
extern int vga_setmode(int mode, int set_chipset);
extern int vga_hasmode(int mode);
extern int vga_setflipchar(int c);
 
extern int vga_clear(void);
extern int vga_flip(void);
 
extern int vga_getxdim(void);
extern int vga_getydim(void);
extern int vga_getcolors(void);
 
extern int vga_setpalette(int index, int red, int green, int blue);
extern int vga_getpalette(int index, int *red, int *green, int *blue);
extern int vga_setpalvec(int start, int num, int *pal);
extern int vga_getpalvec(int start, int num, int *pal);
 
extern int vga_screenoff(void);
extern int vga_screenon(void);
 
extern int vga_setcolor(int color);
extern int vga_drawpixel(int x, int y);
extern int vga_drawline(int x1, int y1, int x2, int y2);
extern int vga_drawscanline(int line, unsigned char *colors);
extern int vga_drawscansegment(unsigned char *colors, int x, int y, int length);
extern int vga_getpixel(int x, int y); /* Added. */
extern int vga_getscansegment(unsigned char *colors, int x, int y, int length);
 
extern int vga_getch(void);
 
extern int vga_dumpregs(void);
 
 
/* Extensions to VGAlib v1.2: */
 
/* blit flags */
#define HAVE_BITBLIT 1
#define HAVE_FILLBLIT 2
#define HAVE_IMAGEBLIT 4
#define HAVE_HLINELISTBLIT 8
#define HAVE_BLITWAIT 16
 
/* other flags */
#define HAVE_RWPAGE 1 /* vga_setreadpage() / vga_setwritepage() available */
#define IS_INTERLACED 2 /* mode is interlaced */
#define IS_MODEX 4 /* ModeX style 256 colors */
#define IS_DYNAMICMODE 8 /* Dynamic defined mode */
#define CAPABLE_LINEAR 16 /* Can go to linear addressing mode. */
#define IS_LINEAR 32 /* Linear addressing can be used. */
#define LINEAR_MODE 512 /* Linear mode is enabled */
#define EXT_INFO_AVAILABLE 64 /* Returned modeinfo contains valid extended fields */
#define RGB_MISORDERED 128 /* Mach32 32bpp uses 0BGR instead of BGR0. */
/* As of this version 1.25 also used to signal if real RGB
(red first in memory) is used instead of BGR (Mach32 DAC 4) */
#define HAVE_EXT_SET 256 /* vga_ext_set() available */
 
typedef struct {
int width;
int height;
int bytesperpixel;
int colors;
int linewidth; /* scanline width in bytes */
int maxlogicalwidth; /* maximum logical scanline width */
int startaddressrange; /* changeable bits set */
int maxpixels; /* video memory / bytesperpixel */
int haveblit; /* mask of blit functions available */
int flags; /* other flags */
 
/* Extended fields: */
 
int chiptype; /* Chiptype detected */
int memory; /* videomemory in KB */
int linewidth_unit; /* Use only a multiple of this as parameter for set_logicalwidth and
set_displaystart */
char *linear_aperture; /* points to mmap secondary mem aperture of card (NULL if unavailable) */
int aperture_size; /* size of aperture in KB if size>=videomemory. 0 if unavail */
void (*set_aperture_page) (int page);
/* if aperture_size<videomemory select a memory page */
void *extensions; /* points to copy of eeprom for mach32 */
/* depends from actual driver/chiptype.. etc. */
} vga_modeinfo;
 
typedef struct {
int version;
int size;
int chipset;
int physmem;
} vga_cardinfo;
 
extern vga_cardinfo *vga_getcardinfo(void);
extern vga_modeinfo *vga_getmodeinfo(int mode);
extern int vga_getdefaultmode(void);
extern int vga_getcurrentmode(void);
extern int vga_getcurrentchipset(void);
extern char *vga_getmodename(int mode);
extern int vga_getmodenumber(char *name);
extern int vga_lastmodenumber(void);
extern int vga_getoptmode(int x, int y, int colors, int bytesperpixel, int c);
 
extern unsigned char *graph_mem;
extern unsigned char *vga_getgraphmem(void);
 
extern void vga_setpage(int p);
extern void vga_setreadpage(int p);
extern void vga_setwritepage(int p);
extern void vga_setlogicalwidth(int w);
extern void vga_setdisplaystart(int a);
extern void vga_waitretrace(void);
extern int vga_claimvideomemory(int n);
extern void vga_disabledriverreport(void);
extern int vga_setmodeX(void);
extern int vga_init(void); /* Used to return void in svgalib <= 1.12. */
extern int vga_initf(int);
extern int vga_getmousetype(void);
extern int vga_getmonitortype(void);
extern void vga_setmousesupport(int s);
extern void vga_lockvc(void);
extern void vga_unlockvc(void);
extern int vga_getkey(void);
extern int vga_oktowrite(void);
extern void vga_copytoplanar256(unsigned char *virtualp, int pitch,
int voffset, int vpitch, int w, int h);
extern void vga_copytoplanar16(unsigned char *virtualp, int pitch,
int voffset, int vpitch, int w, int h);
extern void vga_copytoplane(unsigned char *virtualp, int pitch,
int voffset, int vpitch, int w, int h, int plane);
extern int vga_setlinearaddressing(void);
extern void vga_safety_fork(void (*shutdown_routine) (void));
 
extern int vga_simple_init(void);
extern void vga_chipset_saveregs(unsigned char *);
extern void vga_chipset_setregs(unsigned char *);
 
#ifdef EGA /* Kernel headers may define this. */
#undef EGA
#endif
 
#define UNDEFINED 0
#define VGA 1
#define ET4000 2
#define CIRRUS 3
#define TVGA8900 4
#define OAK 5
#define EGA 6
#define S3 7
#define ET3000 8
#define MACH32 9
#define GVGA6400 10
#define ARK 11
#define ATI 12
#define ALI 13
#define MACH64 14
#define CHIPS 15
#define APM 16
#define NV3 17
#define ET6000 18
#define VESA 19
#define MX 20
#define PARADISE 21
#define RAGE 22
#define BANSHEE 23
#define SIS 24
#define I740 25
#define NEOMAGIC 26
#define LAGUNA 27
#define FBDEV 28
#define G400 29
#define R128 30
#define SAVAGE 31
#define MILLENNIUM 32
#define I810 33
#define TRIDENT 34
#define RENDITION 35
#define G450C2 36
#define PM2 37
/* Hor. sync: */
#define MON640_60 0 /* 31.5 KHz (standard VGA) */
#define MON800_56 1 /* 35.1 KHz (old SVGA) */
#define MON1024_43I 2 /* 35.5 KHz (low-end SVGA, 8514) */
#define MON800_60 3 /* 37.9 KHz (SVGA) */
#define MON1024_60 4 /* 48.3 KHz (SVGA non-interlaced) */
#define MON1024_70 5 /* 56.0 KHz (SVGA high frequency) */
#define MON1024_72 6
 
extern void vga_setchipset(int c);
extern void vga_setchipsetandfeatures(int c, int par1, int par2);
extern void vga_gettextfont(void *font);
extern void vga_puttextfont(void *font);
extern void vga_settextmoderegs(void *regs);
extern void vga_gettextmoderegs(void *regs);
 
extern int vga_white(void);
extern int vga_setegacolor(int c);
extern int vga_setrgbcolor(int r, int g, int b);
 
extern void vga_bitblt(int srcaddr, int destaddr, int w, int h, int pitch);
extern void vga_imageblt(void *srcaddr, int destaddr, int w, int h, int pitch);
extern void vga_fillblt(int destaddr, int w, int h, int pitch, int c);
extern void vga_hlinelistblt(int ymin, int n, int *xmin, int *xmax, int pitch, int c);
extern void vga_blitwait(void);
extern int vga_ext_set(unsigned what,...);
extern int vga_accel(unsigned operation,...);
 
extern int vga_initcursor(int);
extern void vga_showcursor(int);
extern void vga_setcursorposition(int, int);
extern void vga_selectcursor(int);
extern void vga_setcursorimage(int, int, int, int, unsigned char *);
 
inline void copy_videomem_32to16(void *src, void *dst, unsigned long int memdiv2);
inline void copy_videomem_16to16(void *src, void *dst, unsigned long int memdiv4);
 
extern int vga_setcrtcregs(unsigned char *);
extern int vga_getcrtcregs(unsigned char *);
 
extern int vga_addtiming(int pixelClock,
int HDisplay,
int HSyncStart,
int HSyncEnd,
int HTotal,
int VDisplay,
int VSyncStart,
int VSyncEnd,
int VTotal,
int flags);
 
extern int vga_changetiming(int pixelClock,
int HDisplay,
int HSyncStart,
int HSyncEnd,
int HTotal,
int VDisplay,
int VSyncStart,
int VSyncEnd,
int VTotal,
int flags);
 
extern int vga_getcurrenttiming(int *pixelClock,
int *HDisplay,
int *HSyncStart,
int *HSyncEnd,
int *HTotal,
int *VDisplay,
int *VSyncStart,
int *VSyncEnd,
int *VTotal,
int *flags);
 
extern int vga_addmode(int xdim, int ydim, int cols,
int xbytes, int bytespp);
 
extern int vga_guesstiming(int x, int y, int clue, int arg);
 
extern void vga_dpms(int mode);
 
/* Valid values for what in vga_ext_set: */
#define VGA_EXT_AVAILABLE 0 /* supported flags */
#define VGA_EXT_SET 1 /* set flag(s) */
#define VGA_EXT_CLEAR 2 /* clear flag(s) */
#define VGA_EXT_RESET 3 /* set/clear flag(s) */
#define VGA_EXT_PAGE_OFFSET 4 /* set an offset for all subsequent vga_set*page() calls */
/* Like: vga_ext_set(VGA_EXT_PAGE_OFFSET, 42); */
/* returns the previous offset value. */
#define VGA_EXT_FONT_SIZE 5 /* the (maximal) size of the font buffer */
 
/* Valid params for VGA_EXT_AVAILABLE: */
#define VGA_AVAIL_SET 0 /* vga_ext_set sub funcs */
#define VGA_AVAIL_ACCEL 1 /* vga_accel sub funcs */
#define VGA_AVAIL_FLAGS 2 /* known flags for VGA_EXT_SET */
#define VGA_AVAIL_ROP 3 /* vga_accel ROP sub funcs */
#define VGA_AVAIL_TRANSPARENCY 4 /* vga_accel TRANSPARENCY sub funcs */
#define VGA_AVAIL_ROPMODES 5 /* vga_accel ROP modes supported funcs */
#define VGA_AVAIL_TRANSMODES 6 /* vga_accel TRANSPARENCY modes supported */
 
/* Known flags to vga_ext_set() */
#define VGA_CLUT8 1 /* 8 bit DAC entries */
 
/* Acceleration interface. */
 
/* Accel operations. */
#define ACCEL_FILLBOX 1 /* Simple solid fill. */
#define ACCEL_SCREENCOPY 2 /* Simple screen-to-screen BLT. */
#define ACCEL_PUTIMAGE 3 /* Straight image transfer. */
#define ACCEL_DRAWLINE 4 /* General line draw. */
#define ACCEL_SETFGCOLOR 5 /* Set foreground color. */
#define ACCEL_SETBGCOLOR 6 /* Set background color. */
#define ACCEL_SETTRANSPARENCY 7 /* Set transparency mode. */
#define ACCEL_SETRASTEROP 8 /* Set raster-operation. */
#define ACCEL_PUTBITMAP 9 /* Color-expand bitmap. */
#define ACCEL_SCREENCOPYBITMAP 10 /* Color-expand from screen. */
#define ACCEL_DRAWHLINELIST 11 /* Draw horizontal spans. */
#define ACCEL_SETMODE 12 /* Set blit strategy. */
#define ACCEL_SYNC 13 /* Wait for blits to finish. */
#define ACCEL_SETOFFSET 14 /* Set screen offset */
#define ACCEL_SCREENCOPYMONO 15 /* Monochrome screen-to-screen BLT. */
#define ACCEL_POLYLINE 16 /* Draw multiple lines. */
#define ACCEL_POLYHLINE 17 /* Draw multiple horizontal spans. */
#define ACCEL_POLYFILLMODE 18 /* Set polygon mode. */
 
/* Corresponding bitmask. */
#define ACCELFLAG_FILLBOX 0x1 /* Simple solid fill. */
#define ACCELFLAG_SCREENCOPY 0x2 /* Simple screen-to-screen BLT. */
#define ACCELFLAG_PUTIMAGE 0x4 /* Straight image transfer. */
#define ACCELFLAG_DRAWLINE 0x8 /* General line draw. */
#define ACCELFLAG_SETFGCOLOR 0x10 /* Set foreground color. */
#define ACCELFLAG_SETBGCOLOR 0x20 /* Set background color. */
#define ACCELFLAG_SETTRANSPARENCY 0x40 /* Set transparency mode. */
#define ACCELFLAG_SETRASTEROP 0x80 /* Set raster-operation. */
#define ACCELFLAG_PUTBITMAP 0x100 /* Color-expand bitmap. */
#define ACCELFLAG_SCREENCOPYBITMAP 0x200 /* Color-exand from screen. */
#define ACCELFLAG_DRAWHLINELIST 0x400 /* Draw horizontal spans. */
#define ACCELFLAG_SETMODE 0x800 /* Set blit strategy. */
#define ACCELFLAG_SYNC 0x1000 /* Wait for blits to finish. */
#define ACCELFLAG_SETOFFSET 0x2000 /* Set screen offset */
#define ACCELFLAG_SCREENCOPYMONO 0x4000 /* Monochrome screen-to-screen BLT. */
#define ACCELFLAG_POLYLINE 0x8000 /* Draw multiple lines. */
#define ACCELFLAG_POLYHLINE 0x10000 /* Draw multiple horizontal spans. */
#define ACCELFLAG_POLYFILLMODE 0x20000 /* Set polygon mode. */
 
/* Mode for SetTransparency. */
#define DISABLE_TRANSPARENCY_COLOR 0
#define ENABLE_TRANSPARENCY_COLOR 1
#define DISABLE_BITMAP_TRANSPARENCY 2
#define ENABLE_BITMAP_TRANSPARENCY 3
 
/* Flags for SetMode (accelerator interface). */
#define BLITS_SYNC 0
#define BLITS_IN_BACKGROUND 0x1
 
/* Raster ops. */
#define ROP_COPY 0 /* Straight copy. */
#define ROP_OR 1 /* Source OR destination. */
#define ROP_AND 2 /* Source AND destination. */
#define ROP_XOR 3 /* Source XOR destination. */
#define ROP_INVERT 4 /* Invert destination. */
 
/* For the poly funcs */
#define ACCEL_START 1
#define ACCEL_END 2
 
/*
* wait for keypress, mousemove, I/O, timeout. cf. select (3) for details on
* all parameters execept which.
* NULL is a valid argument for any of the ptrs.
*/
 
// extern int vga_waitevent(int which, fd_set * in, fd_set * out, fd_set * except, //SHARK
// struct timeval *timeout); //SHARK
 
/*
* valid values for what ( | is valid to combine them )
*/
#define VGA_MOUSEEVENT 1
#define VGA_KEYEVENT 2
 
/*
* return value >= has bits set for mouse/keyboard events detected.
* mouse and raw keyboard events are already handled and their bits removed
* from *in when vga_waitevent returns.
* VGA_KEYEVENT relates to vga_getch NOT vga_getkey.
* return values < 0 signal errors. In this case check errno.
*/
 
/* Background running */
extern void vga_runinbackground(int stat, ...);
#define VGA_GOTOBACK -1
#define VGA_COMEFROMBACK -2
extern int vga_runinbackground_version(void);
 
#ifdef __cplusplus
}
 
#endif
#endif /* VGA_H */
/shark/tags/rel_0_4/include/drivers/pclab.h
0,0 → 1,13
/*--------------------------------------------------------------*/
/* File header da includere nel main quando si usano */
/* le funzioni di aquisizione contenute in PCLAB.C */
/*--------------------------------------------------------------*/
 
 
 
float ad_conv(int ); /* conversione A/D */
int da_conv(float, int ); /* conversione D/A */
int par_in(void); /* ingresso digitale */
void par_out(int n); /* uscita digitale */
 
/*--------------------------------------------------------------*/
/shark/tags/rel_0_4/include/drivers/comp.h
20,11 → 20,11
 
/**
------------
CVS : $Id: comp.h,v 1.1.1.1 2002-03-29 14:12:51 pj Exp $
CVS : $Id: comp.h,v 1.2 2003-02-28 12:05:44 pj Exp $
 
File: $File$
Revision: $Revision: 1.1.1.1 $
Last update: $Date: 2002-03-29 14:12:51 $
Revision: $Revision: 1.2 $
Last update: $Date: 2003-02-28 12:05:44 $
------------
**/
 
81,7 → 81,7
select a memory page */
void *extensions; /* points to copy of eeprom for mach32 */
/* depends from actual driver/chiptype.. etc. */
} vga_modeinfo;
} grx_vga_modeinfo;
 
#ifdef __cplusplus
}