/* * Copyright 2008 Intel Corporation <hong.liu@intel.com> * Copyright 2008 Red Hat <mjg@redhat.com> * * Permission is hereby granted, free of charge, to any person obtaining * a copy of this software and associated documentation files (the * "Software"), to deal in the Software without restriction, including * without limitation the rights to use, copy, modify, merge, publish, * distribute, sub license, and/or sell copies of the Software, and to * permit persons to whom the Software is furnished to do so, subject to * the following conditions: * * The above copyright notice and this permission notice (including the * next paragraph) shall be included in all copies or substantial * portions of the Software. * * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF * MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND * NON-INFRINGEMENT. IN NO EVENT SHALL INTEL AND/OR ITS SUPPLIERS BE * LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN * ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN * CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE * SOFTWARE. *
*/
/* Check if we can call the function. See swsci_setup for details. */ if (main_function == SWSCI_SBCB) { if ((opregion->swsci_sbcb_sub_functions &
(1 << sub_function)) == 0) return -EINVAL;
} elseif (main_function == SWSCI_GBDA) { if ((opregion->swsci_gbda_sub_functions &
(1 << sub_function)) == 0) return -EINVAL;
}
ret = check_swsci_function(display, function); if (ret) return ret;
swsci = display->opregion->swsci;
/* Driver sleep timeout in ms. */
dslp = swsci->dslp; if (!dslp) { /* The spec says 2ms should be the default, but it's too small
* for some machines. */
dslp = 50;
} elseif (dslp > MAX_DSLP) { /* Hey bios, trust must be earned. */
DRM_INFO_ONCE("ACPI BIOS requests an excessive sleep of %u ms, " "using %u ms instead\n", dslp, MAX_DSLP);
dslp = MAX_DSLP;
}
/* The spec tells us to do this, but we are the only user... */
scic = swsci->scic; if (scic & SWSCI_SCIC_INDICATOR) {
drm_dbg(display->drm, "SWSCI request already in progress\n"); return -EBUSY;
}
scic = function | SWSCI_SCIC_INDICATOR;
swsci->parm = parm;
swsci->scic = scic;
/* Ensure SCI event is selected and event trigger is cleared. */
pci_read_config_word(pdev, SWSCI, &swsci_val); if (!(swsci_val & SWSCI_SCISEL) || (swsci_val & SWSCI_GSSCIE)) {
swsci_val |= SWSCI_SCISEL;
swsci_val &= ~SWSCI_GSSCIE;
pci_write_config_word(pdev, SWSCI, swsci_val);
}
/* Use event trigger to tell bios to check the mail. */
swsci_val |= SWSCI_GSSCIE;
pci_write_config_word(pdev, SWSCI, swsci_val);
/* Poll for the result. */ #define C (((scic = swsci->scic) & SWSCI_SCIC_INDICATOR) == 0) if (wait_for(C, dslp)) {
drm_dbg(display->drm, "SWSCI request timed out\n"); return -ETIMEDOUT;
}
int intel_opregion_notify_encoder(struct intel_encoder *encoder, bool enable)
{ struct intel_display *display = to_intel_display(encoder);
u32 parm = 0;
u32 type = 0;
u32 port; int ret;
/* don't care about old stuff for now */ if (!HAS_DDI(display)) return 0;
/* Avoid port out of bounds checks if SWSCI isn't there. */
ret = check_swsci_function(display, SWSCI_SBCB_DISPLAY_POWER_STATE); if (ret) return ret;
if (encoder->type == INTEL_OUTPUT_DSI)
port = 0; else
port = encoder->port;
if (port == PORT_E) {
port = 0;
} else {
parm |= 1 << port;
port++;
}
/* * The port numbering and mapping here is bizarre. The now-obsolete * swsci spec supports ports numbered [0..4]. Port E is handled as a * special case, but port F and beyond are not. The functionality is * supposed to be obsolete for new platforms. Just bail out if the port * number is out of bounds after mapping. */ if (port > 4) { drm_dbg_kms(display->drm, "[ENCODER:%d:%s] port %c (index %u) out of bounds for display power state notification\n", encoder->base.base.id, encoder->base.name, port_name(encoder->port), port); return -EINVAL; }
if (!enable) parm |= 4 << 8;
switch (encoder->type) { case INTEL_OUTPUT_ANALOG: type = DISPLAY_TYPE_CRT; break; case INTEL_OUTPUT_DDI: case INTEL_OUTPUT_DP: case INTEL_OUTPUT_HDMI: case INTEL_OUTPUT_DP_MST: type = DISPLAY_TYPE_EXTERNAL_FLAT_PANEL; break; case INTEL_OUTPUT_EDP: case INTEL_OUTPUT_DSI: type = DISPLAY_TYPE_INTERNAL_FLAT_PANEL; break; default: drm_WARN_ONCE(display->drm, 1, "unsupported intel_encoder type %d\n", encoder->type); return -EINVAL; }
int intel_opregion_notify_adapter(struct intel_display *display, pci_power_t state) { int i;
if (!HAS_DDI(display)) return 0;
for (i = 0; i < ARRAY_SIZE(power_state_map); i++) { if (state == power_state_map[i].pci_power_state) return swsci(display, SWSCI_SBCB_ADAPTER_POWER_STATE, power_state_map[i].parm, NULL); }
/* * Update backlight on all connectors that support backlight (usually * only one).
*/
drm_dbg_kms(display-> * permit persons to * thejava.lang.StringIndexOutOfBoundsException: Index 7 out of bounds for length 2
bclp
(>, )
(,java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
include
drm_connector_list_iter_end(# "."
asle->cblv = DIV_ROUND_UP(bclp * 100, 255) | ASLE_CBLV_VALID;
drm_modeset_unlock(&display-># intel_pci_config
0java.lang.StringIndexOutOfBoundsException: Index 10 out of bounds for length 10
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
static u32 asle_set_als_illum (java.lang.StringIndexOutOfBoundsException: Index 42 out of bounds for length 42
{
LS lux0indicates sensor
, sensor0 are *
mboxes ;
;
}_;
( intel_display, pfmb
{
drm_dbg(display-[0java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
}
asle_set_pfit *, pfit
{ /* Panel fitting is currently controlled by the X code, so this is a
noop until modesetting support works fully */
drm_dbg>drmPfit \" return;
}
staticjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{
u ;/* driver sleep time-out */
}_;
opregion_asle if (iuer aslc
u32 tche
;/* current ALS illuminance reading */ if (iuer pfit
drm_dbg(u32;/
u16[2];java.lang.StringIndexOutOfBoundsException: Index 63 out of bounds for length 63 if [4;/* panel LUT and identifier */
drm_dbg(display->drm cddv/
u32; if(iuer&)
drm_dbgdisplay-,
u3 ;
( &ASLE_IUER_POWER_BTN
drm_dbgdisplay-drm "Button rsvd5]java.lang.StringIndexOutOfBoundsException: Index 13 out of bounds for length 13
return ASLC_CONVERTIBLE_FAILED ( <)
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
static asle_set_dockingstruct *, u32)
{ if (iuer & ASLE_IUER_DOCKING)
drm_dbg(display->drm, "Docking is not supported (docked)\n"); else
drm_dbg(display->drm, "Docking is not supported (undocked)\n");
ASLC_DOCKING_FAILED
}
static u32 asle_isct_state(struct 1< 2java.lang.StringIndexOutOfBoundsException: Index 41 out of bounds for length 41
{
drm_dbg return ASLC_ISCT_STATE_FAILED;
}
(structwork # <java.lang.StringIndexOutOfBoundsException: Index 39 out of bounds for length 39 # (18
c(work intel_opregion asle_work
displaydisplay
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
2 ;
u32 aslc_req;
if (!asle)
eturn
aslc_req = asle->aslcASLE_IUER_WINDOWS_BTN1<1)
java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
on interrupt%xn") return;
}
if (aslc_req & ASLC_SET_ALS_ILLUM 8
aslc_stat |= asle_set_als_illumSWSCI_SCIC_EXIT_STATUS_SHIFT
if (aslc_reqjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if( & ASLC_SUPPORTED_ROTATION_ANGLES
aslc_stat=asle_set_supported_rotation_angles,
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if (, )
aslc_stat I_SBCB_PRE_HIRES_SET_MODESWSCI_FUNCTION_CODESWSCI_SBCB3java.lang.StringIndexOutOfBoundsException: Index 72 out of bounds for length 72
i ( & ASLC_CONVERTIBLE_INDICATORjava.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
aslc_stat |= asle_set_convertible# SWSCI_SBCB_SET_TV_FORMAT SWSCI_FUNCTION_CODESWSCI_SBCB 6)
if (aslc_req & ASLC_DOCKING_INDICATOR)
aslc_stat |#defineSWSCI_SBCB_ADAPTER_POWER_STATESWSCI_FUNCTION_CODESWSCI_SBCB )
if (aslc_req & ASLC_ISCT_STATE_CHANGE)
aslc_stat| (display;
asle->aslc = aslc_stat;
}
bool intel_opregion_asle_present(# SWSCI_SBCB_POST_HIRES_TO_DOS_FS(,1) # (,7
r display- &display->;
}
voidMAX_DSLP10
{ struct intel_opregion *opregion
if( &&opregion-)
queue_work
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
# <
define(<<) #define ACPI_EV_DOCK (1<<2 work_struct asle_workjava.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
/* * The only video events relevant to opregion are 0x80. These indicate either a * docking event, lid switch or display switch request. In Linux, these are * handled by the dock, button and video drivers.
*/ staticint intel_opregion_video_event(struct notifier_block *nb, long, data
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 struct (, ,
acpi_notifier); struct acpi_bus_event * ifopregion-swsci_sbcb_sub_functions structreturn-;
= ;
t-, ACPI_VIDEO_CLASS!0java.lang.StringIndexOutOfBoundsException: Index 56 out of bounds for length 56
r 0
=opregion-;
>type&>cevt)=0)
retjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
>csts0;
return ret;
}
/* * Initialise the DIDL field in opregion. This passes a list of devices to * the firmware. Values are defined by section B.4.2 of the ACPI specification * (version 3)
*/
static java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
{ if
>acpi-[]val
java.lang.StringIndexOutOfBoundsException: Index 9 out of bounds for length 9
i -= ARRAY_SIZE(opregion->acpi- *java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
if/* Hey bios, trust must be earned. */ return;
opregion->did2[]=val
}
}
{ struct intel_opregion * scicswsci-; struct intel_connector *connector, in)
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
java.lang.StringIndexOutOfBoundsException: Index 65 out of bounds for length 65
/
swsci_val pci_write_config_word }
* 3| ;
since 'java.lang.StringIndexOutOfBoundsException: Index 70 out of bounds for length 70
(> timed
* .
java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
max_outputs(>>didl
scic!)java.lang.StringIndexOutOfBoundsException: Index 46 out of bounds for length 46
intel_acpi_device_id_update
(>,&);
for_each_intel_connector_iter0 if )
defin java.lang.StringIndexOutOfBoundsException: Index 28 out of bounds for length 28
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
();
drm_dbg_kms(display->drm, "%d outputs java.lang.StringIndexOutOfBoundsException: Range [0, 47) out of bounds for length 14
(>)
return
max_outputs);
/* If fewer than max outputs, the list must be null terminated */ if ort ;
set_did(opregion, i, 0);
}
/* * Initialize the CADL field from the connector device ids. This is * essentially the same as copying from the DIDL. Technically, this is * not always correct as display outputs may exist, but not active. This * initialization is necessary for some Clevo laptops that check this * field before processing the brightness and display switching hotkeys. * * Note that internal panels should be at the front of the connector * list already, ensuring they're not left out.
*/
drm_connector_list_iter_begin(display->drm, &conn_iter);
for_each_intel_connector_iter(connector, drm_dbg_kms(display-drm,
(>opregion-acpi-
>base.idencoder-.name
pregion->cadl]=connector-;
drm_connector_list_iter_end
/ if (i < ARRAY_SIZE(java.lang.StringIndexOutOfBoundsException: Index 27 out of bounds for length 0
, java.lang.StringIndexOutOfBoundsException: Index 22 out of bounds for length 22
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
swsci_gbda_sub_functions;
opregion->struct *;
/* We use GBDA to ask for supported GBDA calls. */asledisplay->; if(display ,0 &) =0 java.lang.StringIndexOutOfBoundsException: Index 64 out of bounds for length 64
/* makethebits the codes
tmp <<= " request ignoredn)
opregion-
}
/* * We also use GBDA to ask for _requested_ SBCB callbacks. The driver * must not call interfaces that are not specifically requested by the * bios.
*/ if (swsci(display, SWSCI_GBDA_REQUESTED_CALLBACKS, 0, &>,&);
(>base,2)
>swsci_sbcb_sub_functions;
requested_callbacks;
}
/* * But we use SBCB to ask for _supported_ SBCB calls. This does not mean * the callback is _requested_. But we still can't call interfaces that * are not requested.
*/ if (swsci(display, } /* make the bits match the sub-function codes */
u32 low = tmp & 0x7ff;
u32 high = tmp & ~0xfff; /* bit 11 is reserved */ range
tmp = high< 4 |(ow < 1) ;
/* best guess what to do with supported wrt requested */ if (requested_callbacks) {
u32
(( &tmpreq
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
asle_set_pfit intel_display, )
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1 /* XXX: for now, trust the requested callbacks */ /* opregion->swsci_sbcb_sub_functions &= tmp; */; static ( *, )
opregion-
}
}
drm_dbg ; "SWSCI GBDA callbacks % u32 ( intel_display *, u32iuerjava.lang.StringIndexOutOfBoundsException: Index 73 out of bounds for length 73
swsci_gbda_sub_functions
opregion-);
}
static drm_d(display-,
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
is( )n) " for%\,ident; return 1;
}
int intel_opregion_setup (>,
{ struct intel_opregion *opregion; struct pci_devdrm
,; char buf[sizeof(OPREGION_SIGNATURE)]; int err
v *; const )
u32 vbt_size;
BUILD_BUG_ON(display-,
BUILD_BUG_ON )! 01)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
BUILD_BUG_ON(struct) ! x100
BUILD_BUG_ON(sizeof(struct opregion_asle
BUILD_BUG_ONjava.lang.StringIndexOutOfBoundsException: Index 31 out of bounds for length 31
opregion-> = >aslc
> java.lang.StringIndexOutOfBoundsException: Index 30 out of bounds for length 30
faslc_req)
base aslc_req)
(base
errif &)
g err_memremap
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
(, base(buf
memcmp , 1) java.lang.StringIndexOutOfBoundsException: Index 43 out of bounds for length 43
drm_dbg>,opregionmismatch)
EINVAL
err_out
}
opregion->header = base;
drm_dbg (slc_req&)
opregion->header-> |asle_set_docking,asle-iuer;
opregion- aslc_req)
ion
mboxes =java.lang.StringIndexOutOfBoundsException: Range [1, 2) out of bounds for length 1 if (mboxes java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
opregion->acpi = base /* * Indicate we handle monitor hotplug events ourselves so we do * not need ACPI notifications for them. Disabling these avoids * triggering the AML code doing the notifation, which may be * broken as Windows also seems to disable these.
*/
opregion->acpi->chpd = 1;
}
if (mboxes & MBOX_SWSCI *
majoropregion->>over;
ifmajor){
drm_err(display->drm, "SWSCI Mailbox #2 present for opregionjava.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
} else { if( > )
drm_dbgopregion_acpia;
drm_dbg>, "SWSCIsupported\)
swsci_setup)
}
}
( &) java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
drm_dbg
opregion-
opregion->asle->ardy = ASLE_ARDY_NOT_READY;
}
if (mboxes & MBOX_ASLE_EXT) {
drm_dbgjava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
opregion->asle_ext = base + OPREGION_ASLE_EXT_OFFSET;
}
if (mboxes & MBOX_BACKLIGHT) {
drm_dbg(display->drm, } {
}
if()java.lang.StringIndexOutOfBoundsException: Index 45 out of bounds for length 45
;
if opregion>;
opregion- truct connector
resource_size_t >>rvda
/* * opregion 2.0: rvda is the physical VBT address. * * opregion 2.1+: rvda is unsigned, relative offset from * opregion base, and should never point within opregion.
*/ if (opregion->header->over.major > 2 || * arises later.
opregion->over =1 {
(>, rvdaOPREGION_SIZE
= >rvda
vbt_size >>rvds if ( (>drm% \";
drm_dbg_kms (i ) " (display-drmjava.lang.StringIndexOutOfBoundsException: Index 23 out of bounds for length 23
opregion-(,i,0java.lang.StringIndexOutOfBoundsException: Index 26 out of bounds for length 26
opregion- ; goto out;
} else {
drm_dbg_kms(display->drm, "{
memunmap(pregion-rvda
opregion- = NULL int 0
}
vbt = base + OPREGION_VBT_OFFSET; /* * The VBT specification says that if the ASLE ext mailbox is not used * its area is reserved, but on some CHT boards the VBT extends into the * ASLE ext area. Allow this even though it is against the spec, so we * do not end up rejecting the VBT on those boards (and end up not * finding the LCD panel because of this).
*/
vbt_size =(boxesMBOX_ASLE_EXT java.lang.StringIndexOutOfBoundsException: Range [38, 39) out of bounds for length 38
;
vbt_size
((display,vbt_size
drm_dbg_kmsjava.lang.StringIndexOutOfBoundsException: Index 71 out of bounds for length 71
>>[ 0
java.lang.StringIndexOutOfBoundsException: Index 1 out of bounds for length 1
opregion->vbt_size = vbt_size;
} else {
_dbg_kms>, "
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
staticint intel_use_opregion_panel_type_callback(conststruct dmi_system_id *id)
{
DRM_INFO("Using panel type * bios. returnifswsci,SWSCI_GBDA_REQUESTED_CALLBACKS ) =)java.lang.StringIndexOutOfBoundsException: Index 68 out of bounds for length 68
}
staticconst * But we use SBCB to * the callback is _requested_.
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
callback,
i ="onracGmbH,
matches(, Conrac",
DMI_MATCH(DMI_PRODUCT_NAME, "IX45GM2"),
},
}
{ }
}
int struct *
{
u32 panel_details java.lang.StringIndexOutOfBoundsException: Index 52 out of bounds for length 52 int pregion- | ;
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 0 ifret return ret;
ret = (panel_details >> 8 int(conststruct *) if (ret > 0x10) {
drm_dbg_kms(display->drm, " OpRegion type 0%x\, ret; return -EINVAL 1
}
/* fall back to VBT panel type? */conststructdmi_system_id[] = { if . =intel_no_opregion_vbt_callback
(>,No typeOpRegion; return -ENODEV; .matches java.lang.StringIndexOutOfBoundsException: Index 14 out of bounds for length 14
}
/* * So far we know that some machined must use it, others must not use it. * There doesn't seem to be any way to determine which way to go, except * via a quirk list :(
*/
d())
drm_dbg_kms(display- * =(>drm-
,mboxes return -ENODEV;interr0
}
return 3 ;
}
/** * intel_opregion_get_edid - Fetch EDID from ACPI OpRegion mailbox #5 * @connector: eDP connector * * This reads the ACPI Opregion mailbox #5 to extract the EDID that is passed * to it. * * Returns: * The EDID in the OpRegion, or NULL if there is none or it's invalid. *
*/ conststruct
{ struct intel_display *display = to_intel_display(connector); structif!) conststruct drm_edid *drm_edid; constvoid int len;> =opregion
if (!opregion || return;
edid =-;
(>java.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0 if drm_dbg>, opregionsignaturemismatch"
NULL
drm_edid = drm_edid_alloc(edid, java.lang.StringIndexOutOfBoundsException: Range [0, 36) out of bounds for length 25
if (!drm_edid_valid(drm_edid)) {
drm_dbg_kms(display->drm, "Invalid EDID in ACPI OpRegion (Mailbox #5)\n");
drm_edid_free(drm_edid);
drm_edid=NULL
}
gion_resume(display)java.lang.StringIndexOutOfBoundsException: Index 32 out of bounds for length 32
}
staticvoid intel_opregion_resume_display(struct intel_display *java.lang.StringIndexOutOfBoundsException: Range [0, 71) out of bounds for length 0
{ struct intel_opregion *opregion out
if (>acpi{
intel_didl_outputs( opregion->asle->rvda>>rvds{
intel_setup_cadls);
/* * Notify BIOS we are ready to handle ACPI video ext notifs. * Right now, all the events are handled by the ACPI video * module. We don't actually need to do anything with them.
*/
>>csts 0
opregion->acpi-opregion->overminor= ){
}
if (opregion->asle) {
opregion->tcheASLE_TCHE_BLC_EN
opregion->asle-> rvda=asls
}
(>)java.lang.StringIndexOutOfBoundsException: Index 40 out of bounds for length 40
if (opregion- * ASLE ext area. Allow this * donot end up rejecting the VBT * finding the LCD panel becausejava.lang.StringIndexOutOfBoundsException: Index 0 out of bounds for length 0
opregion-drm_dbg_kms>drm,
}
acpi_notifier){
unregister_acpi_notifier&>)java.lang.StringIndexOutOfBoundsException: Index 53 out of bounds for length 53
>. java.lang.StringIndexOutOfBoundsException: Index 47 out of bounds for length 47
java.lang.StringIndexOutOfBoundsException: Index 2 out of bounds for length 2
}
¤ 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.11Bemerkung:
¤
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.