/* $Id$ * $URL$ * * plugin for statfs() syscall * * Copyright (C) 2005 Michael Reinelt * Copyright (C) 2005 The LCD4Linux Team * * This file is part of LCD4Linux. * * LCD4Linux 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, or (at your option) * any later version. * * LCD4Linux 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., 675 Mass Ave, Cambridge, MA 02139, USA. * */ /* * exported functions: * * int plugin_init_statfs (void) * adds statfs() functions * */ #include "config.h" #include #include #include #include #include "debug.h" #include "plugin.h" static void my_statfs(RESULT * result, RESULT * arg1, RESULT * arg2) { struct statfs buf; char *path, *key; double value; path = R2S(arg1); key = R2S(arg2); if (statfs(path, &buf) != 0) { error("statfs(%s) failed: %s", path, strerror(errno)); SetResult(&result, R_STRING, ""); return; } if (strcasecmp(key, "type") == 0) { value = buf.f_type; } else if (strcasecmp(key, "bsize") == 0) { value = buf.f_bsize; } else if (strcasecmp(key, "blocks") == 0) { value = buf.f_blocks; } else if (strcasecmp(key, "bfree") == 0) { value = buf.f_bfree; } else if (strcasecmp(key, "bavail") == 0) { value = buf.f_bavail; } else if (strcasecmp(key, "files") == 0) { value = buf.f_files; } else if (strcasecmp(key, "ffree") == 0) { value = buf.f_ffree; #if 0 } else if (strcasecmp(key, "fsid") == 0) { value = buf.f_fsid; #endif } else if (strcasecmp(key, "namelen") == 0) { value = buf.f_namelen; } else { error("statfs: unknown field '%s'", key); value = -1; } SetResult(&result, R_NUMBER, &value); } int plugin_init_statfs(void) { AddFunction("statfs", 2, my_statfs); return 0; } void plugin_exit_statfs(void) { } a77df452af54599d7229737f23a4979'>root/README.Crystalfontz
blob: 4c76b45d4e174ae4d67b34749cc5e862d9dbd089 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
This is the README file for the Crystalfontz display driver for lcd4linux

This driver supports the 632/634 LCD-Modules from Crystalfontz, but should
work for the 626 and 636 modules too. The 634 is a 20x4 character display,
while the others only display 16x2. I've written the driver using a
634 module.

The driver understands the following configuration parameters:

Display:    any of 626, 632, 634 and 636.

Port:	    serial device (i.e. ttyS0) the LCD module is connnected
            to.

Speed:      any of 1200, 2400, 9600 and 19200. By default, the driver
            uses 9600 which is the speed the LCD modules are hardwired
            at. If your module works at a different speed than 9600,
            use this parameter. Otherwise omit it (i.e. omit it when
            you have a 634).

Backlight:  controls the backlight brightness. Quote from 634.pdf from
            the Crystalfonts-Webserver[1]: "0=OFF 100=ON. Intermediate
            values vary the brightness. There are a total of 25 possible
            brightness levels."

Contrast:   controls the contrast settings. Quote[1]: "0=very light,
            100 = very dark. 50 is typical. There are a total of 25
            possible contrast levels."


Known bugs:
When you draw a bar over a previously drawn textfield, the white portion
the bar will not erase the text. Only when the black portion of the bar
has reached the full bar length, the text will be erased. I did not bother
to implement that, since in lcd4linux, the whole display-screen is erased
prior to switching to a different 'screen'. Implementing this feature would
just add to program-overhead. Yes, you guessed it: I did not use the "bar"-
command that comes with the LCD-module, but wrote my own instead.
lcd4linux also supports "split-" or "dual-bars" (two bars in one segment),
which are not available on the Crystalfontz firmware.

  [1] http://www.crystalfontz.com