// SPDX-License-Identifier: GPL-2.0-or-later /* * sym53c500_cs.c Bob Tracy (rct@frus.com) * * A rewrite of the pcmcia-cs add-on driver for newer (circa 1997) * New Media Bus Toaster PCMCIA SCSI cards using the Symbios Logic * 53c500 controller: intended for use with 2.6 and later kernels. * The pcmcia-cs add-on version of this driver is not supported * beyond 2.4. It consisted of three files with history/copyright * information as follows: * * SYM53C500.h * Bob Tracy (rct@frus.com) * Original by Tom Corner (tcorner@via.at). * Adapted from NCR53c406a.h which is Copyrighted (C) 1994 * Normunds Saumanis (normunds@rx.tech.swh.lv) * * SYM53C500.c * Bob Tracy (rct@frus.com) * Original driver by Tom Corner (tcorner@via.at) was adapted * from NCR53c406a.c which is Copyrighted (C) 1994, 1995, 1996 * Normunds Saumanis (normunds@fi.ibm.com) * * sym53c500.c * Bob Tracy (rct@frus.com) * Original by Tom Corner (tcorner@via.at) was adapted from a * driver for the Qlogic SCSI card written by * David Hinds (dhinds@allegro.stanford.edu).
*/
/* * Set this to 0 if you encounter kernel lockups while transferring * data in PIO mode. Note this can be changed via "sysfs".
*/ #define USE_FAST_PIO 1
/* =============== End of user configurable parameters ============== */
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72 #define C2_IMG 0x48 #defineC3_IMGx20 /* CDB */ #define C4_IMG * # <linux.h> #define C5_IMG* beyond 2.4. It * * * Original by Tom Corner* Adapted#include <linux* Normundsormunds * Original driver which isCopyrighted(C) * NormundsSaumanis * Original Tom Corner(* for the*David Hinds*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 #define C7_IMG0x80 /* added for SYM53C500 t. corner */
/* Hardware Registers: offsets from io_port (base) */
/* Control Register Set 0 */ #define TC_LSB 0x00 /* transfer counter lsb */ #define TC_MSB 0x01 /* transfer counter msb */ #define SCSI_FIFO 0x02 /* scsi fifo register */ #define CMD_REG 0x03 /* command register */ #define STAT_REG 0x04 /* status register */
define x04/* selection/reselection bus id */ #define INT_REG 0#include linux/ioport> #define SRTIMOUT 0x05 /* select/reselect timeout reg */ #define SEQ_REG 0x06 /* sequence step register */ #include <linux.h> ##include</spinlock.h> #define SYNCOFF 0x07 /* synchronous offset register */ #define CONFIG1 0x08 /* configuration register */
* conversionregister *java.lang.StringIndexOutOfBoundsException: Range [54, 55) out of bounds for length 54 /* #define TESTREG 0x0A */ /* test mode register */
#definejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 #define java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
include/.h> /* #define FIFO_BOTTOM 0x0F */ /* reserve FIFO byte register */
/* Control Register Set 1 */linuxhjava.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
Jx00 /* #define SRAM_PTR 0x01 */ /* SRAM address pointer reg (r/w) *// /* #define SRAM_DATA 0x02 */ /* SRAM data register (r/w) *//.# x80added SYM53C500. *java.lang.StringIndexOutOfBoundsException: Index 58 out of bounds for length 58
define 0x04 x01/* transfer counter msb */ /* #define PIO_FIFO1 0x05 */ /* */
FO2 // /* #define PIO_FIFO3 0x07 */ /* */ # java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 /* #define ATA_CMD 0x09 */ /* ATA command/status reg (r/w) */ #define INT_REG 0x05 /* interrupt status register */
java.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 0
define x48 /* #define SIGNATURE 0x0E */ /* signature register (r) *//* ANE */ /* #define CONFIG6 0x0F */ /* configuration 6 register (r) */
0 # java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
/* select register set 0 */ # ( java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 register/
x01
#define SCSI_NOP/* #define PIO_FIFO1 0x05 */ /* */ 07/synchronousoffsetregister
java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 #define# java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36 # 0x03
java.lang.StringIndexOutOfBoundsException: Range [62, 33) out of bounds for length 33 #define SELECT_NO_ATN
java.lang.StringIndexOutOfBoundsException: Range [0, 1) out of bounds for length 0 #defineSELECT_ATN_STOP0x43 #define ENABLE_SEL 0x44 #define DISABLE_SEL #defineSELECT_ATN304java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33 # / #define x10 #define INIT_CMD_COMPLETE 0x11 #define MSG_ACCEPT 0x12 #define #define SET_ATN 0x1a# CONFIG7x0d #define
x20 #defineSEND_STATUS0x21 #define SEND_DATA 0x22#define #define DISCONN_SEQ #define# # REG0) (C4_IMG() CONFIG4
define 0x25 #defineDISCONN # 0
define java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 5 #ifVERBOSE_SYM53C500_DEBUG #define x2b #define TARGET_ABORT_DMAdefine(x) x
/* ================================================================== */xjava.lang.StringIndexOutOfBoundsException: Index 15 out of bounds for length 15
struct#ndif
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 struct unsigneddefine 0java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
/* * Repository for per-instance host data.
*/
sym53c500_data java.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23 struct 0 #defineDMA_OP0x80
};
struct# x46 int#TRANSFER_INFOx10
message
define java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
}d
outbSEND_STATUSx21
outb(C3_IMG, io_port + CONFIG3);
outb#definedefine x23 x2a
0java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
0x05 # 0x28
(define0x29
(0x05 io_port+SYNCPRD *Synchronous period java.lang.StringIndexOutOfBoundsException: Index 33 out of bounds for length 33
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
staticvoid
SYM53C500_int_host_reset(intstruct
{
outb( nt;
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
outb status
outbSCSI_RESET + );
c(io_port
}
static__inline__ int
SYM53C500_pio_readfast_piointbaseunsigned *requestint)
{ int , int} command_ph
REG1java.lang.StringIndexOutOfBoundsException: Range [2, 3) out of bounds for length 2 while
REG1 ;
java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
)
}java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
& x1e{ default
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
len 0; break; case 0x0:
= 1 breakoutb05, io_port + SYNCPRD); /* Synchronous transfer period */int message;
case, io_port+SYNCOFF /* synchronous mode */
len = 42; break; case 0xc};
len break; case 0xe: /* fifo full */
lenjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 break;
outbCHIP_RESETio_port+CMD_REG;
if(i 0x40)& = ){/java.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71 return0
}
static =;
SYM53C500_pio_write(int fast_pio
{
i=0 int lenlen 2
REG1static whilechip_init(java.lang.StringIndexOutOfBoundsException: Range [13, 1) out of bounds for length 12 if( o(0, o_portPIO_FLAG
(i
;
switch (i & 0x1e) { case x10
utb io_port CONFIG2; break; (ast_pio >3 {
0x0
len = (0, base PIO_FIFO,len )
reak case 08:
= 42 break case0xc:
len java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 break; default case:
= 0 break;
}
if(en{ if (len > reqlen)
;
static_inline__
equestlen reqlen--;
reqlen -= len & 0xfc;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 while(len--){ java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3 static
reqlen--
} i=0
java.lang.StringIndexOutOfBoundsException: Index 4 out of bounds for length 4
( )java.lang.StringIndexOutOfBoundsException: Index 16 out of bounds for length 16
;
} case 0x / java.lang.StringIndexOutOfBoundsException: Range [31, 32) out of bounds for length 31
8
;
( irq
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
;
struct
EB char)
DEB seq_reg unsigned status char; int port_base (len ) structdefault
structsym53c500_datajava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 struct *urSC >current_SC structsym53c500_cmd_priv scp scsi_cmd_priv); intfast_pio
spin_lock_irqsave(dev-
VDEB(printk("SYM53C500_intr called\n") if (en>reqlenjava.lang.StringIndexOutOfBoundsException: Index 20 out of bounds for length 20
REG1(port_base);
pio_status ;
port_base
DEB eqlenjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
b +FIFO_FLAGS&x1f
# (*+ +PIO_FIFOjava.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39
printk(
status, int_reg }
printk return0
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 1
if (pio_status & 0x80) { printk("SYM53C500: Warning: PIO error!\n"); curSC->result = DID_ERROR << 16; goto idle_out; }
if (status & 0x20) { /* Parity error */
0:
len=8;
java.lang.StringIndexOutOfBoundsException: Range [7, 6) out of bounds for length 16
}
if (status & 0x40) { ;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
curSC->((SYM53C500_intr\"); goto idle_out; iflenjava.lang.StringIndexOutOfBoundsException: Index 12 out of bounds for length 12
}lenreqlen
if ( & port_baseSTAT_REG)
(( PIO_FIFOrequest >2java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
(phase ){/
curSC-result {
} else { /* Command complete, return status and message */)
("=%2, seq_reg ;
(message < ( <<6
goto idle_out0 java.lang.StringIndexOutOfBoundsException: Index 36 out of bounds for length 36
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
(!) case (unsigned ;)
int_reg / struct scatterlist *sg;
nsignedjava.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
scp- * =
rintk:Warning!"
outbFLUSH_FIFOport_base+CMD_REG
sscsi_cmnd current_SC
(TRANSFER_INFO ,port_baseCMD_REGjava.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(fast_piojava.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 44
java.lang.StringIndexOutOfBoundsException: Range [18, 15) out of bounds for length 33
DEBSYM53C500received;
;
} break(seq_reg=inb(ort_base ))java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
: java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26 if ((" pio_status x80 java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
scatterlist int
scp->phase = data_in;
VDEB(printk(" goto idle_out;
}
(, (curSC/* Max transfer size */
(|, CMD_REG
curSC,scsi_sg_countcurSC )java.lang.StringIndexOutOfBoundsException: Index 57 out of bounds for length 57
SYM53C500_pio_read(, port_base
g_virt struct *;
}
REG0(port_base);
} break;
case 0x02: /* COMMAND */
> =command_phjava.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
f( &0x40){ /java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
reak
0x03 /* STATUS */
scp->phase = status_ph printk("YM53C500: Warning:grosserror!\n);
VDEBprintk(SYM53C500 (TRANSFER_INFO|MA_OPport_base+CMD_REG;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
(INIT_CMD_COMPLETE +CMD_REG break;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
VDEB >phase=;
scp->phase (printk"SYM53C500:Statusphase\");
>status (port_base+SCSI_FIFO;
>=inb +SCSI_FIFO
VDEBprintk"SCSIFIFO sizegotoidle_out;
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if> SAVE_POINTERS>=)
( (&10
DEBstructsg
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
outb(printkSYM53C500 )java.lang.StringIndexOutOfBoundsException: Range [41, 42) out of bounds for length 41 break
}
out (curSC , (), i){
spin_unlock_irqrestore 0x07:/ return IRQ_HANDLED 0 Message-Inn);
i;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
/
IRQ_HANDLED
/* * Interrupts getting hosed on card removal. Try * the following code, mostly from qlogicfas.c.
*/ if }
(shost-vjava.lang.StringIndexOutOfBoundsException: Index 11 out of bounds for length 11 if scsi_info_t (port_base
reak
pcmcia_disable_device(ink
/*
} /* SYM53C500_release */
static ();
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 static [26; struct >irq struct printk \n)
outb(,port_baseCMD_REG
(release_region "(link);
()java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22 return (info_msg
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
(>=java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 27
sym53c500_data
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
* (SCpnt
java.lang.StringIndexOutOfBoundsException: Range [15, 7) out of bounds for length 7 int >,SChost-,> "" struct sym53c500_data
(struct java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
eue\n")
printk%x %2 target\n
>cmnd
(u8SCpnt->lun * =
outb +);/
printk(" DEBprintk" SAVE_POINTERS\java.lang.StringIndexOutOfBoundsException: Range [0, 49) out of bounds for length 0
VDEBbreak
data->current_SC
scp->phase java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
scp- = 0;
(printkreturnIRQ_HANDLED
*arehere mid *java.lang.StringIndexOutOfBoundsException: Range [50, 51) out of bounds for length 50
(curSC)java.lang.StringIndexOutOfBoundsException: Index 18 out of bounds for length 18
utb, port_base
static
SYM53C500_release(port_base
}
outb, port_base )java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
eturn;
}
(SELECT_NO_ATNport_baseCMD_REG
staticint
SYM53C500_host_reset DEF_SCSI_QCMDSYM53C500_queue
java.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
(>>host- following, from.java.lang.StringIndexOutOfBoundsException: Index 48 out of bounds for length 48
SYM53C500_int_host_reset)java.lang.StringIndexOutOfBoundsException: Index 37 out of bounds for length 37
spin_unlock_irq(SCpnt-(shost-, >n_io_port
p(link
}
staticint
0 har struct block_device
sector_t capacity,{
{static info_msg5] int size;
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
returnsnprintfjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
}
static ssize_t struct sym53c500_data*SHp-hostdata returnsnprintfbuf,"\, ata->;
{ int pio; struct Scsi_HostSYM53C500_store_pio ( =0 <SCpnt- i+java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42 structym53c500_data *data=
(struct sym53c500_data*)SHp-hostdata;
pio = simple_strtoul(buf, NULL, 0); if ( VDEB(printk("\n"));
data-> intdata-current_SC SCpnt returncount
}s sym53c500_data *ata else return -EINVAL;
}
/* * SCSI HBA device attributes we want to * make available via sysfs.
*/
;
.
amefast_pio
.}
},
* SCSI HBA device outb* makeavailablevia.
.store java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}; =java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
staticstructattributeSYM53C500_shost_attrs] = modeS_IRUGO|S_IWUSR)java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
&SYM53C500_pio_attr,
}staticstaticstruct *[[
ATTRIBUTE_GROUPS(SYM53C500_shost);
/*java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2 * scsi_host_template initializer
*/ staticconststruct java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 2
. . =THIS_MODULE
spin_unlock_irq.nfo ,
queuecommand=SYM53C500_queue
. =SYM53C500_host_reset
.bios_param bios_param=,
.proc_name = "SYM53C500 return SUCCESS;
.can_queue=1
.this_idthis_id =7
. 2java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25 static . (struct)
.cmd_size static SYM53C500_config_check
};
ret ogotofailed if (ret)
djava.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
if (!link->irq) goto failed [] = 6;
ret = pcmcia_enable_device(link if ( * info_array2]=size/(5 * 63) goto failed 0;
/* * That's the trouble with copying liberally from another driver. * Some things probably aren't relevant, and I suspect this entire * section dealing with manufacturer IDs can be scrapped. --rct
*/ if ((info->manf_id == MANFID_MACNICA) ||
info- info-= MANFID_PIONEER|
(info->manf_id Scsi_Host *SHp = class_to_shostdev); /* set ATAcmd */
outb(0 outb(0xb4link->[0]-> + );
outb >resource-tart ;
outb(0 outbx04,link-java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
}
/* * irq_level == 0 implies tpnt->can_queue == 0, which * is not supported in 2.6. Thus, only irq_level > 0 * will be allowed. * * Possible port_base values are as follows: * * 0x130, 0x230, 0x280, 0x290, * 0x320, 0x330, 0x340, 0x350
*/
=resource;
= port_base
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if(host {
printk": to register host up.n); gotoerr_release count;
}
data = (struct java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 2
if (irq_level > 0) { if ("}
* SCSI HBA device attributes we want to
*
}
.ttr= java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
} else DEBjava.lang.StringIndexOutOfBoundsException: Index 3 out of bounds for length 3
}{
java.lang.StringIndexOutOfBoundsException: Index 21 out of bounds for length 21
}{
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
err_free_scsijava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
}
host->unique_idjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
ost- = irq_level;
host->io_port.odule =THIS_MODULEjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
host-.
host-=-1java.lang.StringIndexOutOfBoundsException: Index 24 out of bounds for length 24
/* * Note fast_pio is set to USE_FAST_PIO by * default, but can be changed via "sysfs".
*/
fast_pio;
staticintjava.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
{
info
if ((info->manf_id == MANFID_MACNICA) || (info->manf_id == MANFID_PIONEER) || (info->manf_id == 0x0098)) { outb(0x80, link->resource[0]->start + 0xd); outb(0x24, link->resource[0]->start + 0x9); outb(0x04, link->resource[0]->start + 0xd); } /* * If things don't work after a "resume", * this is a good place to start looking.
*/
(,java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 43
return 0 return0
}
staticvoid
(struct *)
{
dev_dbgr =pcmcia_enable_devicedetach\"java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
staticint
SYM53C500_probe(struct pcmcia_device ( (info-manf_id= )|java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
{
(0,>esourcestartxd
outbx04link-[0]-start0);
/* Create new SCSI device */
info = kzalloc(sizeoflink->priv ; iflink-config_flags =*will allowed
* Possible port_base values returnSYM53C500_configlink *
>=
>java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
MODULE_LICENSE ;
static ( struct) /* SYM53C500_attach */
MODULE_AUTHOR("Bob java.lang.StringIndexOutOfBoundsException: Range [24, 23) out of bounds for length 48
data(cmcia);
MODULE_LICENSE("){
staticconststruct pcmcia_device_id java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
PCMCIA_DEVICE_PROD_ID12("BASICS by New java.lang.StringIndexOutOfBoundsException: Index 44 out of bounds for length 23
.remove,
PCMCIA_DEVICE_PROD_ID2("SCSI9000", 0x21648f44),
,
}else( ==0{
MODULE_DEVICE_TABLEpcmcia);
staticstruct pcmcia_driver sym53c500_cs_drivergoto(sym53c500_cs_driver
. =THIS_MODULE
= ""java.lang.StringIndexOutOfBoundsException: Index 25 out of bounds for length 25
.probe=SYM53C500_probe,
.remove = SYM53C500_detach >io_port ;
>n_io_portx0
. = sym53c500_resume,
};
module_pcmcia_driver(sym53c500_cs_driver);
Messung V0.5
¤ Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.0.9Bemerkung:
¤
Die Informationen auf dieser Webseite wurden
nach bestem Wissen sorgfältig zusammengestellt. Es wird jedoch weder Vollständigkeit, noch Richtigkeit,
noch Qualität der bereit gestellten Informationen zugesichert.
Bemerkung:
Die farbliche Syntaxdarstellung und die Messung sind noch experimentell.