451 Commits

Author SHA1 Message Date
Serge Vakulenko
486f81f6ab Merge pull request #94 from gartnerd/master
These changes allow to compile RetroBSD on a Linux Mint host with 32bit libraries installed.
The simulator in "tools/virtualmips/pic32" seems to work fine.

* removed the -Wall compiler flag (hopefully this will be temporary) from makefile recipes to prevent errors from stopping compilation. It mostly fails on printf type functions because of string size conflicts.
* added the "-m32" flag so that compilation and linking produced 32bit executables. I'm not sure is if this is strictly necessary.
* copied Makefile.kconfig to Makefile.kconfigpic32. The files in the pic32 directory compile after making this change
* modified the code in config.h to explicitly tag those function that are externally defined. This is required by newer versions of gcc
* hacked config.y so that the lexer/compiler stopped complaining.
* commented out the "compp" variable in main.c because of size mismatch errors. It doesn't seem to be used for anything.
* added a system header file to tools/kconfig/mkswapconf.c so that the compiler could find included functions
2023-07-07 11:41:40 -07:00
David Gartner
a8ad228599 Updated code to compile on GNU/Linux 5.15.0-75-generic #82-Ubuntu SMP and Code Sourcery MIPS toolchain 2023-07-06 15:58:16 -06:00
Serge Vakulenko
72ca88362a Merge pull request #84 from calmsacibis995/patch-1
Update gettytab to change the default login banner from "2.11 BSD UNI…
2022-07-19 09:40:40 -07:00
calmsacibis995
d785bca2c8 Update gettytab to change the default login banner from "2.11 BSD UNIX" to "RetroBSD" 2022-07-19 12:21:03 +03:00
Serge Vakulenko
71faeb6c76 Disable mount option in fsutil. No need for libfuse anymore.
Fix build issues in virtualmips simulator.
2022-05-25 16:11:07 -07:00
Serge Vakulenko
a0c256c1f0 Virus editor crashed when colon command line exceeded 4 bytes.
Fixed issue #79.
2019-02-17 14:24:26 -08:00
Serge Vakulenko
9d8ad7ccf5 Configure gpanel driver for Duinomite board. 2018-01-30 20:35:01 -08:00
Serge Vakulenko
a5d7f4ea99 Gpanel driver: add support for ILI9481 LCD controller. 2018-01-30 20:22:36 -08:00
Serge Vakulenko
435d3c34cf Fix build errors and warnings in zoneinfo and virtualmips. 2018-01-30 20:20:38 -08:00
Serge Vakulenko
0e39621fea Merge pull request #77 from 610t/master
Retern to legacy implement for expr(1) etc.
2017-02-14 23:25:59 -08:00
Takeshi MUTOH
7477abe7f3 Retern to legacy implement for expr(1) etc. 2017-02-12 06:19:13 +09:00
Serge Vakulenko
7075769d7c Merge pull request #76 from vasily122/insert-int
insert definitions of INT in some functions
2016-12-31 14:10:02 -08:00
vasily122
f5452b74de insert definitions of INT in some functions 2016-11-04 13:46:37 +00:00
Matt Jenkins
f3dbdc7615 Got Yacc compiling and running 2016-07-14 00:06:12 +01:00
Matt Jenkins
66e5cd88c0 Fixed UECIDE compiler location detection 2016-07-14 00:04:45 +01:00
Matt Jenkins
0583055d00 Added PONTECH Quick240 2016-07-14 00:02:22 +01:00
Matt Jenkins
aea2050c49 Merge branch 'master' of github.com:RetroBSD/retrobsd 2016-07-13 16:02:46 +01:00
Serge Vakulenko
5fde14ecea Fix bus frequency and gpio configuration for eMega board. 2016-07-12 17:39:08 -07:00
Serge Vakulenko
ca67f33a30 Autobuild: add Olimex Duinomite-eMega board. 2016-07-07 20:46:14 -07:00
Matt Jenkins
20238b7208 Merge branch 'master' of github.com:RetroBSD/retrobsd 2016-07-03 16:48:42 +01:00
Serge Vakulenko
1a7125b892 Merge pull request #74 from ibara/master
RetroBSD now builds on FreeBSD.
2016-06-23 10:23:34 -07:00
Brian Callahan
d048ee200e RetroBSD now builds on FreeBSD. 2016-06-13 06:47:48 -04:00
Matt Jenkins
6ddcb56e2a Made elf2aout compilable for windows under linux 2016-02-15 15:12:21 +00:00
Serge Vakulenko
148bb1cac6 Merge pull request #72 from alexfru/master
Improve *printf()
2016-01-24 22:16:14 -08:00
Alexey Frunze
b2bde490b4 Improve *printf()
- support %i in addition to %d
- print the sign when printing 0 with %+d
2016-01-24 18:38:58 -08:00
Serge Vakulenko
e1d3583dcd Merge pull request #71 from alexfru/master
Fix infinite loop in ldexp(0.0, any).
2016-01-24 01:55:25 -08:00
Alexey Frunze
21f8d60095 Fix infinite loop in ldexp(0.0, any). 2016-01-24 01:43:24 -08:00
Serge Vakulenko
6457d878c0 Merge pull request #70 from alexfru/master
Floating point improvements
2016-01-23 22:57:05 -08:00
Alexey Frunze
e5c844eff2 Floating point improvements
- Smaller C: fix a bug in __func__ introduced with
  float-related changes
- make *printf() print floats greater than 1e25
- make *printf() print the plus sign when the format
  includes "+", e.g. printf("%+f\n", 1.0);
- clean up and complete prototypes in <math.h>
- remove non-standard HUGE and LOGHUGE from <math.h>
- add HUGE_VAL to <math.h>
- express some hard-coded limits in terms of constants
  from <float.h>
- uncomment prototypes of several floating point
  conversion functions in <stdlib.h> for Smaller C
2016-01-23 19:47:14 -08:00
Serge Vakulenko
4e90456341 Merge pull request #69 from alexfru/master
Floats in Smaller C!
2016-01-16 23:35:14 -08:00
Alexey Frunze
bfc3125556 Floats in Smaller C!
double is an alias for float. IOW, only 32-bit
single precision floats are supported. This isn't
conformant, but OK for some embedded systems (e.g.
RetroBSD) and simple compilers like this.

Also, the following operators are not supported with
floats at the moment: ++, --, +=, -=, *=, /=.
But +, -, *, /, =, ||, &&, ?:, !, comparison, casts,
if/while/for are OK.
2016-01-16 22:45:42 -08:00
Serge Vakulenko
fa094d1744 libc: add missing functions __fixunssfsi() and __floatunsisf(). 2016-01-03 00:21:39 -08:00
Serge Vakulenko
b7a3d6f665 Enable uarts for pic32-retrobsd board.
Fix build issues with fuse library path on Mac OS X.
2015-12-30 19:20:37 -08:00
Serge Vakulenko
fb05f20fbe Merge pull request #66 from ibara/master
Update to emg-2.0
2015-12-17 22:21:49 -08:00
Brian Callahan
e050ac6ee6 Update to emg-2.0 2015-12-18 01:13:00 -05:00
Serge Vakulenko
8dd0fb4860 Flappy game: reduce flickering. 2015-12-03 21:43:43 -08:00
Serge Vakulenko
6028db705a Gpanel spi driver: read ID4 register to identify the ili9341 chip. 2015-12-03 21:25:57 -08:00
Serge Vakulenko
6d501bfc7c Update flappy game. 2015-11-30 12:47:45 -08:00
Serge Vakulenko
09205046a4 Move ILI9341 defines to a separate include file. 2015-11-28 00:44:40 -08:00
Serge Vakulenko
ac9ef0eee9 Add sgpanel driver: a generic TFT LCD graphics panel with SPI interface.
Currently only ILI8341 chip is supported.
2015-11-28 00:17:01 -08:00
Serge Vakulenko
e073fcbd64 SD driver: print information about the CMD6 function groups. 2015-11-27 17:26:09 -08:00
Serge Vakulenko
0507073b60 SD driver: use CMD6 command to switch the card into high-speed mode. 2015-11-26 17:25:25 -08:00
Serge Vakulenko
76cb491c09 Flappy Bird game: save high score to a file. 2015-11-23 13:41:13 -08:00
Serge Vakulenko
f3f28ceca5 Fix bug in gpanel fill triangle routine. 2015-11-22 15:04:41 -08:00
Serge Vakulenko
e3c86f0ffa Update Flappy Bird game. 2015-11-22 14:34:44 -08:00
Serge Vakulenko
7503ce7856 Add Flappy Bird game. 2015-11-22 01:47:52 -08:00
Serge Vakulenko
1a1daf15a3 Update ILI9341 LCD driver. 2015-11-22 00:19:14 -08:00
Serge Vakulenko
a40bcee878 Extend gpanel library with fill rectangle routine. 2015-11-21 23:10:45 -08:00
Serge Vakulenko
e67e939fb9 Add aclock game. 2015-11-20 22:44:37 -08:00
Serge Vakulenko
9027547fa6 Mend a font direction in ST7781 portrait unside down mode. 2015-11-20 21:54:34 -08:00
Serge Vakulenko
7c2aa43862 Fix bug in ST7781 driver. Set landscape mode by default. 2015-11-20 21:43:27 -08:00
Serge Vakulenko
8988b8b013 Reuse ili9341 routines for nt35702 display. 2015-11-19 22:10:52 -08:00
Serge Vakulenko
d2940a8719 Fix screen orientation in the ILI9341 LCD driver. 2015-11-19 19:55:07 -08:00
Serge Vakulenko
be1726a662 Draw a BSD logo on the LCD display at start. 2015-11-19 19:04:23 -08:00
Serge Vakulenko
2fd36d9175 Update ILI9341 LCD driver. 2015-11-17 19:25:39 -08:00
Serge Vakulenko
6f0a48330c LCD driver: add support for Samsung S6D04H0 (not finished yet). 2015-11-16 22:15:40 -08:00
Serge Vakulenko
4dd9308e25 Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2015-11-15 14:15:13 -08:00
Serge Vakulenko
98f3efcb70 Increase the max number of processes (NPROC) from 10 to 25. 2015-11-15 14:14:18 -08:00
Serge Vakulenko
2e716e099c LCD driver: fix garbage when a glyph extends off screen. 2015-11-15 13:39:08 -08:00
Serge Vakulenko
03ed62db5d Libm: add 32-bit variant of fmod() function. 2015-11-06 20:40:45 -08:00
Serge Vakulenko
c46bd3c1e9 Enable optimization by size (-Os) by default for all user binaries. 2015-11-03 22:03:52 -08:00
Serge Vakulenko
a673c028f8 Add ubw32 board to the autobuild list. 2015-11-03 21:37:50 -08:00
Serge Vakulenko
7ddf7686a3 Enable mips16e instruction set for all user binaries. 2015-11-03 21:36:31 -08:00
Serge Vakulenko
abcfb06b0b Merge gpanel branch. 2015-10-31 21:12:50 -07:00
Serge Vakulenko
e00196ee21 Merge branch 'master' into gpanel-driver 2015-10-31 21:11:38 -07:00
Serge Vakulenko
5b04c6b168 Add driver for ILI9341 display controller. 2015-10-31 21:09:44 -07:00
Serge Vakulenko
7f69510488 Gpanel driver: use gamma values from NT35702 datasheet. 2015-10-31 19:58:41 -07:00
Serge Vakulenko
058b6c4de0 Add support for NT35702 display controller. 2015-10-31 19:25:26 -07:00
Serge Vakulenko
1e4005cc4b Split the gpanel driver into chip-specific and generic parts. 2015-10-31 14:57:45 -07:00
Serge Vakulenko
66a7727085 Rename swtft -> gpanel. 2015-10-31 13:26:27 -07:00
Serge Vakulenko
2bfd3df2a6 Merge pull request #65 from alexfru/master
virtualmips: improve MIPS16e: save/restore, sdbbp
2015-10-31 00:52:49 -07:00
Alexey Frunze
162f0d34b5 virtualmips: improve MIPS16e: save/restore, sdbbp 2015-10-31 00:45:15 -07:00
Serge Vakulenko
3ee11917bb Add ili9341 sources from adafruit library, and nt35702 sources from elsewhere. 2015-10-30 20:44:07 -07:00
Serge Vakulenko
b259f58533 Virtualmips: merge changes from alexfru.
Fix bug in mips16 disassembler.
2015-10-30 10:47:11 -07:00
Serge Vakulenko
42fd2f99bd Remove unnecessary EHBs in kernel startup code. 2015-10-30 10:31:24 -07:00
Serge Vakulenko
ff8e4c81d0 Virtualmips: enhance printing of exception information. 2015-10-29 21:21:28 -07:00
Serge Vakulenko
691fdfaa2f Virtualmips: restored broken DI and EI instructions. 2015-10-29 21:06:56 -07:00
Serge Vakulenko
d8708af48a Virtualmips: handle overflow in div, add, addi and sub instructions. 2015-10-29 20:15:10 -07:00
Serge Vakulenko
7d3e799c82 Virtualmips: take CpU exception as expected. 2015-10-29 19:39:03 -07:00
Serge Vakulenko
91cbbfbad0 Virtualmips: SC instruction should take AdES exception even when LL bit is not set. 2015-10-29 19:01:19 -07:00
Serge Vakulenko
f87ab8d4c4 Virtualmips: remove unused opcodes. 2015-10-29 18:51:02 -07:00
Serge Vakulenko
37646559fd Virtualmips: implement CLO instruction. 2015-10-29 18:17:02 -07:00
Serge Vakulenko
1a5f550fe1 Virtualmips: merge changes from alexfru. 2015-10-29 18:11:41 -07:00
Serge Vakulenko
666f22786f Virtualmips: add DERET instruction. 2015-10-29 18:04:42 -07:00
Serge Vakulenko
8d15906495 Virtualmips: implement SDBBP instruction. 2015-10-29 17:44:44 -07:00
Serge Vakulenko
5bff2b428c Virtualmips: implement compare-and-trap instructions. 2015-10-29 14:02:08 -07:00
Serge Vakulenko
94d38c939f Virtualmips: fix disassembler for mips16e mode. 2015-10-29 13:34:45 -07:00
Serge Vakulenko
f2c4d11b74 Virtualmips: fix exception vectors. 2015-10-28 17:21:31 -07:00
Serge Vakulenko
ce4fbe98b7 Virtualmips: handle SRSCtl register as zero read-only. 2015-10-28 12:02:35 -07:00
Serge Vakulenko
ec2a748448 Virtualmips: implement magic opcodes. 2015-10-27 22:17:58 -07:00
Serge Vakulenko
ade0fff092 VirtualMIPS simulator: create a platform for generic M4K core. 2015-10-26 22:44:38 -07:00
Serge Vakulenko
d4dbb43d44 Merge pull request #64 from alexfru/master
Initial support for MIPS16e in virtualmips emulator
2015-10-26 16:01:32 -07:00
Alexey Frunze
f8bde663cf Initial support for MIPS16e in virtualmips emulator
Also:
- A few bugfixes in virtualmips
- Compile Smaller C (smlrc) using MIPS16e
  (this frees up ~20KB of space for smlrc improvements)
TBD:
- MIPS16e disassembler in virtualmips
2015-10-26 02:27:46 -07:00
Serge Vakulenko
c08045dafe Fix bug in zoneinfo compiler. 2015-10-25 15:59:54 -07:00
Serge Vakulenko
c1ff69edd2 Fix European timezones. 2015-10-20 13:30:41 -07:00
vak
7562e8e410 Install zoneinfo files. 2015-10-20 00:42:29 -07:00
Serge Vakulenko
b134c1f84c Timezone compiler updated. 2015-10-20 00:01:42 -07:00
Serge Vakulenko
0f920ee55a Add zoneinfo sources. 2015-10-19 23:40:54 -07:00
Serge Vakulenko
401d36eee7 Use names for st7781 registers. 2015-10-11 14:08:05 -07:00
Serge Vakulenko
8d820f763f Fix a timing in ST7781 driver.
All gpanel demos now work as expected.
2015-10-11 13:08:18 -07:00
Serge Vakulenko
2bb8bfabb3 Finish st7781 driver. 2015-10-10 23:31:26 -07:00
Serge Vakulenko
e82e5f2ce1 ST7781 driver compiled. 2015-10-10 21:39:27 -07:00
Sergey
e8572fdfd7 Delete file hx8357.h.
Use the same device for all TFT LCD drivers.
Only one such driver can be configured in the kernel.
2015-10-10 16:48:32 -07:00
Serge Vakulenko
789505045c Add missing gpanel examples to the manifest file. 2015-10-09 22:36:35 -07:00
Serge Vakulenko
a78f66c220 Add two gpanel examples: color palette and speed test. 2015-10-09 17:44:46 -07:00
Serge Vakulenko
8b5e30f416 Add man page for gpanel library. 2015-10-09 15:05:02 -07:00
Serge Vakulenko
1d32cd012a Use rand() in gpanel examples. 2015-10-09 13:47:07 -07:00
Serge Vakulenko
d2fb9b98a6 Fix bug in hx8357: rasterizing glyphs with width>16. 2015-10-09 13:21:29 -07:00
Serge Vakulenko
08edaaba8c Fix bug in hxtft driver: drawing rectangles.
Add a few gpanel examples.
2015-10-08 22:15:01 -07:00
Serge Vakulenko
b99fcc6c8c Use GPANEL_CLEAR ioctl to switch the display orientation.
Enable gpio driver for Picadillo board.
2015-10-08 14:01:49 -07:00
Serge Vakulenko
f7d93551cb Fix bug in udelay(): incorrect CPU_KHZ multiply factor. 2015-10-08 12:30:34 -07:00
Serge Vakulenko
793e6052bd Add sysctl parameters to query the CPU and i/o bus frequency:
machdep.cpu_khz and machdep.bus_khz.
Fix bug in machdep.console_device parameter.
2015-10-08 11:34:20 -07:00
Serge Vakulenko
61cc452f1b TFT examples updated. 2015-10-06 19:02:00 -07:00
Serge Vakulenko
21c5beb7a6 Driver hx8357 enhanced to support gpanel ioctls. 2015-10-06 18:46:01 -07:00
Serge Vakulenko
20e1ad2cb2 Install libgpanel. 2015-10-06 13:20:59 -07:00
Serge Vakulenko
9831ddd3a8 Add gpanel library. 2015-10-06 13:15:39 -07:00
Serge Vakulenko
8f220cdf97 Move tft examples to a separate directory.
Add font files.
2015-10-05 18:47:42 -07:00
Serge Vakulenko
776dee30ea Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2015-10-03 14:26:29 -07:00
Serge Vakulenko
023f848428 New kernel option: signal "BUTTON1".
Hold this button pressed at kernel startup to enter a single-user mode.
See fubarino Config for example.
2015-10-03 14:24:17 -07:00
Serge Vakulenko
0f7e688c2e Add kernel configuration for SnadPIC MX795 board.
For board documentation, see:
http://www.microcontroller-board.com/snadpic-board-32/11-snadpic-pic32mx795f512l-development-board.html
2015-10-02 21:02:10 -07:00
Serge Vakulenko
3e439df5a2 Simplify spi_setup() function parameters. 2015-09-30 13:03:12 -07:00
Serge Vakulenko
e8e186905a Remove unused options from generic Config file. 2015-09-29 20:27:24 -07:00
Serge Vakulenko
d68b2f2dc1 Update spirams driver. 2015-09-29 20:23:53 -07:00
Serge Vakulenko
644b6c2112 Update mrams driver. 2015-09-29 19:43:33 -07:00
Serge Vakulenko
09112b6b7a Update sramc driver. 2015-09-29 18:45:48 -07:00
Serge Vakulenko
84a38361a5 Update sdramp driver for the new i/o framework. 2015-09-29 18:15:21 -07:00
Serge Vakulenko
c4cc4bc397 Fix bug in SD driver: incorrect size of partition. 2015-09-27 23:49:30 -07:00
Serge Vakulenko
4f7baefbf0 Build and install libm.a library.
Print a number of configured channels for adc and pwm drivers.
2015-09-27 13:59:50 -07:00
Serge Vakulenko
dc75784799 Cleanup in SD driver. 2015-09-26 23:32:12 -07:00
Serge Vakulenko
5cb608d7e1 Rename other disk drivers which needed rdisk.
Delete device names from all the drivers.
Move device inslude files from include/sys to include/machine directory.
Only include files which have something useful for user layer
(like special ioctls codes) should be placed into sys.
2015-09-26 23:00:13 -07:00
Serge Vakulenko
fdb295ec25 Create device files /dev/sdNx.
Delete unused flash driver.
2015-09-26 21:56:27 -07:00
Serge Vakulenko
3073e9af87 Modify SD driver for direct i/o (no rdisk). 2015-09-26 21:46:11 -07:00
Serge Vakulenko
1d0b58ab60 Allow comments in files.kconf. 2015-09-26 16:27:50 -07:00
Serge Vakulenko
5041402681 Add a few experimental ioctls to the hxtft driver. 2015-09-26 16:23:42 -07:00
Serge Vakulenko
1faf08d3ab Fix LEDs in makefiles for Fubarino and SDXL boards. 2015-09-25 20:33:22 -07:00
Serge Vakulenko
661929317c Enable spi3 and uart2 for Fubarino and SDXL boards. 2015-09-21 13:09:19 -07:00
Serge Vakulenko
3a4cc2d440 Update picga, mrams and spirams drivers. 2015-09-20 22:29:30 -07:00
Serge Vakulenko
80ab2d4721 Simplify the SPI driver. 2015-09-20 22:01:19 -07:00
Serge Vakulenko
a36504720c Update config files with new options. 2015-09-19 22:07:13 -07:00
Serge Vakulenko
4ca4a58468 For SD card, use parameters generated by kernel config utility. 2015-09-19 21:58:45 -07:00
Serge Vakulenko
9c749994c1 Setup only UARTs, defined in the kernel config file.
For console initialization, use options CONS_MAJOR and CONS_MINOR.
2015-09-19 21:23:07 -07:00
Serge Vakulenko
976bf303cc Kernel config utility: add new specification to assign
logical signals to pins. like 'signal "LED_KERNEL" pin RA0'.
2015-09-19 17:09:40 -07:00
Serge Vakulenko
bf92da35b8 Fix crash on access to gpio device. 2015-09-18 23:49:44 -07:00
Serge Vakulenko
f53ab56d1a Fix bug in assembler: incorrect alignment of rodata relocation section. 2015-09-17 22:11:36 -07:00
vak
51e09b4885 Fix bug in assembler: unaligned allocation of local common blocks. 2015-09-16 19:19:26 -07:00
vak
dbd2d74487 Fix bss size alignment in the assembler.
Relax the requirement in the linker as well.
2015-09-15 00:37:35 -07:00
Serge Vakulenko
3db23e5d6a Use flags for gpio driver to configure available pins. 2015-09-14 22:07:16 -07:00
Serge Vakulenko
c6360fb676 Use ioconf.c for device configuration. 2015-09-14 20:28:31 -07:00
Serge Vakulenko
51e46b333b Extend SmallerC sizes to be able to compile curses examples. 2015-09-14 11:48:16 -07:00
Serge Vakulenko
3dda877dfb Package readme file updated. 2015-09-14 11:42:51 -07:00
Serge Vakulenko
c9ed14824b Update package readme file (thanks Pito). 2015-09-14 11:21:49 -07:00
Serge Vakulenko
218466583d Fix curses bug: garbled output in nl mode.
Use nonl mode in sl, as more efficient.
2015-09-13 23:47:32 -07:00
Serge Vakulenko
7a8eff3fa3 Add a few curses examples. 2015-09-13 22:19:53 -07:00
Serge Vakulenko
261f70aef6 Enable nonl mode in libcurses by default.
Update sl sources from https://github.com/mtoyoda/sl.
2015-09-13 18:40:58 -07:00
Serge Vakulenko
2b09c13056 Use /root as a home for superuser.
Fix build warnings.
Delete extra copy of uuencode/uudecode.
2015-09-13 10:30:06 -07:00
Serge Vakulenko
3b1e8d40d7 Fix build errors. 2015-09-13 02:21:03 -07:00
Serge Vakulenko
0087168ba6 Add missing file /.profile.
Simplify stty utility, remove unused options.
2015-09-13 01:59:42 -07:00
Serge Vakulenko
967ec35fd2 Top level readme updated. 2015-09-08 23:40:38 -07:00
Serge Vakulenko
b906f7c2c5 Print SD select pin with R prefix, to match the datasheet. 2015-09-08 22:44:26 -07:00
Serge Vakulenko
0194d839ef Merge branch 'kconfig'. 2015-09-08 22:25:56 -07:00
Serge Vakulenko
b2806f3ad2 Merge branch 'master' into kconfig. 2015-09-08 22:22:29 -07:00
Serge Vakulenko
355ad339ef Kconfig: use named pins for SD select and enable signals. 2015-09-08 22:17:10 -07:00
Serge Vakulenko
c631ae5d43 Kconfig: generate xxx_ENABLED defines automatically. 2015-09-08 14:25:59 -07:00
Serge Vakulenko
717ab59efd Switch to kconfig completely.
All configsys stuff moved to tools/configsys/ directory, not used anymore.
2015-09-07 22:22:35 -07:00
Serge Vakulenko
9c8ee0a1a4 Merge branch 'master' of https://github.com/RetroBSD/retrobsd. 2015-09-07 21:32:55 -07:00
Serge Vakulenko
2c41b4d9e1 Fix crash in fsck, when reconnecting lost file. 2015-09-07 21:31:33 -07:00
Serge Vakulenko
3678ba6aee New configuration for MMB-MX7 board. 2015-09-07 17:13:10 -07:00
Serge Vakulenko
85300993b9 New configuration for Olimex Pinguino-Micro board. 2015-09-07 16:17:49 -07:00
Serge Vakulenko
137963240e New kernel configuration for SDXL board. 2015-09-07 16:12:00 -07:00
Serge Vakulenko
6facb3f56d New configurations for maximite and maximite-color boards. 2015-09-07 16:02:39 -07:00
Serge Vakulenko
bbaa00df52 New kernel configuration for starter kit board. 2015-09-07 15:46:13 -07:00
Serge Vakulenko
f17fa5a116 New kernel configuration for Explorer16 board. 2015-09-07 15:40:17 -07:00
Serge Vakulenko
ac83afdde8 New bare metal kernel configuration. 2015-09-07 15:30:41 -07:00
Serge Vakulenko
496e7ac168 New configuration for 32mxsdram board. 2015-09-05 16:18:02 -07:00
Serge Vakulenko
d7e7ae368d Delete unused file. 2015-09-04 21:26:21 -07:00
Serge Vakulenko
58359c0ff4 Rename 32mxsdram directory. 2015-09-04 21:03:54 -07:00
Serge Vakulenko
a73bd691b3 Simplify board names for max32 and wf32. 2015-09-04 20:55:02 -07:00
Serge Vakulenko
f055b45453 Kconfig: remove hz keyword. 2015-09-04 20:53:19 -07:00
Serge Vakulenko
9f05f511a6 Fixed issues with multiple kernel builds. 2015-09-04 18:55:56 -07:00
Serge Vakulenko
8ba13c2f71 Merge branch 'kconfig' of https://github.com/RetroBSD/retrobsd into kconfig. 2015-09-04 16:45:00 -07:00
Serge Vakulenko
fcad15f7e6 Generic config file updated. 2015-09-04 12:33:14 -07:00
Serge Vakulenko
5de76c3cf1 Remove MEB board. 2015-09-03 23:32:35 -07:00
Serge Vakulenko
a6396122f6 New configurations for Fubarino board.
Retroone configuration deleted.
2015-09-03 19:17:07 -07:00
Serge Vakulenko
d1eb7c79c2 New kernel configurations for UBW32 board. 2015-09-03 18:47:59 -07:00
Serge Vakulenko
095e957995 Create kernel configuration for Picadillo board. 2015-09-03 18:10:05 -07:00
Serge Vakulenko
8546991046 Fix retroone configuration.
Reorganize ubw32 and picadillo configurations.
2015-09-03 17:45:31 -07:00
Serge Vakulenko
328bdf4bbf Create kconfig configurations for Duinomite boards. 2015-09-03 17:15:50 -07:00
Serge Vakulenko
a302352054 Modify Makefile.kconf to generate dependency files automatically. 2015-09-03 13:05:37 -07:00
Serge Vakulenko
94c02410e4 Kconfig: rename machine to architecture, ident to board.
Make timezone and maxusers parameters optional.

Enable kernel options UCB_METER, EXEC_AOUT, EXEC_ELF and EXEC_SCRIPT
by default.
2015-09-03 12:51:56 -07:00
Serge Vakulenko
fc9d89eff2 Kconfig: use PARAM for all options. 2015-09-03 12:08:32 -07:00
Serge Vakulenko
23cafa1006 Merge branch 'kconfig' of https://github.com/RetroBSD/retrobsd into kconfig. 2015-09-03 11:44:14 -07:00
Serge Vakulenko
9f6a53122a Cleanup in kconfig files. 2015-09-03 11:44:03 -07:00
Serge Vakulenko
a8c229ed36 Create kconfig file for WF32 board. 2015-09-02 22:19:42 -07:00
Serge Vakulenko
592e2014fb Kconfig: remove unused options config-dependent, device-driver and profiling-routine.
Kernel makefile updated.
2015-09-02 18:19:30 -07:00
Serge Vakulenko
635d8ff2f7 GCC configuration script unified for both kconfig and configsys.
Ling scripts modified for compatibility with CodeScape toolchain.
Fixed gcc warnings in kernel and kconfig.
2015-09-01 19:46:57 -07:00
Serge Vakulenko
49de16b343 Fsutil enhanced to extract symlinks. 2015-08-31 18:35:37 -07:00
Serge Vakulenko
c19654daa9 Merge pull request #63 from alexfru/master
Smaller C: improve prologue on MIPS.
2015-08-31 00:26:49 -07:00
Serge Vakulenko
585773955b Fix include paths in the kernel sources.
Max32 kernel successfully compiled with kconfig utility.
2015-08-31 00:21:41 -07:00
Alexey Frunze
5f2b01ddda Smaller C: improve prologue on MIPS
Functions defined as 'type f()' now don't store A0-A3
on the stack just as functions defined as 'type f(void)'.
2015-08-30 23:52:26 -07:00
Serge Vakulenko
d80a636a62 Create generic kconfig script for pic32 platform. 2015-08-30 21:10:19 -07:00
Serge Vakulenko
0aaf6c25f6 Merge pull request #62 from alexfru/master
Smaller C: improvements.
2015-08-29 10:35:45 -07:00
Alexey Frunze
ae75f1cecc Smaller C: improvements
All architectures:
- "return" statement at function's end doesn't jump to immediately
  following epilog anymore
- zero and non-zero constants are recognized in conditional
  expressions of "if", "do/while" and "for" statements, no code
  generated to evaluate these constant conditions and related
  unnecessary jumps aren't generated anymore either
- in "for (clause-1; expr-2; expr-3) body", "expr-3" and "body" are
  now reordered to the more natural code flow "body expr-3", thereby
  getting rid of unnecessary jumps
MIPS code generator:
- function prologue/epilogue shortened further
- RA is not explicitly saved/restored in leaf functions
- assignment of 0 (e.g. "int a = 0;") is done from register 0
  directly, avoiding a load of a constant
2015-08-29 02:27:19 -07:00
Serge Vakulenko
c44239cb64 Bootloader moved to a separate GitHub repository. 2015-08-28 19:32:43 -07:00
Serge Vakulenko
4634b23849 Autobuild makefile updated. 2015-08-27 22:27:33 -07:00
Serge Vakulenko
2401afee53 Autobuild script updated. 2015-08-27 19:43:03 -07:00
Serge Vakulenko
09f3488389 Add pinguino-micro to the autobuild list. 2015-08-23 23:15:32 -07:00
Serge Vakulenko
b73411b3bd Autobuild script updated. 2015-08-23 22:48:02 -07:00
Serge Vakulenko
4bf3ca1292 Add autobuild script. 2015-08-23 22:45:16 -07:00
Serge Vakulenko
6419a655f4 Merge pull request #61 from alexfru/master
Smaller C: Recover ~7.5KB of data memory (room for improvements).
2015-08-22 22:19:08 -07:00
Alexey Frunze
531a56ed51 Smaller C: Recover ~7.5KB of data memory (room for improvements)
by splitting SyntaxStack[][] into two arrays and reducing
the size of the element of the first
2015-08-22 17:53:42 -07:00
Serge Vakulenko
aaaa3fd193 Autobuild makefile updated. 2015-08-22 01:42:39 -07:00
Serge Vakulenko
d6164dd82b Add tools/build directory. 2015-08-22 00:51:53 -07:00
Serge Vakulenko
00279386d7 Merge pull request #60 from alexfru/master
Update Smaller C.
2015-08-20 23:19:59 -07:00
Alexey Frunze
b331d3e0aa Update Smaller C
- Update license text (remove irrelevant FreeBSD references)

- Update root readme.txt

- Improve prologue/epilogue generation
  Don't generate unnecessary jumps back and forth to/from
  "sub sp, size_of_locals".
  Instead, with the help of fgetpos()/fsetpos()
  initially write ";sub sp,              0" and then, when
  the size is finally known, go back and overwrite it with
  " sub sp, size_of_locals".
2015-08-20 22:37:08 -07:00
Serge Vakulenko
c8939dc646 Fix bug in assembler: incorrect reordering of branch instruction.
Increase cpp buffer size.
2015-08-20 20:55:55 -07:00
Serge Vakulenko
c2a86d50bb Merge pull request #59 from ibara/master
Update to emg 1.8.
2015-08-19 13:51:00 -07:00
Brian Callahan
d29b887f18 Update to emg 1.8 2015-08-12 22:09:14 -04:00
Serge Vakulenko
f71ce9fc62 Pinguino-micro: kernel configuration updated. 2015-07-23 20:50:56 -07:00
vak
0a1960c864 Makefiles updated to properly build and install pdc and libreadline. 2015-07-18 21:44:58 -07:00
Serge Vakulenko
e8cb02f3f7 Added a tiny implementation of readline library, based on linenoise sources.
See https://github.com/antirez/linenoise for details.

Implemented a routine atexit() in libc.

Pdc modified to use readline library.
2015-07-18 18:41:46 -07:00
Serge Vakulenko
0b8e8bd520 Added pdc: the programmers desktop calculator,
imported from https://github.com/daniel-thompson/pdc repository.
2015-07-18 16:30:40 -07:00
Serge Vakulenko
84247c1ba5 Merge pull request #57 from daniel-thompson/groff
Add groff (which provides nroff) to the list of required packages.
2015-07-04 20:10:15 -07:00
vak
0c3fffb6f6 Merge pull request #56: Fix build for gcc >= 5.0.
gcc 5.0 defaults to -std=gnu11 meaning code which relies on implicit
ints will no longer compile. Passing -std=gnu89 restores the default
but causes problems because the system headers are written in gnu11.
Using -idirafter instead of -nostdinc resolves all problems and should
be compatible with old GCC versions (and clang).
2015-07-04 19:59:43 -07:00
Sergey
66cadb02a1 Fix uudecode.0 path in manifest. 2015-07-04 19:21:33 -07:00
Sergey
be7c8f804e Merge branch 'sinetek-uuencode'. 2015-07-04 19:14:42 -07:00
Sergey
af1147432a Merge branch 'uuencode' of https://github.com/sinetek/retrobsd into sinetek-uuencode 2015-07-04 19:14:06 -07:00
Serge Vakulenko
a9b2a816ba Merge pull request #54 from sinetek/fold
fold - sync with FreeBSD 2.0
2015-07-04 19:01:29 -07:00
Sergey
0329394f94 Add fold utility from FreeBSD 2.0. 2015-07-04 19:00:20 -07:00
Sergey
1bf595e11a Create $DESTDIR/share/calendar directory on install.
Also, added .gitignore for all new components.
2015-07-04 18:46:48 -07:00
Serge Vakulenko
455d7aeffe Merge pull request #53 from sinetek/calendar
calendar - sync with FreeBSD 2.0.
2015-07-04 16:46:52 -07:00
Serge Vakulenko
694c364cb4 Merge pull request #52 from sinetek/md5
md5 - sync with FreeBSD 2.0.
2015-07-04 16:44:58 -07:00
Serge Vakulenko
75470f1ac5 Merge pull request #51 from sinetek/master
Pull in a few games.
2015-07-04 16:41:23 -07:00
Daniel Thompson
804d646577 Add groff (which provides nroff) to the list of required packages.
debootstraped images will not have this by default.
2015-07-04 20:18:17 +01:00
sinetek
9623203f20 uuencode/uudecode - sync with FreeBSD 2.0 2015-07-03 16:54:18 +07:00
sinetek
8d061f04e3 fold - sync with FreeBSD 2.0 2015-07-03 16:35:12 +07:00
sinetek
49550e87d8 calendar - sync with FreeBSD 2.0 2015-07-03 16:07:55 +07:00
sinetek
6504a97fd1 md5 - sync with FreeBSD 2.0 2015-07-03 15:05:54 +07:00
sinetek
b81bb822f3 pig - sync with FreeBSD 2.0 2015-07-03 13:41:24 +07:00
sinetek
236fc62bb3 pom - sync with FreeBSD 2.0 2015-07-03 13:25:25 +07:00
sinetek
3890f0a6aa caesar - sync with FreeBSD 2.0 2015-07-03 13:12:25 +07:00
sinetek
24e057667e name clash with posix function 2015-07-03 10:09:29 +07:00
Serge Vakulenko
0cf79d71cf Added missing exception handler at startup.S. 2015-06-26 20:24:35 -07:00
Serge Vakulenko
229b664f35 Added kernel configuration for Olimex Pinguino-Micro board (with mx795 chip). 2015-06-26 14:08:59 -07:00
Serge Vakulenko
4c343f1525 Fixed bug in assembler: incorrect reordering. 2015-06-25 22:11:54 -07:00
Serge Vakulenko
219e2c3071 Fixed bug in rogue: incorrect use of NL for cursor positioning. 2015-06-24 22:45:33 -07:00
Serge Vakulenko
9d39282ae9 All paths moved to path.h.
Cleanup in curses.h: removed reg definition.
All include files reformatted for 4-space indent.
2015-06-24 20:57:08 -07:00
Serge Vakulenko
81a8a8379d Deleted unused include files dbm.h and pcc.h.
Deleted library functions stty() and gtty().
PicoC built in mips16 mode, without floating point support.
2015-06-24 19:19:46 -07:00
Serge Vakulenko
ea7c1415d7 Fixed declarations in include/time.h file.
Deleted unused file include/stab.h and reloc utility.
2015-06-24 17:45:47 -07:00
Serge Vakulenko
d1f1e614f0 Kernel sources reformated with 4 space indent, no tabs.
Unused file include/trace.h deleted.
2015-06-23 19:00:24 -07:00
Sergey
d9b3b93176 Fixed stack overflow in fsck. 2015-06-23 00:29:20 -07:00
Serge Vakulenko
880e6639ac All manual pages added to manifest file. 2015-06-22 22:44:18 -07:00
Serge Vakulenko
f462811ae9 Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2015-06-22 18:03:55 -07:00
Serge Vakulenko
664cc16008 Use devcfg.c files local per target directory. 2015-06-22 18:02:18 -07:00
Sergey
84445ee1f7 Fixed bug in fsutil, occasionally resulted in unexpected fsck errors.
It was caused by garbage at end of file names.
2015-06-21 20:00:36 -07:00
Sergey
bca590d42b Fixed issue #44.
Removed unnesessary include <sys/types.h> from stdio.h, stdlib.h,
string.h, strings.h and time.h.
2015-06-21 18:59:02 -07:00
Sergey
aedd0138b3 Fixed issue #46: broken instruction reordering in assembler. 2015-06-21 17:56:15 -07:00
Sergey
b028c7bb4b Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2015-06-21 17:05:29 -07:00
Sergey
57b3ba3506 Fixed .equ syntax in assembler. 2015-06-21 17:05:04 -07:00
Sergey
75778ddd4b Added configuration for version 2014.05 of Mentor Sourcery CodeBench Lite toolchain. 2015-06-13 19:57:11 -07:00
Sergey
76832ba217 Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2015-06-06 23:44:30 -07:00
Sergey
48de8a19bb LED cube examples modified for fubarino. 2015-06-06 23:43:26 -07:00
vak
21ddf7fa5a Kconfig updated. 2015-06-02 00:16:15 -07:00
Serge Vakulenko
1a5e0e40d9 Merge branch 'master' into kconfig. 2015-06-01 21:46:06 -07:00
Serge Vakulenko
428764c187 SD diag utility moved to tools.
Makefile for Retro 1 kernel modified to get rid of file drivers.mk.
2015-06-01 21:43:57 -07:00
Serge Vakulenko
ce8371152f Kconfig: fixed function declarations. 2015-06-01 19:48:56 -07:00
Serge Vakulenko
47988903ae Kconfig is able to parse max32 configuration script. 2015-06-01 19:14:27 -07:00
Serge Vakulenko
31caa114fe Kconfig: all outdated stuff removed. 2015-06-01 18:33:49 -07:00
Serge Vakulenko
ff81751188 Kconfig reindented to 4 spaces. 2015-06-01 17:58:14 -07:00
Serge Vakulenko
b72cfc52f9 Kconfig compiled clean. 2015-06-01 17:35:25 -07:00
Serge Vakulenko
c4e86a1a12 Sources of kernel config utility imported from LiteBSD. 2015-06-01 17:19:20 -07:00
Sergey
5f4ecde705 Fixed bug in cdevname(). 2015-05-30 19:26:12 -07:00
Sergey
f3ee6644b2 Create /var/cron directory at build time. 2015-05-30 19:07:40 -07:00
Sergey
6b3455956a Create all devices at build time. Don't call devupdate from /etc/rc
before fs check - it can ruin the filesysem.
2015-05-30 18:54:50 -07:00
Sergey
e08e51f1b9 Use permanent allocation of major indexes for character devices. 2015-05-30 18:28:22 -07:00
Sergey
a234dfc7dc Uart driver: on close, wait for output queue to drain. 2015-05-30 16:56:03 -07:00
Serge Vakulenko
f08aabff03 Merge pull request #48 from alexfru/master
fix libicache: sign-extend the immediate in SLTIU.
2015-05-30 15:31:48 -07:00
Alexey Frunze
ea88242733 Merge remote-tracking branch 'upstream/master' 2015-05-29 22:46:46 -07:00
Serge Vakulenko
4e8398cbc9 Driver oc renamed to pwm. 2015-05-29 20:41:26 -07:00
Serge Vakulenko
33fbb51528 Fubarino and Picadillo boards: spi and oc drivers enabled. 2015-05-29 20:14:17 -07:00
Serge Vakulenko
76df048700 Dhrystone: print dmips with better precision. 2015-05-29 16:34:46 -07:00
Serge Vakulenko
d10b71a307 Dhrystone benchmark added to /share/examples. 2015-05-29 13:39:00 -07:00
Alexey Frunze
51f41b2cca fix libicache: sign-extend the immediate in SLTIU 2015-05-28 06:40:02 -07:00
Sergey
fcf0f3dad2 Fixed Makefile (led7) for sensors examples. 2015-05-24 00:10:05 -07:00
Serge Vakulenko
e949850567 Merge pull request #47 from alexfru/master
Smaller C: Improve initialization of variables
2015-05-23 01:50:17 -07:00
Alexey Frunze
3afa8e5979 Smaller C: Improve initialization of variables
- throw away data of string literals inside sizeof, e.g.
    sizeof "a"
    sizeof("a"+1)
- support minimally and inconsistently bracketed (sic)
  initialization, e.g.:
    int y[4][3] = { 1, 3, 5, 2, 4, 6, 3, 5, 7 };
    struct { int a[3], b; } w[] = { { 1 }, 2 };
- scalar initializers can be optionally enclosed in
  braces, e.g.:
    int i1 = { 1 };
2015-05-23 01:15:52 -07:00
Serge Vakulenko
976d84d56d Merge pull request #45 from alexfru/master
Smaller C improvements.
2015-05-19 20:50:40 -07:00
Serge Vakulenko
d5599ae63a Led6 example fixed. 2015-05-19 20:47:30 -07:00
Serge Vakulenko
0c22adf6bf Added example for 6-digit LCD display. 2015-05-19 17:35:41 -07:00
Sergey
7590783d92 Added demos for LED cube 8x8x8. 2015-05-17 22:39:30 -07:00
Alexey Frunze
6144631bc5 Smaller C: Support structure passing/returning by value on MIPS 2015-05-17 15:28:37 -07:00
Alexey Frunze
4ea521eabf Smaller C improvements
- type specifiers may occur in any order
  (e.g. "unsigned short int" and "int short unsigned")

- use .rodata/.rdata section for string literals
- arbitrary length string literals (hooray!)
- better concatenation of adjacent string literals
  (now works even across preprocessor directives)

Support .bss section
- -nobss option in smlrc: use .data instead of .bss as before
- take advantage of .bss in smlrc (put a large array into it)

Remove dead/useless code

Remove useless/rarely used features/options:
-use-gp (MIPS)
-flat16/-flat32 (x86)
-seg16t (x86), -seg16 is now the default
-ctor-fxn

Add/change:
- use EXIT_FAILURE=1 instead of -1 in smlrc when aborting
  due to an error
2015-05-16 05:57:39 -07:00
Serge Vakulenko
352d23a073 Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2015-05-15 22:59:54 -07:00
Serge Vakulenko
c054a40805 Fixed bug in tetris. 2015-05-15 22:59:16 -07:00
Serge Vakulenko
23f426ded5 Tetris example modified for cc compatibility. 2015-05-15 22:22:44 -07:00
Serge Vakulenko
bf27d6d5c3 Added tetris and joystick examples. 2015-05-15 22:12:01 -07:00
Sergey
c40136c25d Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2015-05-14 22:52:27 -07:00
Serge Vakulenko
ea03a4bc98 ADM demo rewritten without curses.
Examples reorganized.
Added examples for 37-in-1 sensor kit (not complete yet).
2015-05-14 22:11:47 -07:00
Serge Vakulenko
581ab61262 Fixed bug in gpio driver: /dev/confX device not able to configure the pin mask. 2015-05-14 12:38:04 -07:00
Sergey
f2fe94f32d Register dump fixed. 2015-05-08 22:18:10 -07:00
Serge Vakulenko
ff4a186025 Merge pull request #43 from alexfru/master
Fix issue #40.
2015-04-26 00:22:10 -07:00
Alexey Frunze
d95f161319 Merge remote-tracking branch 'upstream/master' 2015-04-25 20:05:13 -07:00
alex
a20c02c11f Fix issue #40. Properly flush stdio's streams at exit. 2015-04-25 19:49:26 -07:00
Serge Vakulenko
e5e44bfb94 Merge pull request #42 from alexfru/master
Smaller C fixes.
2015-04-25 18:12:46 -07:00
alex
acd1b5da26 Merge branch 'master' of https://github.com/alexfru/retrobsd 2015-04-25 18:05:44 -07:00
alex
a4bdbd4662 Bugfixes
- properly sign-/zero-extend returned values, e.g. the following
function must return 255 and not -1:

unsigned char f(void) { return -1; }

- properly decay arrays on the left side of ->, e.g. the following must
compile:

{
  struct {char c;} s[1];
  s[0].c = 'a'; putchar(s[0].c);
  (s+0)->c = 'b'; putchar(s[0].c);
  (*s).c = 'c'; putchar(s[0].c);
  s->c = 'd'; putchar(s[0].c);
  putchar('\n');
}

Also:
- support structure passing/returning by value (x86 only)
2015-04-25 18:03:55 -07:00
alex
301d069a1a Bugfixes
- properly sign-/zero-extend returned values, e.g. the following
function must return 255 and not -1:

unsigned char f(void) { return -1; }

- properly decay arrays on the left side of ->, e.g. the following must
compile:

{
  struct {char c;} s[1];
  s[0].c = 'a'; putchar(s[0].c);
  (s+0)->c = 'b'; putchar(s[0].c);
  (*s).c = 'c'; putchar(s[0].c);
  s->c = 'd'; putchar(s[0].c);
  putchar('\n');
}
2015-04-25 17:54:17 -07:00
Sergey
9bbe938e48 At startup, set peripheral clock PBCLK as defined by busdiv option
in kernel configuration file.
2015-02-14 20:20:19 -08:00
Sergey
d5c97a9b19 Added bit definitions for OSCCON register.
File machdep.c reindented.
2015-02-14 17:57:48 -08:00
Sergey
0005e7d7bf Fixed bug in fsck: using bcopy() instead of structure assignment.
File exception.c converted to indent4 format.
2015-02-13 21:05:03 -08:00
Sergey
42665ba3b3 SPI bus driver simplified. 2015-02-13 19:48:32 -08:00
Sergey
942bdda5ed Diskspeed: added extra sync and timeout before each test. 2015-02-13 19:41:32 -08:00
Serge Vakulenko
5ce8a8cd33 Added diskspeed utility. 2015-02-12 19:27:59 -08:00
Serge Vakulenko
b3442f28f3 Finalize skel.h. 2015-02-05 19:12:50 -08:00
Serge Vakulenko
29c75b3f71 Skeleton driver completed. 2015-02-05 19:08:53 -08:00
Serge Vakulenko
9b9f6392dc Added a skeleton for character driver. 2015-02-05 19:05:59 -08:00
Serge Vakulenko
f5bbefc222 Fixed indenting in devsw.c. 2015-02-05 18:13:17 -08:00
Serge Vakulenko
7f5ad5d3f8 Using Max32 board with Arduino SD card shield as a default configuration. 2015-02-04 14:28:03 -08:00
Serge Vakulenko
df8f8eaf71 Directory sys/pic32/max32 removed: nobody is using this configuration,
as it required a nonstandard SD card connection.
2015-02-04 14:18:42 -08:00
Serge Vakulenko
f62f70c718 Max32-eth configuration: SD card speed reduced to 10MHz.
Now it works stable with MakerStudio SD card shield.
2015-02-02 22:26:19 -08:00
Serge Vakulenko
1916f8c9da New kernel configuration: chipKIT WF32 board with microSD card on 2.4" LCD TFT display shield.
WF32 board by itself already has a microSD socket.
It's useless for RetroBSD though, as it is not connected to any
of available SPI ports (must use GPIO instead).

Fortunately, a cheap shield is widely available, which adds a microSD slot
connected to SPI2 pins.
2015-01-28 19:14:41 -08:00
Serge Vakulenko
d8269d1996 No more pause on tty output in case of clist overflow. 2015-01-20 18:09:13 -08:00
Serge Vakulenko
8e228dde62 Fixed bug in fsutil: incorrect positioning of partition superblock. 2015-01-06 19:47:31 -08:00
Serge Vakulenko
bae12383a0 Fixed build issues on Linux x86-64. 2015-01-06 19:36:49 -08:00
Serge Vakulenko
8e2c046406 Merge pull request #41 from alexfru/master
SmallerC: generate smaller & faster code; bugfixes
2014-12-29 20:06:10 -08:00
alex
dad5247184 Merge branch 'master' of https://github.com/alexfru/retrobsd 2014-12-29 16:36:58 -08:00
alex
b1f67fbca0 SmallerC: generate smaller & faster code; bugfixes
Improvements:
- use registers more efficiently
- eliminate some register copies and stack manipulations
- promote left operands to right immediate operands
- improve simple assignments to auto/static vars
- use bltz, blez, bgtz, bgez
- change mul/divu (by powers of 2) to sll/srl/and
- use seb, seh for sign extension instead of sll/sra
- overall generate a bit tighter, faster and more readable asm code

Fixes:
- >>= should be unsigned when the left operand is unsigned int.
The right operand isn't important here.
- very subtle bug in e.g. void f(){int a; &a+1;/*wrong value of &a+1*/}

Other:
- include stdarg.c and skeleton.c in /share/example/Makefile
2014-12-29 16:28:56 -08:00
Serge Vakulenko
f76ab8417c Merge pull request #39 from alexfru/master
Smaller C: Fix >>=
2014-12-13 01:19:36 -08:00
Alexey Frunze
3bb914c8b4 Fix >>=
>>= should be unsigned when the left operand is unsigned int. The right
operand isn't important here.
2014-12-13 01:06:53 -08:00
Serge Vakulenko
8b099bcf76 Merge pull request #38 from alexfru/master
Correct sd card image name.
2014-12-07 21:58:35 -08:00
Alexey Frunze
2fc41d34cf Correct sd card image name. 2014-12-07 21:51:06 -08:00
Serge Vakulenko
2301571ecb Merge pull request #37 from alexfru/master
Smaller C fixes and improvements.
2014-12-06 16:38:56 -08:00
alex
00269e9387 Smaller C fixes and improvements:
- move va_list type detection under #ifdef as it's rarely needed anyway
- allow up to 254 characters in a string literal
- generate a warning when an integer is passed instead of a pointer (and
vice versa) as a function parameter (pass -Wall for this)
- when printing an unexpected token, print identifier tokens instead of
'<tokIdent>'
- fix: allow most control characters inside '' and ""
- fix handling of -I<path> and -SI<path>
- switch() now supports Duff's device
- for() now supports declarations in its first clause as in C99/C++
2014-12-06 16:18:17 -08:00
Serge Vakulenko
687695d0db Fixed missing .profile at top level. 2014-10-23 19:08:11 -07:00
Serge Vakulenko
0aa5e1c462 README updated. 2014-10-21 11:28:22 -07:00
Serge Vakulenko
3a7cde7974 Merge pull request #36 from alexfru/master
Smaller C: Fix MIPS code generation for -= and postfix --. Also convert most of Small C sample programs to Smaller C.
2014-10-21 00:16:19 -07:00
alex
f57cc446b0 Remove no longer applicable comment. 2014-10-19 00:53:29 -07:00
alex
1a55933faf Merge branch 'master' of https://github.com/alexfru/retrobsd 2014-10-19 00:25:23 -07:00
alex
b18ce0aa87 Fix MIPS code generation for -= and postfix --.
Also convert most of Small C sample programs to Smaller C.
2014-10-19 00:22:44 -07:00
alex
5bbf8d4e73 Fix MIPS code generation for -= and postfix --.
Convert most of Small C sample programs to Smaller C.
2014-10-19 00:13:00 -07:00
Sergey
7aa774702b Fubarino configuration modified to use Arduino-compatible bootloader. 2014-10-04 14:30:21 -07:00
Sergey
64430a0f91 Added comfiguration for Majenko SDXL board.
DIP and Pinguino-micro boards removed - nobody uses these.
Deleted unused linker scripts.
2014-10-04 13:57:03 -07:00
Serge Vakulenko
d5e30d7b79 Fixed help message for fsutil. 2014-09-26 21:05:27 -07:00
Serge Vakulenko
a8d9b3d01f Makefiles updated for man sources. 2014-09-25 19:31:55 -07:00
Serge Vakulenko
ebd35d772f Fixed bug in 'make installfs'. 2014-09-25 18:09:06 -07:00
Serge Vakulenko
c4da2137e1 Added man sources from 2.11bsd tape. 2014-09-25 17:14:51 -07:00
Serge Vakulenko
c42133cdff Fixed newlines in crib game. 2014-09-25 13:44:51 -07:00
Sergey
dc66e6fdda Fsutil enhanced to create and handle partitions. 2014-09-20 18:54:13 -07:00
Serge Vakulenko
f58c7a7426 Added missing files for atc, boggle, btlgammon, cribbage. 2014-09-17 13:54:28 -07:00
Serge Vakulenko
5c4309942a Merge branch 'games'. 2014-09-17 13:21:59 -07:00
Serge Vakulenko
e557c88b1e Added manual for atc game.
Cribbage manuals installed.
2014-09-17 13:00:06 -07:00
Serge Vakulenko
850797db2e Fixed snake game.
Fixed newline bug in libcurses.

File /etc/termcap replaced by small version. Five TERM types supported:
ansi - simple generic display;
xterm - common for most modern terminal emulators;
linux - for Linux console;
cons25 - for BSD console;
vt100 - for DEC VT100 terminal emulators.

Terminal type xterm set by default.
2014-09-15 20:40:04 -07:00
Serge Vakulenko
cae7db41ca Snake fixed. 2014-09-15 14:24:17 -07:00
Serge Vakulenko
808dfaf6ef Ported snake game. 2014-09-15 12:28:43 -07:00
Sergey
d3d48970e3 Some progress with snake game. 2014-09-14 23:19:06 -07:00
Sergey
93d95abc69 Fixed warning in fsutil. 2014-09-13 15:17:30 -07:00
Serge Vakulenko
c5ac22d17f Ported robots game. 2014-09-12 13:32:16 -07:00
Serge Vakulenko
e7b77dadc3 Ported quiz game. 2014-09-12 12:03:11 -07:00
Serge Vakulenko
2ea9e02ba5 Monop game done. 2014-09-10 20:48:05 -07:00
Serge Vakulenko
d9d91365c0 Fixed warning in mille. 2014-09-10 20:09:59 -07:00
Serge Vakulenko
2da083e9bd Some progress on 'monop' game. 2014-09-08 21:36:15 -07:00
Serge Vakulenko
e4e9ff1ef4 Ported mille game. 2014-09-08 19:19:18 -07:00
Serge Vakulenko
aecac2f5d7 Ported hangman. 2014-09-08 18:07:59 -07:00
Serge Vakulenko
8886a00340 Ported fortune. 2014-09-08 12:30:17 -07:00
Serge Vakulenko
25bcc79a69 Merge branch 'master' into games.
Conflicts:
	Makefile
2014-09-08 11:31:12 -07:00
Serge Vakulenko
8d55f87ab8 Fsutil: dynamically allocate data structure for file i/o. 2014-09-04 19:29:18 -07:00
Matt Jenkins
9adca14b87 Added hx8357 TFT driver for PICadillo 2014-08-30 21:17:16 +01:00
Matt Jenkins
83a999be0a Added definitions for picadillo, and spi sram device 2014-08-27 23:13:26 +01:00
Sergey
1462eeb400 Using manifest files to create root and user filesystems. 2014-08-03 15:53:53 -07:00
Serge Vakulenko
d42bfdc7b9 Fsutil: can read manifest files.
Added a manifest for root filesystem.
2014-08-01 21:23:38 -07:00
Serge Vakulenko
1cdf42ef94 Fsutil: inode API simplified. 2014-08-01 18:17:38 -07:00
Serge Vakulenko
8f4aad27f9 Fsutil: able to create filesystem contents from manifest. 2014-08-01 17:49:59 -07:00
Serge Vakulenko
cb4ca7f73a Fsutuil: move manifest routines to a separate file. 2014-08-01 14:29:22 -07:00
Serge Vakulenko
b44cab756f Fsutil: new option --scan to create manifest from directory contents. 2014-07-31 20:55:42 -07:00
Serge Vakulenko
c2b3647d5e Fsutil: sources reformatted to 4-space indents. 2014-07-31 18:37:15 -07:00
Serge Vakulenko
4d8233582a Fsutil: added --manifest option. 2014-07-31 18:16:39 -07:00
Serge Vakulenko
eb1fb36b6b Fsutil library: use names for inode ops. 2014-07-31 17:46:24 -07:00
Sergey
2293493bfd Fixed bugs in fsutil. 2014-07-20 17:23:57 -07:00
Sergey
61ce169328 Fsutil mount complete. 2014-07-20 16:57:36 -07:00
Sergey
173efb822d Fsutil mount: symlink() and readlink() calls completed. 2014-07-19 15:06:55 -07:00
Serge Vakulenko
21babaf947 Fsutil mount: added rename and mknod calls. 2014-07-18 19:07:51 -07:00
Serge Vakulenko
3a789348da Fsutol mount: fixed rmdir call. 2014-07-18 17:41:08 -07:00
Serge Vakulenko
d6e558bea0 Fsutil mount: added truncate, mkdir, rmdir, link and unlink calls. 2014-07-18 00:13:27 -07:00
Serge Vakulenko
847e2bff77 Fsutil: allow truncate to arbitrary length. 2014-07-17 21:31:49 -07:00
Serge Vakulenko
08c79d7fec Fsutil --mount can read and write files. 2014-07-17 20:16:25 -07:00
Serge Vakulenko
0cef044377 Fsutil: added option -m to mount the filesystem via FUSE. 2014-07-16 20:31:03 -07:00
Serge Vakulenko
61c7c690b9 Merge pull request #33 from ibara/master
Emg updated to version 1.7.
2014-07-11 12:17:26 -07:00
Brian Callahan
294ccae3be emg 1.7 2014-07-10 18:11:43 -04:00
Serge Vakulenko
1c4e562363 Added kernel configuration for PICadillo-35T board. 2014-06-23 22:15:51 -07:00
Serge Vakulenko
09b50bf614 Merge pull request #31 from ibara/master
Update emg man page.
2014-06-18 10:59:57 -07:00
Serge Vakulenko
8439672624 Merge pull request #32 from jturner/fix-build
Fix build after aout reorganization.
2014-06-18 10:58:32 -07:00
James Turner
b6e105c87b Fix build after aout reorganization 2014-06-18 13:45:24 -04:00
Brian Callahan
70b8d93b21 Update emg man page. 2014-06-17 08:43:13 -04:00
Serge Vakulenko
5fa78e772b Moved aout sources to separate directory.
Fsutil and modff license changed to BSD style.
2014-06-04 11:46:33 -07:00
Serge Vakulenko
7b1bf93d3a Merge pull request #30 from ibara/master
Changes for emg 1.6 merged.
2014-05-30 21:01:53 -07:00
Brian Callahan
04208ea903 Remove unusued variable... put this down and walk away until tomorrow. 2014-05-29 18:20:55 -04:00
Brian Callahan
e003436e91 Dumbest off-by-one ever... 2014-05-29 18:16:24 -04:00
Brian Callahan
29904aacd7 I should trust my instincts. I had this right the first time. 2014-05-29 18:03:39 -04:00
Brian Callahan
dbe51ae294 This is cleaner, prevent the percent from being greater than 100. 2014-05-29 15:06:16 -04:00
Brian Callahan
87489937bf Add PgUp and PgDn scrolling to emg, release this as emg 1.6
Make sure emg.keys is installed.
2014-05-29 14:31:58 -04:00
Brian Callahan
bbba8d6f95 Remove all hardcoded make commands, changing them to ${MAKE}.
This is a first step towards being able to build RetroBSD on *BSD.
2014-05-25 16:25:15 -04:00
Sergey
b3abe580bd Added emg editor from github.com/ibara/emg. 2014-05-24 19:37:02 -07:00
Serge Vakulenko
66ffc30ccd Kernel makefiles updated. 2014-05-23 11:33:58 -07:00
Serge Vakulenko
0b31486402 Added loadmax target to kernel Makefile.
Use "make loadmax" in sys/pic32/max32 directory to upload the kernel image
to chipKIT Max32 board.
2014-05-21 12:26:24 -07:00
Serge Vakulenko
5bd8f3a470 Fixed sd timeout in the simulator.
SD driver reformatted with 4 spaces per tab.
2014-05-16 20:44:53 -07:00
Serge Vakulenko
fa46b819f0 Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2014-05-16 18:01:00 -07:00
Serge Vakulenko
91468f005f Fixed build and simulator configuration for Explorer1 board. 2014-05-16 17:59:53 -07:00
Serge Vakulenko
e2cb851fbf Merge pull request #28 from alexfru/master
Update cpp to pcc 1.0.0's cpp
2014-05-14 22:39:59 -07:00
Alexey Frunze
e725ab2b44 Update cpp to pcc 1.0.0's cpp
Update the preprocessor to fix some of its bugs.
2014-05-14 02:49:38 -07:00
Sergey
a0d4e7f517 Initialization of interrupt controller simplified.. 2014-05-12 23:52:09 -07:00
Serge Vakulenko
dc1a7a5f25 Merge pull request #27 from alexfru/master
C compiler improvements
2014-05-10 00:15:24 -07:00
Alexey Frunze
17f417f519 C compiler improvements
Fix malloc(0) issue (#26) in cpp.
Reduce cpp size and allow for larger inputs.
Clean up unused variables in Smaller C.
2014-05-09 23:53:52 -07:00
Sergey
8423492f33 More games ported: boggle, btlgammon, cribbage.
Simulator modified to allow CR in UART output.
2014-05-09 23:39:23 -07:00
Sergey
8e8fc70ed5 Merge branch 'games' of https://github.com/RetroBSD/retrobsd into games 2014-05-09 21:01:09 -07:00
Sergey
d8305bc374 Added words file - needed for games. 2014-05-09 21:00:43 -07:00
Serge Vakulenko
8871099aab Assembler modified to support local common blocks. 2014-05-08 20:00:57 -07:00
Serge Vakulenko
6a2230d867 Fixed couple of issues in assembler:
(1) incorrect opcodes for bnez and beqz instructions;
(2) macro li simplified when low part of constant is zero.
2014-05-08 19:11:19 -07:00
Serge Vakulenko
688209e604 Using gcc 4.8.1 instead of 4.7.2. 2014-05-08 13:06:26 -07:00
Sergey
b238afb5b9 Fixed bug in stracesecmp left from a previous patch.
Also, a minor issue resolved in proc.h.
2014-05-07 22:33:45 -07:00
Serge Vakulenko
bca48c9a66 Fixed size_t comparison in memxxx and strxxx finctions. 2014-05-07 20:57:09 -07:00
Serge Vakulenko
2395d5a9fa Assembler mode ".set at" enabled by default. 2014-05-07 20:27:09 -07:00
Serge Vakulenko
60c7fe0fd3 Merge pull request #18 from RetroBSD/codesourcery
*.mk files modified for compatibility with Mentor Sourcery CodeBench Lite toolchain
2014-05-07 11:39:51 -07:00
Serge Vakulenko
4be5e54c38 Assembler and spi driver fixed for compatibility with latest gcc. 2014-05-07 11:15:56 -07:00
Serge Vakulenko
5e58ad0f3d Merge pull request #23 from alexfru/master
Smaller C: fixes, improvements
2014-05-07 00:28:08 -07:00
Serge Vakulenko
6ccaa1a940 Merge branch 'master' into codesourcery.
All Matt's advices applied.
2014-05-06 19:55:35 -07:00
Sergey
3c025a1e89 Fixed build errors/warnings for gcc 4.7.2. 2014-05-05 23:35:40 -07:00
Alexey Frunze
cdf8933448 Merge remote-tracking branch 'upstream/master' 2014-05-05 21:14:06 -07:00
Serge Vakulenko
058804256a Fixed bug in assembler: incorrect immediate in subu macro. 2014-05-05 20:17:31 -07:00
Serge Vakulenko
a0d072f271 Skeleton: copyright updated. 2014-05-05 12:00:20 -07:00
Serge Vakulenko
f40da13b35 C skeleton simplified. 2014-05-05 11:45:12 -07:00
Serge Vakulenko
19cf54c0c1 Copyright for skeleton updated. 2014-05-05 11:29:53 -07:00
Serge Vakulenko
ed92365a4c Added a skeleton of generic C program. 2014-05-05 11:19:42 -07:00
Serge Vakulenko
a433085324 Merge branch 'master' of https://github.com/RetroBSD/retrobsd 2014-05-05 11:16:30 -07:00
Serge Vakulenko
f39a1429bf Merge pull request #21 from RetroBSD/cc-use-smallerc
/bin/cc command modified to use SmallerC compiler by default (not LCC).
2014-05-05 11:16:06 -07:00
Alexey Frunze
06d027b4c5 Merge remote-tracking branch 'upstream/master' 2014-05-04 01:23:36 -07:00
Sergey
6f47acb2ae Fixed bug in assembler, introduced by previos patch.
(Negative offsets in LW/SW not recognized)
Also, modified stdlib.h for compatibility with SmallerC.
2014-05-03 23:56:57 -07:00
Alexey Frunze
a2bc88bdb6 fixes, improvements, __interrupt
Fixes/workarounds:
- octal escape sequence is to be terminated no later than after three
octal digits:
"\1011" is now parsed equivalently to "A1"
- workaround truncation of immediate operands to 16 bits in MIPS
instructions addi[u], subi[u], slti[u], andi, ori, xori in RetroBSD's as
(disabled since as is being fixed).

Improvements:
- warn on string literal truncation when initializing array of char
- generate trap/break-less form of MIPS div[u]

New:
- experimental support for __interrupt functions (x86/huge only)
2014-05-03 18:55:18 -07:00
Sergey
e0ba612250 Range check fixed in assembler. 2014-05-03 17:33:56 -07:00
Sergey
babef284ae Assembler: mode ".set at" required to enable wide immediates in 2-red macros. 2014-05-03 16:55:40 -07:00
Sergey
51a8fd3313 Assembler: added support for large constants for 2-reg variants (macros)
of 3-reg instructions (add, addu, and, or, slt, sltu, sub, subu, xor).
When mode ".set at" enabled, an additional LI instruction is inserted
sing $1 as a scratch register.
2014-05-03 16:34:19 -07:00
Sergey
f67b9db8b5 Merge branch 'master' into cc-use-smallerc 2014-05-03 01:31:06 -07:00
Sergey
777ad1471b Smlrc: option -v moved to target-dependent part.
Fixed bug in simulator: read from incorrect file descriptor when
the second SD card not configured.
2014-05-03 01:28:48 -07:00
Sergey
aff46df8dd Merge branch 'master' into cc-use-smallerc. 2014-05-03 00:37:37 -07:00
Serge Vakulenko
6f15f0ba23 Merge branch 'exec-elf' of https://github.com/RetroBSD/retrobsd 2014-05-02 22:04:16 -07:00
Serge Vakulenko
6f8e71c1b8 Include files modified for compatibility with SmallerC.
Fixed bug in C preprocessor: buffer size reduced to avoid allocation failure.
Added option -v for smlrc.
New example stdarg.c: a demo of function with variable arguments.
2014-05-02 22:00:30 -07:00
Serge Vakulenko
f105cb5bbd /bin/cc command modified to use SmallerC compiler by default (not LCC).
For LCC, please use /bin/lcc instead.

I believe SmallerC is mature enough to try to use it as a primary compiler.
System include files might need some changes (ifdefs) to adapt.
2014-05-01 10:41:41 -07:00
Matt Jenkins
037fc65e93 Merge pull request #19 from alexfru/master
Smaller C: Improve pointer initialization
2014-04-29 13:43:35 +01:00
Matt Jenkins
ce1f5ce4dc Improved congigsys option parser
Up until now, options have only been able to have one single word
(or string with no spaces) as their value.  This small patch improves
that and includes everything to either the end-of-line or # (for in-line
comments) as the parameter for the option.
2014-04-29 13:33:54 +01:00
Alexey Frunze
b652f52cb6 Smaller C: Improve pointer initialization
The following global/static pointer initialization should now work:

static char* p1 = "abc" + 1;
static char* p2 = "abc" - 1;
static char* p3 = 1 + "abc";
static int a333[3][3][3];
static int* pa333_111 = &a333[1][1][1];

Other seemingly (and in fact actually) functionality preserving changes
are only to reduce code size when self compiling for DOS using -seg16.
Improvements and fixes require space, sigh.
2014-04-26 15:53:41 -07:00
Serge Vakulenko
b98de3368e *.mk configuration files modified for compatibility with latest version
of Mentor Sourcery CodeBench Lite toolchain
(https://sourcery.mentor.com/GNUToolchain/release2641).
All detected issues fixed.
2014-04-24 21:06:37 -07:00
Serge Vakulenko
3a38f291a7 Merged kernel support for ELF executable format from karolina.lindqvist.
Now kernel can directly run executables generated by gcc.
2014-04-23 21:43:09 -07:00
Serge Vakulenko
3942e87cd1 Compiled atc game. Fixed include file for curses library. 2014-04-23 20:02:02 -07:00
1719 changed files with 287328 additions and 50490 deletions

7
.gitignore vendored
View File

@@ -24,7 +24,10 @@
*.dis
*.0
*.img
sdcard.rd
.profile
Makefile.user
#misc
*.log
*.txt

180
Makefile
View File

@@ -8,40 +8,13 @@
# The `make' will compile everything, including a kernel, utilities
# and a root filesystem image.
#
# Supported boards
#
MAX32 = sys/pic32/max32/MAX32
MAX32-ETH = sys/pic32/max32-eth/MAX32-ETH
UBW32 = sys/pic32/ubw32/UBW32
UBW32UART = sys/pic32/ubw32-uart/UBW32-UART
UBW32UARTSDRAM = sys/pic32/ubw32-uart-sdram/UBW32-UART-SDRAM
MAXIMITE = sys/pic32/maximite/MAXIMITE
MAXCOLOR = sys/pic32/maximite-color/MAXCOLOR
EXPLORER16 = sys/pic32/explorer16/EXPLORER16
STARTERKIT = sys/pic32/starter-kit/STARTER-KIT
DUINOMITE = sys/pic32/duinomite/DUINOMITE
DUINOMITEUART = sys/pic32/duinomite-uart/DUINOMITE-UART
DUINOMITEE = sys/pic32/duinomite-e/DUINOMITE-E
DUINOMITEEUART = sys/pic32/duinomite-e-uart/DUINOMITE-E-UART
PINGUINO = sys/pic32/pinguino-micro/PINGUINO-MICRO
DIP = sys/pic32/dip/DIP
BAREMETAL = sys/pic32/baremetal/BAREMETAL
RETROONE = sys/pic32/retroone/RETROONE
FUBARINO = sys/pic32/fubarino/FUBARINO
FUBARINOBIG = sys/pic32/fubarino/FUBARINO-UART2CONS-UART1-SRAMC
MMBMX7 = sys/pic32/mmb-mx7/MMB-MX7
# Select target board
TARGET ?= $(MAX32)
# Filesystem and swap sizes.
FS_KBYTES = 102400
U_KBYTES = 102400
SWAP_KBYTES = 2048
FS_MBYTES = 100
U_MBYTES = 100
SWAP_MBYTES = 2
# Set this to the device name for your SD card. With this
# enabled you can use "make installfs" to copy the filesys.img
# enabled you can use "make installfs" to copy the sdcard.img
# to the SD card.
#SDCARD = /dev/sdb
@@ -56,111 +29,29 @@ FSUTIL = tools/fsutil/fsutil
-include Makefile.user
TARGETDIR = $(shell dirname $(TARGET))
TARGETNAME = $(shell basename $(TARGET))
TOPSRC = $(shell pwd)
CONFIG = $(TOPSRC)/tools/configsys/config
#
# Filesystem contents.
#
BIN_FILES := $(wildcard bin/*)
SBIN_FILES := $(wildcard sbin/*)
GAMES_FILES := $(shell find games -type f ! -path '*/.*')
LIBEXEC_FILES := $(wildcard libexec/*)
LIB_FILES := lib/crt0.o lib/retroImage $(wildcard lib/*.a)
ETC_FILES = etc/rc etc/rc.local etc/ttys etc/gettytab etc/group \
etc/passwd etc/shadow etc/fstab etc/motd etc/shells \
etc/termcap etc/MAKEDEV etc/phones etc/remote
INC_FILES = $(wildcard include/*.h) \
$(wildcard include/sys/*.h) \
$(wildcard include/machine/*.h) \
$(wildcard include/smallc/*.h) \
$(wildcard include/smallc/sys/*.h) \
$(wildcard include/arpa/*.h)
SHARE_FILES = share/re.help share/example/Makefile \
share/example/ashello.S share/example/chello.c \
share/example/blkjack.bas share/example/hilow.bas \
share/example/stars.bas share/example/prime.scm \
share/example/fact.fth share/example/echo.S \
$(wildcard share/smallc/*)
MANFILES = share/man/ share/man/cat1/ share/man/cat2/ share/man/cat3/ \
share/man/cat4/ share/man/cat5/ share/man/cat6/ share/man/cat7/ \
share/man/cat8/ $(wildcard share/man/cat?/*)
ALLFILES = $(SBIN_FILES) $(ETC_FILES) $(BIN_FILES) $(LIB_FILES) $(LIBEXEC_FILES) \
$(INC_FILES) $(SHARE_FILES) $(GAMES_FILES) \
var/log/messages var/log/wtmp .profile
ALLDIRS = games/ sbin/ bin/ dev/ etc/ tmp/ lib/ libexec/ share/ include/ \
var/ u/ share/example/ share/misc/ share/smallc/ \
var/run/ var/log/ var/lock/ games/ games/lib/ include/sys/ \
include/machine/ include/arpa/ include/smallc/ \
include/smallc/sys/ share/misc/ share/smallc/ include/sys/ \
games/lib/
BDEVS = dev/rd0!b0:0 dev/rd0a!b0:1 dev/rd0b!b0:2 dev/rd0c!b0:3 dev/rd0d!b0:4
BDEVS += dev/rd1!b1:0 dev/rd1a!b1:1 dev/rd1b!b1:2 dev/rd1c!b1:3 dev/rd1d!b1:4
BDEVS += dev/rd2!b2:0 dev/rd2a!b2:1 dev/rd2b!b2:2 dev/rd2c!b2:3 dev/rd2d!b2:4
BDEVS += dev/rd3!b3:0 dev/rd3a!b3:1 dev/rd3b!b3:2 dev/rd3c!b3:3 dev/rd3d!b3:4
BDEVS += dev/swap!b4:64 dev/swap0!b4:0 dev/swap1!b4:1 dev/swap2!b4:2
D_CONSOLE = dev/console!c0:0
D_MEM = dev/mem!c1:0 dev/kmem!c1:1 dev/null!c1:2 dev/zero!c1:3
D_TTY = dev/tty!c2:0
D_FD = dev/stdin!c3:0 dev/stdout!c3:1 dev/stderr!c3:2
D_TEMP = dev/temp0!c4:0 dev/temp1!c4:1 dev/temp2!c4:2
U_DIRS = $(addsuffix /,$(shell find u -type d ! -path '*/.svn*'))
U_FILES = $(shell find u -type f ! -path '*/.svn/*')
#U_ALL = $(patsubst u/%,%,$(U_DIRS) $(U_FILES))
CDEVS = $(D_CONSOLE) $(D_MEM) $(D_TTY) $(D_FD) $(D_TEMP)
all: tools build kernel
all:
$(MAKE) -C tools
$(MAKE) -C lib
$(MAKE) -C src install
$(MAKE) kernel
$(MAKE) fs
fs: sdcard.rd
kernel: $(CONFIG)
$(MAKE) -C sys/pic32 all
.PHONY: tools
tools:
$(MAKE) -C tools
fs: sdcard.img
kernel: $(TARGETDIR)/Makefile
$(MAKE) -C $(TARGETDIR)
$(TARGETDIR)/Makefile: $(CONFIG) $(TARGETDIR)/$(TARGETNAME)
cd $(TARGETDIR) && ../../../tools/configsys/config $(TARGETNAME)
.PHONY: lib
lib:
$(MAKE) -C lib
build: tools lib
$(MAKE) -C src install
filesys.img: $(FSUTIL) $(ALLFILES)
.PHONY: sdcard.img
sdcard.img: $(FSUTIL) rootfs.manifest userfs.manifest
rm -f $@
$(FSUTIL) -n$(FS_KBYTES) $@
$(FSUTIL) -a $@ $(ALLDIRS)
$(FSUTIL) -a $@ $(CDEVS)
$(FSUTIL) -a $@ $(BDEVS)
$(FSUTIL) -a $@ $(ALLFILES)
$(FSUTIL) -a $@ $(MANFILES)
swap.img:
dd if=/dev/zero of=$@ bs=1k count=$(SWAP_KBYTES)
user.img: $(FSUTIL)
ifneq ($(U_KBYTES), 0)
rm -f $@
$(FSUTIL) -n$(U_KBYTES) $@
(cd u; find . -type d -exec ../$(FSUTIL) -a ../$@ '{}/' \;)
(cd u; find . -type f -exec ../$(FSUTIL) -a ../$@ '{}' \+)
endif
sdcard.rd: filesys.img swap.img user.img
ifneq ($(U_KBYTES), 0)
tools/mkrd/mkrd -out $@ -boot filesys.img -swap swap.img -fs user.img
else
tools/mkrd/mkrd -out $@ -boot filesys.img -swap swap.img
endif
$(FSUTIL) --repartition=fs=$(FS_MBYTES)M:swap=$(SWAP_MBYTES)M:fs=$(U_MBYTES)M $@
$(FSUTIL) --new --partition=1 --manifest=rootfs.manifest $@ .
# In case you need a separate /u partition,
# uncomment the following line.
# $(FSUTIL) --new --partition=3 --manifest=userfs.manifest $@ u
$(FSUTIL):
cd tools/fsutil; $(MAKE)
@@ -174,32 +65,27 @@ clean:
cleanall: clean
$(MAKE) -C lib clean
rm -f sys/pic32/*/unix.hex bin/* sbin/* games/[a-k]* games/[m-z]* libexec/* share/man/cat*/*
rm -f games/lib/adventure.dat
rm -f games/lib/cfscores
rm -f share/re.help
rm -f share/misc/more.help
rm -f sys/pic32/*/unix.hex bin/* sbin/* libexec/*
rm -f games/[a-k]* games/[m-z]* share/man/cat*/*
rm -f games/lib/adventure.dat games/lib/cfscores
rm -f share/re.help share/emg.keys share/misc/more.help
rm -f etc/termcap etc/remote etc/phones
rm -rf share/unixbench
rm -f games/lib/adventure.dat games/lib/cfscores share/re.help share/misc/more.help etc/termcap
rm -f tools/configsys/.depend
rm -f var/log/aculog
rm -rf var/lock
rm -f var/log/aculog sdcard.img
rm -rf var/lock share/unixbench
installfs: filesys.img
installfs:
ifdef SDCARD
sudo dd bs=32k if=sdcard.rd of=$(SDCARD)
@[ -f sdcard.img ] || $(MAKE) sdcard.img
sudo dd bs=32k if=sdcard.img of=$(SDCARD)
else
@echo "Error: No SDCARD defined."
@echo "Error: No SDCARD defined."
endif
# TODO: make it relative to Target
installflash:
sudo pic32prog sys/pic32/fubarino/unix.hex
installflash:
sudo pic32prog sys/pic32/fubarino/unix.hex
# TODO: make it relative to Target
installboot:
sudo pic32prog sys/pic32/fubarino/bootloader.hex
.profile: etc/root/dot.profile
cp etc/root/dot.profile .profile
installboot:
sudo pic32prog sys/pic32/fubarino/bootloader.hex

View File

@@ -15,49 +15,35 @@
## Supported hardware
* chipKIT Max32 board.
* Sparkfun UBW32 board.
* Fubarino SD board.
* Olimex Duinomite, Duinomite-Mini, Duinomite-Mega and Duinomite-eMega boards.
* Olimex Pinguino-Micro board with PIC32MX795F512H microcontroller.
* Maximite and Colour Maximite computers.
* Majenko SDXL board.
* 4D Systems Picadillo-35T board.
* MikroElektronika MultiMedia Board for PIC32MX7.
* chipKIT Max32 board with SD card shield.
* chipKIT WF32 board with 2.4" LCD TFT display shield.
* Sparkfun UBW32 board with SD card slot.
* Microchip Explorer 16 board, with PIC32 CAN-USB plug-in module and SD & MMC pictail.
* Microchip PIC32 USB or Ethernet Starter Kit, with I/O Expansion board and SD & MMC pictail.
* Olimex Duinomite, Duinomite-Mini and Duinomite-Mega boards.
* Olimex Pinguino-Micro board with PIC32MX795F512H microcontroller.
* eflightworks DIP board.
## Build
By default, the system is configured for the Max32 board.
To select another target board, edit a top-level user-specific Makefile called "Makefile.user"
and set a TARGET value:
To compile everything from sources, you'll need some packages installed, namely:
Berkeley YACC, GNU bison, flex, groff, ELF library and FUSE library.
Under Ubuntu, for example, you can do it by command:
```Makefile
TARGET = $(UBW32) # for the UBW32 board with USB console
TARGET = $(UBW32UART) # for the UBW32 board with UART console
TARGET = $(UBW32UARTSDRAM) # for the UBW32 boars with UART console and 8MB SRAM ramdisk
TARGET = $(MAXIMITE) # for the Maximite board
TARGET = $(MAXCOLOR) # for the Colour Maximite board
TARGET = $(EXPLORER16) # for the Explorer 16 board
TARGET = $(STARTERKIT) # for the PIC32 USB or Ethernet Starter Kit
TARGET = $(MAX32) # default
TARGET = $(MAX32-ETH) # for the chipKIT MAX32 board with Arduino Ethernet shield
TARGET = $(DUINOMITE) # for the Duinomite board with USB console
TARGET = $(DUINOMITEUART) # for the Duinomite board with UART console
TARGET = $(DUINOMITEE) # for the Duinomite E board with USB console
TARGET = $(DUINOMITEEUART) # for the Duinomite E board with UART console
TARGET = $(PINGUINO) # for the Pinguino-Micro board
TARGET = $(DIP) # for the DIP board
TARGET = $(BAREMETAL) # Bare PIC32 chip on a breakout board
TARGET = $(FUBARINO) # Fubarino SD board
TARGET = $(FUBARINOBIG) # Fubarino SD board with 8MB SRAM RAMDISK
TARGET = $(MMBMX7) # MMB MX7 board
```shell
$ sudo apt-get install bison byacc flex groff-base libelf-dev
```
You can also change a desired filesystem size and swap area size,
as required. Default is:
You can change a desired filesystem size and swap area size, as required.
Default is:
```Makefile
FS_KBYTES = 16384
SWAP_KBYTES = 2048
FS_MBYTES = 100
SWAP_MBYTES = 2
```
To compile the kernel and build a filesystem image, run:
@@ -65,7 +51,7 @@ To compile the kernel and build a filesystem image, run:
$ make
```
A resulting root filesystem image is in file `sdcard.rd`.
A resulting root filesystem image is in file `sdcard.img`.
A kernel is in file `unix.hex` in your target board subdirectory.
@@ -76,7 +62,7 @@ Win32DiskImager utility (https://launchpad.net/win32-image-writer/+download).
On Linux, run:
```shell
$ sudo dd if=sdcard.rd of=/dev/XYZ
$ sudo dd if=sdcard.img of=/dev/XYZ
```
Here `XYZ` is a device name of SD card, as recognized by Linux (sdb in my case).
@@ -88,11 +74,11 @@ Kernel image should be written to PIC32 flash memory. The procedure depends
on a board used.
#### Max32 board:
Use a pic32prog utility (http://code.google.com/p/pic32prog/)
and a USB cable to install a kernel:
```shell
$ cd sys/pic32/ubw32
$ AVRTOOLS=/Applications/Mpide.app/Contents/Resources/Java/hardware/tools/avr
$AVRTOOLS/bin/avrdude -C$AVRTOOLS/etc/avrdude.conf -c stk500v2 -p pic32 \
-P /dev/tty.usbserial-* -b 115200 -v -U flash:w:unix.hex:i
$ pic32prog -d /dev/ttyUSB0 sys/pic32/max32/unix.hex
```
Here you need to change AVRTOOLS path and tty name according to your system.
@@ -154,13 +140,3 @@ $ ./pic32
```
Configuration of simulated board is stored in file `pic32_max32.conf`.
## Build packages
For building under Ubuntu you need the following packages installed:
```shell
$ sudo apt-get install byacc libelf-dev
```

View File

@@ -1,7 +1,7 @@
DESTDIR = /usr/local/retrobsd
MACHINE = mips
CC = gcc
CC = gcc -m32
AS = $(CC) -x assembler-with-cpp
LD = ld

2
etc/.gitignore vendored
View File

@@ -1,3 +1,5 @@
localtime
phones
remote
termcap
termcap.full

View File

@@ -4,46 +4,14 @@
# All rights reserved. The Berkeley software License Agreement
# specifies the terms and conditions for redistribution.
#
# @(#)MAKEDEV 4.27.6 (2.11BSD) 1999/2/19
#
# Device "make" file. Valid arguments:
# std standard devices
# local configuration specific devices
# fd file descriptor driver
# Tapes:
# ht* unibus tu77 & te16
# tm* unibus tm11 & te10 emulations (e.g. Emulex tc-11)
# ts* unibus ts11
# tu* tmscp (tk50/tu81)
# std standard devices
# local configuration specific devices
# fd file descriptor driver
# Disks:
# br* unibus Eaton br1538 or br1711
# hk* unibus rk06 and rk07
# ra* unibus uda50 w/ ra??
# rk* unibus rk05
# rl* unibus rl01/rl02
# rx* unibus rx02
# si* unibus cdc 9766 w/ si 9500
# xp* unibus rm02/03/05, rp04/05/06, diva, eagle, cdc9766, fuji 160.
# Terminal multiplexors:
# dl* dl-11 units other than the console
# dz* unibus dz11 and dz32
# dh* unibus dh11 and emulations (e.g. Able dmax, Emulex cs-11)
# dmf* unibus dmf32
# dhu* unibus dhu11
# dmz* unibus dmz32
# dhv* qbus dhv11
# sd* flash cards SecureDigital
# Pseudo terminals:
# pty* set of 16 master and slave pseudo terminals
# Printers:
# lp* unibus lp11 parallel interface
# va* unibus varian parallel interface
# vp* unibus versatec parallel interface
# Call units:
# Special purpose devices:
# dr* unibus dr11
# ram* memory disk
# dn* dn11 dialer
# ingreslock Ingres lock driver.
# pty* set of 16 master and slave pseudo terminals
PATH=/etc:/sbin:/usr/sbin:/bin:/usr/bin
umask 77

View File

@@ -11,7 +11,6 @@ DESTDIR = /foobar
OWN = root
GRP = wheel
SUBDIR = root
FILES = crontab fstab gettytab group motd passwd \
rc rc.local shells syslog.conf ttys
@@ -19,8 +18,6 @@ all install depend lint tags:
clean:
rm -f *~
-for i in ${SUBDIR}; do \
(cd $$i; make DESTDIR=${DESTDIR} $@); done
distribution:
-@mkdir -p ${DESTDIR}/dev
@@ -75,5 +72,3 @@ distribution:
${DESTDIR}/usr/adm/savacct
install -c -o uucp -g daemon -m 600 /dev/null \
${DESTDIR}/usr/adm/aculog
-for i in ${SUBDIR}; do \
(cd $$i; make DESTDIR=${DESTDIR} distribution); done

View File

@@ -1,2 +1,2 @@
/dev/rd0a / ufs rw,async 1 1
#/dev/rd0c /u ufs rw,async 1 2
/dev/sd0a / ufs rw,async 1 1
#/dev/sd0c /u ufs rw,async 1 2

View File

@@ -16,7 +16,7 @@
# entries, and in cases where getty is called with no table name
#
default:\
:ap:im=\r\n\r\n2.11 BSD UNIX (%h) (%t)\r\n\r\r\n\r:sp#1200:
:ap:im=\r\n\r\nRetroBSD (%h) (%t)\r\n\r\r\n\r:sp#1200:
#
# Fixed speed entries

View File

@@ -1,8 +1,7 @@
root:5:0:1:The Man:/:/bin/sh
daemon:*:1:1:The devil himself:/:/bin/sh
root:5:0:1:The Man:/root:/bin/sh
daemon:*:1:1:The devil himself:/root:/bin/sh
sys:*:4:2:Operating System:/tmp:nologin
operator:*:2:5:System &:/usr/guest/operator:/bin/csh
bin:*:3:20:Binaries Commands and Source:/:/bin/csh
operator:*:2:5:System &:/u/operator:/bin/sh
bin:*:3:20:Binaries Commands and Source:/root:/bin/sh
nobody:*:32767:31:Nobody:/nonexistent:/bin/sh
uucp:*:66:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/sbin/uucico
ingres:*:39:74:INGRES Owner:/usr/ingres:/bin/csh
uucp:*:66:1:UNIX-to-UNIX Copy:/spool/uucppublic:/sbin/uucico

2
etc/rc
View File

@@ -3,8 +3,6 @@ HOME=/; export HOME
PATH=/bin:/sbin; export PATH
exec >/dev/console 2>&1
/sbin/devupdate
if test "$1" != "autoboot"; then
#
# Switch from single-user to multi-user mode.

View File

@@ -1,18 +0,0 @@
#
# DESTDIR is defined here to be something which does *NOT* exist - it must be
# specified on the command line when doing a "make DESTDIR=/mnt distribution".
# This is aimed at avoiding overwriting the system disk's /etc files.
DESTDIR = /foobar
OWN = root
GRP = wheel
all install depend lint tags:
distribution:
install -c -o ${OWN} -g ${GRP} -m 644 dot.cshrc ${DESTDIR}/.cshrc
install -c -o ${OWN} -g ${GRP} -m 644 dot.login ${DESTDIR}/.login
install -c -o ${OWN} -g ${GRP} -m 644 dot.profile ${DESTDIR}/.profile
clean:
rm -f *~

View File

@@ -1,14 +0,0 @@
set history=30
set path=(/bin /sbin /etc /usr/sbin /usr/ucb /usr/bin /usr/new /usr/local)
if ($?prompt) then
set prompt="\!% "
endif
set filec
set mail=( 0 /usr/spool/mail/$USER )
set cdpath=( ~ /usr/spool/mqueue)
set prompt="\!% root--> "
alias mail /usr/ucb/Mail
alias pwd 'echo $cwd'
alias h history
alias q5 'tail -5 /usr/spool/mqueue/syslog'

View File

@@ -1,14 +0,0 @@
unset noglob
set path=(/bin /etc /sbin /usr/sbin /usr/ucb /usr/bin /usr/local /usr/new)
umask 26
stty dec erase ^H kill ^U eof ^D
set prompt="[\!] root--> "
if ( "$TERM" == dialup || "$TERM" == network) then
setenv TERM vt100
echo -n "Terminal ($TERM)? "
set argv = "$<"
if ( "$argv" != '' ) setenv TERM "$argv"
endif
biff y

View File

@@ -1,8 +0,0 @@
echo 'erase, kill ^U, intr ^C'
stty dec
stty erase
PATH=/bin:/sbin:/usr/sbin:/etc:/usr/ucb:/usr/bin:/usr/new
export PATH
HOME=/
export HOME
export TERM

View File

@@ -1,8 +1,7 @@
root:ro46DZg1ViGBs:0:1:The Man:/:/bin/sh
daemon:*:1:1:The devil himself:/:/bin/sh
root:ro46DZg1ViGBs:0:1:The Man:/root:/bin/sh
daemon:*:1:1:The devil himself:/root:/bin/sh
sys:*:4:2:Operating System:/tmp:nologin
operator:*:2:5:System &:/usr/guest/operator:/bin/csh
bin:*:3:20:Binaries Commands and Source:/:/bin/csh
operator:*:2:5:System &:/u/operator:/bin/sh
bin:*:3:20:Binaries Commands and Source:/root:/bin/sh
nobody:*:32767:31:Nobody:/nonexistent:/bin/sh
uucp:*:66:1:UNIX-to-UNIX Copy:/usr/spool/uucppublic:/usr/sbin/uucico
ingres:*:39:74:INGRES Owner:/usr/ingres:/bin/csh
uucp:*:66:1:UNIX-to-UNIX Copy:/spool/uucppublic:/sbin/uucico

View File

@@ -1,16 +1,16 @@
#
# name getty type status comments
#
console "/libexec/getty std.default" vt100 on secure #special
console "/libexec/getty std.default" xterm on secure #special
# Enable some of these for additional logins. Do NOT enable the same one as the
# console port, or strange things will happen. You can turn off the console port
# if you would rather use the getty on the real tty - it's up to you.
tty0 "/libexec/getty std.default" vt100 off secure
tty1 "/libexec/getty std.default" vt100 off secure
tty2 "/libexec/getty std.default" vt100 off secure
tty3 "/libexec/getty std.default" vt100 off secure
tty4 "/libexec/getty std.default" vt100 off secure
tty5 "/libexec/getty std.default" vt100 off secure
ttyUSB0 "/libexec/getty std.default" vt100 off secure
tty0 "/libexec/getty std.default" xterm off secure
tty1 "/libexec/getty std.default" xterm off secure
tty2 "/libexec/getty std.default" xterm off secure
tty3 "/libexec/getty std.default" xterm off secure
tty4 "/libexec/getty std.default" xterm off secure
tty5 "/libexec/getty std.default" xterm off secure
ttyUSB0 "/libexec/getty std.default" xterm off secure

1
include/.gitignore vendored Normal file
View File

@@ -0,0 +1 @@
readline

View File

@@ -12,8 +12,8 @@
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
@@ -30,34 +30,12 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef _AOUT_H_
#define _AOUT_H_
#ifndef _AOUT_H_
#define _AOUT_H_
#include <sys/exec.h>
#include <sys/exec_aout.h>
/* Valid magic number check. */
#define N_BADMAG(x) (((x).a_magic) != RMAGIC && \
((x).a_magic) != OMAGIC && \
((x).a_magic) != NMAGIC)
/* Text segment offset. */
#define N_TXTOFF(x) sizeof(struct exec)
/* Data segment offset. */
#define N_DATOFF(x) (N_TXTOFF(x) + (x).a_text)
/* Text relocation table offset. */
#define N_TRELOFF(x) (N_DATOFF(x) + (x).a_data)
/* Data relocation table offset. */
#define N_DRELOFF(x) (N_TRELOFF(x) + (x).a_reltext)
/* Symbol table offset. */
#define N_SYMOFF(x) ((x).a_magic == RMAGIC ? \
N_DRELOFF(x) + (x).a_reldata : \
N_DATOFF(x) + (x).a_data)
#define _AOUT_INCLUDE_
#define _AOUT_INCLUDE_
#include <nlist.h>
/* Relocations */
@@ -87,4 +65,4 @@ struct reloc {
* for RIGH16 and RIGH16S */
};
#endif /* !_AOUT_H_ */
#endif /* !_AOUT_H_ */

View File

@@ -15,8 +15,8 @@
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
@@ -35,24 +35,24 @@
*/
#ifndef _AR_H_
#define _AR_H_
#define _AR_H_
#define ARMAG "!<arch>\n" /* ar "magic number" */
#define SARMAG 8 /* strlen(ARMAG); */
#define ARMAG "!<arch>\n" /* ar "magic number" */
#define SARMAG 8 /* strlen(ARMAG); */
#define AR_EFMT1 "#1/" /* extended format #1 */
#define AR_EFMT1 "#1/" /* extended format #1 */
struct ar_hdr {
char ar_name[16]; /* name */
char ar_date[12]; /* modification time */
char ar_uid[6]; /* user id */
char ar_gid[6]; /* group id */
char ar_mode[8]; /* octal file permissions */
char ar_size[10]; /* size in bytes */
#define ARFMAG "`\n"
char ar_fmag[2]; /* consistency check */
char ar_name[16]; /* name */
char ar_date[12]; /* modification time */
char ar_uid[6]; /* user id */
char ar_gid[6]; /* group id */
char ar_mode[8]; /* octal file permissions */
char ar_size[10]; /* size in bytes */
#define ARFMAG "`\n"
char ar_fmag[2]; /* consistency check */
};
#define ARHDRSZ 60
#define ARHDRSZ 60
#endif /* !_AR_H_ */

View File

@@ -19,11 +19,11 @@
* External definitions for
* functions in inet(3N)
*/
struct in_addr;
struct in_addr;
unsigned long inet_addr (char *);
char *inet_ntoa (struct in_addr);
struct in_addr inet_makeaddr (long, long);
char *inet_ntoa (struct in_addr);
struct in_addr inet_makeaddr (long, long);
unsigned long inet_network (char *);
unsigned long inet_netof (struct in_addr);
unsigned long inet_lnaof (struct in_addr);

View File

@@ -1,8 +1,6 @@
/* assert.h 4.2 85/01/21 */
# ifndef NDEBUG
# define _assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__);exit(1);}}
# define assert(ex) _assert(ex)
# define _assert(ex) {if (!(ex)){fprintf(stderr,"Assertion failed: file \"%s\", line %d\n", __FILE__, __LINE__);exit(1);}}
# define assert(ex) _assert(ex)
# else
# define _assert(ex)
# define assert(ex)

View File

@@ -1,28 +1,26 @@
/* ctype.h 4.2 85/09/04 */
#define _U 01
#define _L 02
#define _N 04
#define _S 010
#define _P 020
#define _C 040
#define _X 0100
#define _B 0200
#define _U 01
#define _L 02
#define _N 04
#define _S 010
#define _P 020
#define _C 040
#define _X 0100
#define _B 0200
extern char _ctype_[];
extern char _ctype_[];
#define isalpha(c) ((_ctype_+1)[(int)(c)]&(_U|_L))
#define isupper(c) ((_ctype_+1)[(int)(c)]&_U)
#define islower(c) ((_ctype_+1)[(int)(c)]&_L)
#define isdigit(c) ((_ctype_+1)[(int)(c)]&_N)
#define isxdigit(c) ((_ctype_+1)[(int)(c)]&(_N|_X))
#define isspace(c) ((_ctype_+1)[(int)(c)]&_S)
#define ispunct(c) ((_ctype_+1)[(int)(c)]&_P)
#define isalnum(c) ((_ctype_+1)[(int)(c)]&(_U|_L|_N))
#define isprint(c) ((_ctype_+1)[(int)(c)]&(_P|_U|_L|_N|_B))
#define isgraph(c) ((_ctype_+1)[(int)(c)]&(_P|_U|_L|_N))
#define iscntrl(c) ((_ctype_+1)[(int)(c)]&_C)
#define isascii(c) ((unsigned)(c)<=0177)
#define toupper(c) ((c)-'a'+'A')
#define tolower(c) ((c)-'A'+'a')
#define toascii(c) ((c)&0177)
#define isalpha(c) ((_ctype_+1)[(int)(c)]&(_U|_L))
#define isupper(c) ((_ctype_+1)[(int)(c)]&_U)
#define islower(c) ((_ctype_+1)[(int)(c)]&_L)
#define isdigit(c) ((_ctype_+1)[(int)(c)]&_N)
#define isxdigit(c) ((_ctype_+1)[(int)(c)]&(_N|_X))
#define isspace(c) ((_ctype_+1)[(int)(c)]&_S)
#define ispunct(c) ((_ctype_+1)[(int)(c)]&_P)
#define isalnum(c) ((_ctype_+1)[(int)(c)]&(_U|_L|_N))
#define isprint(c) ((_ctype_+1)[(int)(c)]&(_P|_U|_L|_N|_B))
#define isgraph(c) ((_ctype_+1)[(int)(c)]&(_P|_U|_L|_N))
#define iscntrl(c) ((_ctype_+1)[(int)(c)]&_C)
#define isascii(c) ((unsigned)(c)<=0177)
#define toupper(c) ((c)-'a'+'A')
#define tolower(c) ((c)-'A'+'a')
#define toascii(c) ((c)&0177)

View File

@@ -9,155 +9,152 @@
#include <sgtty.h>
#include <term.h>
#define bool int
#define reg register
#define bool int
#define TRUE (1)
#define FALSE (0)
#define ERR (0)
#define OK (1)
#define TRUE (1)
#define FALSE (0)
#define ERR (0)
#define OK (1)
#define _ENDLINE 001
#define _FULLWIN 002
#define _SCROLLWIN 004
#define _FLUSH 010
#define _FULLLINE 020
#define _IDLINE 040
#define _STANDOUT 0200
#define _NOCHANGE -1
#define _ENDLINE 001
#define _FULLWIN 002
#define _SCROLLWIN 004
#define _FLUSH 010
#define _FULLLINE 020
#define _IDLINE 040
#define _STANDOUT 0200
#define _NOCHANGE -1
#define _puts(s) tputs(s, 0, _putchar)
#define _puts(s) tputs(s, 0, _putchar)
typedef struct sgttyb SGTTY;
typedef struct sgttyb SGTTY;
/*
* Capabilities from termcap
*/
extern bool AM, BS, CA, DA, DB, EO, HC, HZ, IN, MI, MS, NC, NS, OS, UL,
XB, XN, XT, XS, XX;
extern char *AL, *BC, *BT, *CD, *CE, *CL, *CM, *CR, *CS, *DC, *DL,
*DM, *DO, *ED, *EI, *K0, *K1, *K2, *K3, *K4, *K5, *K6,
*K7, *K8, *K9, *HO, *IC, *IM, *IP, *KD, *KE, *KH, *KL,
*KR, *KS, *KU, *LL, *MA, *ND, *NL, *RC, *SC, *SE, *SF,
*SO, *SR, *TA, *TE, *TI, *UC, *UE, *UP, *US, *VB, *VS,
*VE, *AL_PARM, *DL_PARM, *UP_PARM, *DOWN_PARM,
*LEFT_PARM, *RIGHT_PARM;
extern char PC;
extern bool AM, BS, CA, DA, DB, EO, HC, HZ, IN, MI, MS, NC, NS, OS, UL,
XB, XN, XT, XS, XX;
extern char *AL, *BC, *BT, *CD, *CE, *CL, *CM, *CR, *CS, *DC, *DL,
*DM, *DO, *ED, *EI, *K0, *K1, *K2, *K3, *K4, *K5, *K6,
*K7, *K8, *K9, *HO, *IC, *IM, *IP, *KD, *KE, *KH, *KL,
*KR, *KS, *KU, *LL, *MA, *ND, *NL, *RC, *SC, *SE, *SF,
*SO, *SR, *TA, *TE, *TI, *UC, *UE, *UP, *US, *VB, *VS,
*VE, *AL_PARM, *DL_PARM, *UP_PARM, *DOWN_PARM,
*LEFT_PARM, *RIGHT_PARM;
extern char PC;
/*
* From the tty modes...
*/
extern bool GT, NONL, UPPERCASE, normtty, _pfast;
extern bool GT, NONL, UPPERCASE, normtty, _pfast;
struct _win_st {
short _cury, _curx;
short _maxy, _maxx;
short _begy, _begx;
short _flags;
short _ch_off;
bool _clear;
bool _leave;
bool _scroll;
char **_y;
short *_firstch;
short *_lastch;
struct _win_st *_nextp, *_orig;
short _cury, _curx;
short _maxy, _maxx;
short _begy, _begx;
short _flags;
short _ch_off;
bool _clear;
bool _leave;
bool _scroll;
char **_y;
short *_firstch;
short *_lastch;
struct _win_st *_nextp, *_orig;
};
#define WINDOW struct _win_st
#define WINDOW struct _win_st
extern bool My_term, _echoit, _rawmode, _endwin;
extern bool My_term, _echoit, _rawmode, _endwin;
extern char *Def_term, ttytype[];
extern char *Def_term, ttytype[];
extern int LINES, COLS, _tty_ch, _res_flg;
extern int LINES, COLS, _tty_ch, _res_flg;
extern SGTTY _tty;
extern SGTTY _tty;
extern WINDOW *stdscr, *curscr;
extern WINDOW *stdscr, *curscr;
/*
* Define VOID to stop lint from generating "null effect"
* Define VOID to stop lint from generating "null effect"
* comments.
*/
#ifdef lint
int __void__;
#define VOID(x) (__void__ = (int) (x))
int __void__;
#define VOID(x) (__void__ = (int) (x))
#else
#define VOID(x) (x)
#define VOID(x) (x)
#endif
/*
* psuedo functions for standard screen
*/
#define addch(ch) VOID(waddch(stdscr, ch))
#define getch() VOID(wgetch(stdscr))
#define addstr(str) VOID(waddstr(stdscr, str))
#define getstr(str) VOID(wgetstr(stdscr, str))
#define move(y, x) VOID(wmove(stdscr, y, x))
#define clear() VOID(wclear(stdscr))
#define erase() VOID(werase(stdscr))
#define clrtobot() VOID(wclrtobot(stdscr))
#define clrtoeol() VOID(wclrtoeol(stdscr))
#define insertln() VOID(winsertln(stdscr))
#define deleteln() VOID(wdeleteln(stdscr))
#define refresh() VOID(wrefresh(stdscr))
#define inch() VOID(winch(stdscr))
#define insch(c) VOID(winsch(stdscr,c))
#define delch() VOID(wdelch(stdscr))
#define standout() VOID(wstandout(stdscr))
#define standend() VOID(wstandend(stdscr))
#define addch(ch) VOID(waddch(stdscr, ch))
#define getch() VOID(wgetch(stdscr))
#define addstr(str) VOID(waddstr(stdscr, str))
#define getstr(str) VOID(wgetstr(stdscr, str))
#define move(y, x) VOID(wmove(stdscr, y, x))
#define clear() VOID(wclear(stdscr))
#define erase() VOID(werase(stdscr))
#define clrtobot() VOID(wclrtobot(stdscr))
#define clrtoeol() VOID(wclrtoeol(stdscr))
#define insertln() VOID(winsertln(stdscr))
#define deleteln() VOID(wdeleteln(stdscr))
#define refresh() VOID(wrefresh(stdscr))
#define inch() VOID(winch(stdscr))
#define insch(c) VOID(winsch(stdscr,c))
#define delch() VOID(wdelch(stdscr))
#define standout() VOID(wstandout(stdscr))
#define standend() VOID(wstandend(stdscr))
/*
* mv functions
*/
#define mvwaddch(win,y,x,ch) VOID(wmove(win,y,x)==ERR?ERR:waddch(win,ch))
#define mvwgetch(win,y,x) VOID(wmove(win,y,x)==ERR?ERR:wgetch(win))
#define mvwaddstr(win,y,x,str) VOID(wmove(win,y,x)==ERR?ERR:waddstr(win,str))
#define mvwaddch(win,y,x,ch) VOID(wmove(win,y,x)==ERR?ERR:waddch(win,ch))
#define mvwgetch(win,y,x) VOID(wmove(win,y,x)==ERR?ERR:wgetch(win))
#define mvwaddstr(win,y,x,str) VOID(wmove(win,y,x)==ERR?ERR:waddstr(win,str))
#define mvwgetstr(win,y,x,str) VOID(wmove(win,y,x)==ERR?ERR:wgetstr(win,str))
#define mvwinch(win,y,x) VOID(wmove(win,y,x) == ERR ? ERR : winch(win))
#define mvwdelch(win,y,x) VOID(wmove(win,y,x) == ERR ? ERR : wdelch(win))
#define mvwinsch(win,y,x,c) VOID(wmove(win,y,x) == ERR ? ERR:winsch(win,c))
#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
#define mvgetch(y,x) mvwgetch(stdscr,y,x)
#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
#define mvwinch(win,y,x) VOID(wmove(win,y,x) == ERR ? ERR : winch(win))
#define mvwdelch(win,y,x) VOID(wmove(win,y,x) == ERR ? ERR : wdelch(win))
#define mvwinsch(win,y,x,c) VOID(wmove(win,y,x) == ERR ? ERR:winsch(win,c))
#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
#define mvgetch(y,x) mvwgetch(stdscr,y,x)
#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)
#define mvinch(y,x) mvwinch(stdscr,y,x)
#define mvdelch(y,x) mvwdelch(stdscr,y,x)
#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
#define mvinch(y,x) mvwinch(stdscr,y,x)
#define mvdelch(y,x) mvwdelch(stdscr,y,x)
#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
/*
* psuedo functions
*/
#define clearok(win,bf) (win->_clear = bf)
#define leaveok(win,bf) (win->_leave = bf)
#define scrollok(win,bf) (win->_scroll = bf)
#define flushok(win,bf) (bf ? (win->_flags |= _FLUSH):(win->_flags &= ~_FLUSH))
#define getyx(win,y,x) y = win->_cury, x = win->_curx
#define winch(win) (win->_y[win->_cury][win->_curx] & 0177)
#define clearok(win,bf) (win->_clear = bf)
#define leaveok(win,bf) (win->_leave = bf)
#define scrollok(win,bf) (win->_scroll = bf)
#define flushok(win,bf) (bf ? (win->_flags |= _FLUSH):(win->_flags &= ~_FLUSH))
#define getyx(win,y,x) y = win->_cury, x = win->_curx
#define winch(win) (win->_y[win->_cury][win->_curx] & 0177)
#define raw() (_tty.sg_flags|=RAW, _pfast=_rawmode=TRUE, ioctl(_tty_ch,TIOCSETP,&_tty))
#define noraw() (_tty.sg_flags&=~RAW,_rawmode=FALSE,_pfast=!(_tty.sg_flags&CRMOD),ioctl(_tty_ch,TIOCSETP,&_tty))
#define cbreak() (_tty.sg_flags |= CBREAK, _rawmode = TRUE, ioctl(_tty_ch,TIOCSETP,&_tty))
#define nocbreak() (_tty.sg_flags &= ~CBREAK,_rawmode=FALSE,ioctl(_tty_ch,TIOCSETP,&_tty))
#define crmode() cbreak() /* backwards compatability */
#define nocrmode() nocbreak() /* backwards compatability */
#define echo() (_tty.sg_flags |= ECHO, _echoit = TRUE, ioctl(_tty_ch, TIOCSETP, &_tty))
#define noecho() (_tty.sg_flags &= ~ECHO, _echoit = FALSE, ioctl(_tty_ch, TIOCSETP, &_tty))
#define nl() (_tty.sg_flags |= CRMOD, _pfast = _rawmode,ioctl(_tty_ch, TIOCSETP, &_tty))
#define nonl() (_tty.sg_flags &= ~CRMOD,_pfast = TRUE, ioctl(_tty_ch, TIOCSETP,&_tty))
#define savetty() ((void) ioctl(_tty_ch, TIOCGETP, &_tty), _res_flg = _tty.sg_flags)
#define resetty() (_tty.sg_flags = _res_flg, (void) ioctl(_tty_ch, TIOCSETP, &_tty))
#define raw() (_tty.sg_flags|=RAW, _pfast=_rawmode=TRUE, ioctl(_tty_ch,TIOCSETP,&_tty))
#define noraw() (_tty.sg_flags&=~RAW,_rawmode=FALSE,_pfast=!(_tty.sg_flags&CRMOD),ioctl(_tty_ch,TIOCSETP,&_tty))
#define cbreak() (_tty.sg_flags |= CBREAK, _rawmode = TRUE, ioctl(_tty_ch,TIOCSETP,&_tty))
#define nocbreak() (_tty.sg_flags &= ~CBREAK,_rawmode=FALSE,ioctl(_tty_ch,TIOCSETP,&_tty))
#define crmode() cbreak() /* backwards compatability */
#define nocrmode() nocbreak() /* backwards compatability */
#define echo() (_tty.sg_flags |= ECHO, _echoit = TRUE, ioctl(_tty_ch, TIOCSETP, &_tty))
#define noecho() (_tty.sg_flags &= ~ECHO, _echoit = FALSE, ioctl(_tty_ch, TIOCSETP, &_tty))
#define nl() (_tty.sg_flags |= CRMOD, _pfast = _rawmode,ioctl(_tty_ch, TIOCSETP, &_tty))
#define nonl() (_tty.sg_flags &= ~CRMOD,_pfast = TRUE, ioctl(_tty_ch, TIOCSETP,&_tty))
#define savetty() ((void) ioctl(_tty_ch, TIOCGETP, &_tty), _res_flg = _tty.sg_flags)
#define resetty() (_tty.sg_flags = _res_flg, (void) ioctl(_tty_ch, TIOCSETP, &_tty))
#define erasechar() (_tty.sg_erase)
#define killchar() (_tty.sg_kill)
#define baudrate() (_tty.sg_ospeed)
#define erasechar() (_tty.sg_erase)
#define killchar() (_tty.sg_kill)
#define baudrate() (_tty.sg_ospeed)
WINDOW *initscr(), *newwin(), *subwin();
char *longname(), *getcap();
WINDOW *initscr(), *newwin(), *subwin();
char *longname(), *getcap();
int wmove (WINDOW *, int, int);
int wrefresh (WINDOW *);
@@ -181,11 +178,15 @@ int waddstr (WINDOW *, char *);
int wgetstr (WINDOW *, char *);
int wdeleteln (WINDOW *);
void mvcur(int ly, int lx, int y, int x);
void overwrite(WINDOW *win1, WINDOW *win2);
void wclrtobot(WINDOW *win);
int mvprintw(int y, int x, char *fmt, ...);
int mvwprintw(WINDOW *win, int y, int x, char *fmt, ...);
/*
* Used to be in unctrl.h.
*/
#define unctrl(c) _unctrl[(c) & 0177]
#define unctrl(c) _unctrl[(c) & 0177]
extern char *_unctrl[];
#endif

View File

@@ -1,28 +0,0 @@
/*
* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)dbm.h 5.1 (Berkeley) 3/27/86
*/
#ifndef NULL
/*
* this is lunacy, we no longer use it (and never should have
* unconditionally defined it), but, this whole file is for
* backwards compatability - someone may rely on this.
*/
#define NULL ((char *) 0)
#endif
#include <ndbm.h>
datum fetch();
datum firstkey();
datum nextkey();
#if 0
datum makdatum();
datum firsthash();
long calchash();
long hashinc();
#endif

View File

@@ -1,6 +1,6 @@
/*
* Copyright (c) 1980, 1993
* The Regents of the University of California. All rights reserved.
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -12,8 +12,8 @@
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)fstab.h 8.1.1 (2.11BSD) 1996/1/15
* @(#)fstab.h 8.1.1 (2.11BSD) 1996/1/15
*/
#ifndef _FSTAB_H_
@@ -47,23 +47,20 @@
* if type is "rq", then use concatenation of fs_file and "quotas" to locate
* quota file.
*/
#define _PATH_FSTAB "/etc/fstab"
#define FSTAB "/etc/fstab" /* deprecated */
#define FSTAB_RW "rw" /* read/write device */
#define FSTAB_RQ "rq" /* read/write with quotas */
#define FSTAB_RO "ro" /* read-only device */
#define FSTAB_SW "sw" /* swap device */
#define FSTAB_XX "xx" /* ignore totally */
#define FSTAB_RW "rw" /* read/write device */
#define FSTAB_RQ "rq" /* read/write with quotas */
#define FSTAB_RO "ro" /* read-only device */
#define FSTAB_SW "sw" /* swap device */
#define FSTAB_XX "xx" /* ignore totally */
struct fstab {
char *fs_spec; /* block special device name */
char *fs_file; /* file system path prefix */
char *fs_vfstype; /* File system type, ufs, nfs */
char *fs_mntops; /* Mount options ala -o */
char *fs_type; /* FSTAB_* from fs_mntops */
int fs_freq; /* dump frequency, in days */
int fs_passno; /* pass number on parallel dump */
char *fs_spec; /* block special device name */
char *fs_file; /* file system path prefix */
char *fs_vfstype; /* File system type, ufs, nfs */
char *fs_mntops; /* Mount options ala -o */
char *fs_type; /* FSTAB_* from fs_mntops */
int fs_freq; /* dump frequency, in days */
int fs_passno; /* pass number on parallel dump */
};
struct fstab *getfsent();

View File

@@ -1,10 +1,10 @@
/* grp.h 4.1 83/05/03 */
/* grp.h 4.1 83/05/03 */
struct group { /* see getgrent(3) */
char *gr_name;
char *gr_passwd;
int gr_gid;
char **gr_mem;
struct group { /* see getgrent(3) */
char *gr_name;
char *gr_passwd;
int gr_gid;
char **gr_mem;
};
struct group *getgrent(void);

View File

@@ -3,11 +3,11 @@
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)lastlog.h 5.1 (Berkeley) 5/30/85
* @(#)lastlog.h 5.1 (Berkeley) 5/30/85
*/
struct lastlog {
time_t ll_time;
char ll_line[8];
char ll_host[16]; /* same as in utmp */
time_t ll_time;
char ll_line[8];
char ll_host[16]; /* same as in utmp */
};

View File

@@ -36,36 +36,6 @@
#ifndef _LIMITS_H_
#define _LIMITS_H_
/*
* We don't need this crud at the moment so save on abuse of the C
* preprocessor by not doing the defines.
#define _POSIX_ARG_MAX 4096
#define _POSIX_CHILD_MAX 6
#define _POSIX_LINK_MAX 8
#define _POSIX_MAX_CANON 255
#define _POSIX_MAX_INPUT 255
#define _POSIX_NAME_MAX 14
#define _POSIX_NGROUPS_MAX 0
#define _POSIX_OPEN_MAX 16
#define _POSIX_PATH_MAX 255
#define _POSIX_PIPE_BUF 512
#define _POSIX_SSIZE_MAX 32767
#define _POSIX_STREAM_MAX 8
#define _POSIX_TZNAME_MAX 3
#define _POSIX2_BC_BASE_MAX 99
#define _POSIX2_BC_DIM_MAX 2048
#define _POSIX2_BC_SCALE_MAX 99
#define _POSIX2_BC_STRING_MAX 1000
#define _POSIX2_EQUIV_CLASS_MAX 2
#define _POSIX2_EXPR_NEST_MAX 32
#define _POSIX2_LINE_MAX 2048
#define _POSIX2_RE_DUP_MAX 255
*/
#include <machine/limits.h>
/* #include <sys/syslimits.h> */
#endif /* !_LIMITS_H_ */

View File

@@ -4,16 +4,16 @@
* specifies the terms and conditions for redistribution.
*/
extern double fabs(), floor(), ceil(), fmod(), ldexp();
extern double sqrt(), hypot(), atof();
extern double sin(), cos(), tan(), asin(), acos(), atan(), atan2();
extern double exp(), log(), log10(), pow();
extern double sinh(), cosh(), tanh();
extern double gamma();
extern double j0(), j1(), jn(), y0(), y1(), yn();
double fabs(double), floor(double), ceil(double);
double sqrt(double), hypot(double, double);
double sin(double), cos(double), tan(double);
double asin(double), acos(double), atan(double), atan2(double, double);
double exp(double), log(double), log10(double), pow(double, double);
double sinh(double), cosh(double), tanh(double);
double j0(double), j1(double), jn(int, double);
double y0(double), y1(double), yn(int, double);
#define HUGE 1.701411733192644270e38
#define LOGHUGE 39
#define HUGE_VAL 3.40282347e+38 /* TBD??? use infinity? */
int isnanf(float x);
int isnan(double x);
@@ -31,3 +31,21 @@ float ldexpf(float x, int exp);
double ldexp(double x, int exp);
double fmod(double x, double y);
#if !defined(_ANSI_SOURCE) && !defined(_POSIX_SOURCE)
#define M_E 2.7182818284590452354 /* e */
#define M_LOG2E 1.4426950408889634074 /* log 2e */
#define M_LOG10E 0.43429448190325182765 /* log 10e */
#define M_LN2 0.69314718055994530942 /* log e2 */
#define M_LN10 2.30258509299404568402 /* log e10 */
#define M_PI 3.14159265358979323846 /* pi */
#define M_PI_2 1.57079632679489661923 /* pi/2 */
#define M_PI_4 0.78539816339744830962 /* pi/4 */
#define M_1_PI 0.31830988618379067154 /* 1/pi */
#define M_2_PI 0.63661977236758134308 /* 2/pi */
#define M_2_SQRTPI 1.12837916709551257390 /* 2/sqrt(pi) */
#define M_SQRT2 1.41421356237309504880 /* sqrt(2) */
#define M_SQRT1_2 0.70710678118654752440 /* 1/sqrt(2) */
#endif /* !_ANSI_SOURCE && !_POSIX_SOURCE */

View File

@@ -3,14 +3,14 @@
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)mtab.h 5.1 (Berkeley) 5/30/85
* @(#)mtab.h 5.1 (Berkeley) 5/30/85
*/
/*
* Mounted device accounting file.
*/
struct mtab {
char m_path[32]; /* mounted on pathname */
char m_dname[32]; /* block device pathname */
char m_type[4]; /* read-only, quotas */
char m_path[32]; /* mounted on pathname */
char m_dname[32]; /* block device pathname */
char m_type[4]; /* read-only, quotas */
};

View File

@@ -3,64 +3,60 @@
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)ndbm.h 5.1.1 (2.11BSD GTE) 12/31/93
* @(#)ndbm.h 5.1.1 (2.11BSD GTE) 12/31/93
*/
/*
* Hashed key data base library.
*/
#define PBLKSIZ 1024
#ifdef pdp11
#define DBLKSIZ 512
#else
#define DBLKSIZ 4096
#endif
#define PBLKSIZ 1024
#define DBLKSIZ 1024
typedef struct {
int dbm_dirf; /* open directory file */
int dbm_pagf; /* open page file */
int dbm_flags; /* flags, see below */
long dbm_maxbno; /* last ``bit'' in dir file */
long dbm_bitno; /* current bit number */
long dbm_hmask; /* hash mask */
long dbm_blkptr; /* current block for dbm_nextkey */
int dbm_keyptr; /* current key for dbm_nextkey */
long dbm_blkno; /* current page to read/write */
long dbm_pagbno; /* current page in pagbuf */
char dbm_pagbuf[PBLKSIZ]; /* page file block buffer */
long dbm_dirbno; /* current block in dirbuf */
char dbm_dirbuf[DBLKSIZ]; /* directory file block buffer */
int dbm_dirf; /* open directory file */
int dbm_pagf; /* open page file */
int dbm_flags; /* flags, see below */
long dbm_maxbno; /* last ``bit'' in dir file */
long dbm_bitno; /* current bit number */
long dbm_hmask; /* hash mask */
long dbm_blkptr; /* current block for dbm_nextkey */
int dbm_keyptr; /* current key for dbm_nextkey */
long dbm_blkno; /* current page to read/write */
long dbm_pagbno; /* current page in pagbuf */
char dbm_pagbuf[PBLKSIZ]; /* page file block buffer */
long dbm_dirbno; /* current block in dirbuf */
char dbm_dirbuf[DBLKSIZ]; /* directory file block buffer */
} DBM;
#define _DBM_RDONLY 0x1 /* data base open read-only */
#define _DBM_IOERR 0x2 /* data base I/O error */
#define _DBM_RDONLY 0x1 /* data base open read-only */
#define _DBM_IOERR 0x2 /* data base I/O error */
#define dbm_rdonly(db) ((db)->dbm_flags & _DBM_RDONLY)
#define dbm_rdonly(db) ((db)->dbm_flags & _DBM_RDONLY)
#define dbm_error(db) ((db)->dbm_flags & _DBM_IOERR)
/* use this one at your own risk! */
#define dbm_clearerr(db) ((db)->dbm_flags &= ~_DBM_IOERR)
#define dbm_error(db) ((db)->dbm_flags & _DBM_IOERR)
/* use this one at your own risk! */
#define dbm_clearerr(db) ((db)->dbm_flags &= ~_DBM_IOERR)
/* for flock(2) and fstat(2) */
#define dbm_dirfno(db) ((db)->dbm_dirf)
#define dbm_pagfno(db) ((db)->dbm_pagf)
#define dbm_dirfno(db) ((db)->dbm_dirf)
#define dbm_pagfno(db) ((db)->dbm_pagf)
typedef struct {
char *dptr;
int dsize;
char *dptr;
int dsize;
} datum;
/*
* flags to dbm_store()
*/
#define DBM_INSERT 0
#define DBM_REPLACE 1
#define DBM_INSERT 0
#define DBM_REPLACE 1
DBM *dbm_open();
void dbm_close();
datum dbm_fetch();
datum dbm_firstkey();
datum dbm_nextkey();
long dbm_forder();
int dbm_delete();
int dbm_store();
DBM *dbm_open();
void dbm_close();
datum dbm_fetch();
datum dbm_firstkey();
datum dbm_nextkey();
long dbm_forder();
int dbm_delete();
int dbm_store();

View File

@@ -18,17 +18,17 @@
/*
* Protocols
*/
#define IPPROTO_IP 0 /* dummy for IP */
#define IPPROTO_ICMP 1 /* control message protocol */
#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */
#define IPPROTO_TCP 6 /* tcp */
#define IPPROTO_EGP 8 /* exterior gateway protocol */
#define IPPROTO_PUP 12 /* pup */
#define IPPROTO_UDP 17 /* user datagram protocol */
#define IPPROTO_IDP 22 /* xns idp */
#define IPPROTO_IP 0 /* dummy for IP */
#define IPPROTO_ICMP 1 /* control message protocol */
#define IPPROTO_GGP 3 /* gateway^2 (deprecated) */
#define IPPROTO_TCP 6 /* tcp */
#define IPPROTO_EGP 8 /* exterior gateway protocol */
#define IPPROTO_PUP 12 /* pup */
#define IPPROTO_UDP 17 /* user datagram protocol */
#define IPPROTO_IDP 22 /* xns idp */
#define IPPROTO_RAW 255 /* raw IP packet */
#define IPPROTO_MAX 256
#define IPPROTO_RAW 255 /* raw IP packet */
#define IPPROTO_MAX 256
/*
@@ -37,21 +37,21 @@
* Ports > IPPORT_USERRESERVED are reserved
* for servers, not necessarily privileged.
*/
#define IPPORT_RESERVED 1024
#define IPPORT_USERRESERVED 5000
#define IPPORT_RESERVED 1024
#define IPPORT_USERRESERVED 5000
/*
* Link numbers
*/
#define IMPLINK_IP 155
#define IMPLINK_LOWEXPER 156
#define IMPLINK_HIGHEXPER 158
#define IMPLINK_IP 155
#define IMPLINK_LOWEXPER 156
#define IMPLINK_HIGHEXPER 158
/*
* Internet address (a structure for historical reasons)
*/
struct in_addr {
u_long s_addr;
u_long s_addr;
};
/*
@@ -59,51 +59,51 @@ struct in_addr {
* On subnets, the decomposition of addresses to host and net parts
* is done according to subnet mask, not the masks here.
*/
#define IN_CLASSA(i) (((long)(i) & 0x80000000L) == 0)
#define IN_CLASSA_NET 0xff000000L
#define IN_CLASSA_NSHIFT 24
#define IN_CLASSA_HOST 0x00ffffffL
#define IN_CLASSA_MAX 128
#define IN_CLASSA(i) (((long)(i) & 0x80000000L) == 0)
#define IN_CLASSA_NET 0xff000000L
#define IN_CLASSA_NSHIFT 24
#define IN_CLASSA_HOST 0x00ffffffL
#define IN_CLASSA_MAX 128
#define IN_CLASSB(i) (((long)(i) & 0xc0000000L) == 0x80000000L)
#define IN_CLASSB_NET 0xffff0000L
#define IN_CLASSB_NSHIFT 16
#define IN_CLASSB_HOST 0x0000ffffL
#define IN_CLASSB_MAX 65536
#define IN_CLASSB(i) (((long)(i) & 0xc0000000L) == 0x80000000L)
#define IN_CLASSB_NET 0xffff0000L
#define IN_CLASSB_NSHIFT 16
#define IN_CLASSB_HOST 0x0000ffffL
#define IN_CLASSB_MAX 65536
#define IN_CLASSC(i) (((long)(i) & 0xe0000000L) == 0xc0000000L)
#define IN_CLASSC_NET 0xffffff00L
#define IN_CLASSC_NSHIFT 8
#define IN_CLASSC_HOST 0x000000ffL
#define IN_CLASSC(i) (((long)(i) & 0xe0000000L) == 0xc0000000L)
#define IN_CLASSC_NET 0xffffff00L
#define IN_CLASSC_NSHIFT 8
#define IN_CLASSC_HOST 0x000000ffL
#define IN_CLASSD(i) (((long)(i) & 0xf0000000L) == 0xe0000000L)
#define IN_MULTICAST(i) IN_CLASSD(i)
#define IN_CLASSD(i) (((long)(i) & 0xf0000000L) == 0xe0000000L)
#define IN_MULTICAST(i) IN_CLASSD(i)
#define IN_EXPERIMENTAL(i) (((long)(i) & 0xe0000000L) == 0xe0000000L)
#define IN_BADCLASS(i) (((long)(i) & 0xf0000000L) == 0xf0000000L)
#define IN_EXPERIMENTAL(i) (((long)(i) & 0xe0000000L) == 0xe0000000L)
#define IN_BADCLASS(i) (((long)(i) & 0xf0000000L) == 0xf0000000L)
#define INADDR_ANY 0x00000000L
#define INADDR_BROADCAST 0xffffffffL /* must be masked */
#define INADDR_ANY 0x00000000L
#define INADDR_BROADCAST 0xffffffffL /* must be masked */
#ifndef KERNEL
#define INADDR_NONE 0xffffffffL /* -1 return */
#define INADDR_NONE 0xffffffffL /* -1 return */
#endif
#define IN_LOOPBACKNET 127 /* official! */
#define IN_LOOPBACKNET 127 /* official! */
/*
* Socket address, internet style.
*/
struct sockaddr_in {
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
short sin_family;
u_short sin_port;
struct in_addr sin_addr;
char sin_zero[8];
};
/*
* Options for use with [gs]etsockopt at the IP level.
*/
#define IP_OPTIONS 1 /* set/get IP per-packet options */
#define IP_OPTIONS 1 /* set/get IP per-packet options */
/*
* Definitions for inet sysctl operations.
@@ -111,55 +111,55 @@ struct sockaddr_in {
* Third level is protocol number.
* Fourth level is desired variable within that protocol.
*/
#define IPPROTO_MAXID (IPPROTO_IDP + 1) /* don't list to IPPROTO_MAX */
#define IPPROTO_MAXID (IPPROTO_IDP + 1) /* don't list to IPPROTO_MAX */
#ifndef KERNEL
#define CTL_IPPROTO_NAMES { \
{ "ip", CTLTYPE_NODE }, \
{ "icmp", CTLTYPE_NODE }, \
{ "igmp", CTLTYPE_NODE }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ "tcp", CTLTYPE_NODE }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ "udp", CTLTYPE_NODE }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ "idp", CTLTYPE_NODE }, \
#ifndef KERNEL
#define CTL_IPPROTO_NAMES { \
{ "ip", CTLTYPE_NODE }, \
{ "icmp", CTLTYPE_NODE }, \
{ "igmp", CTLTYPE_NODE }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ "tcp", CTLTYPE_NODE }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ "udp", CTLTYPE_NODE }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ 0, 0 }, \
{ "idp", CTLTYPE_NODE }, \
}
#endif /* KERNEL */
/*
* Names for IP sysctl objects
*/
#define IPCTL_FORWARDING 1 /* act as router */
#define IPCTL_SENDREDIRECTS 2 /* may send redirects when forwarding */
#define IPCTL_DEFTTL 3 /* default TTL */
#define IPCTL_FORWARDING 1 /* act as router */
#define IPCTL_SENDREDIRECTS 2 /* may send redirects when forwarding */
#define IPCTL_DEFTTL 3 /* default TTL */
#ifdef notyet
#define IPCTL_DEFMTU 4 /* default MTU */
#define IPCTL_DEFMTU 4 /* default MTU */
#endif
#define IPCTL_FORWSRCRT 5 /* forward source-routed dgrams */
#define IPCTL_MAXID 6
#define IPCTL_FORWSRCRT 5 /* forward source-routed dgrams */
#define IPCTL_MAXID 6
#ifndef KERNEL
#define IPCTL_NAMES { \
{ 0, 0 }, \
{ "forwarding", CTLTYPE_INT }, \
{ "redirect", CTLTYPE_INT }, \
{ "ttl", CTLTYPE_INT }, \
{ "mtu", CTLTYPE_INT }, \
{ "forwsrcrt", CTLTYPE_INT }, \
#ifndef KERNEL
#define IPCTL_NAMES { \
{ 0, 0 }, \
{ "forwarding", CTLTYPE_INT }, \
{ "redirect", CTLTYPE_INT }, \
{ "ttl", CTLTYPE_INT }, \
{ "mtu", CTLTYPE_INT }, \
{ "forwsrcrt", CTLTYPE_INT }, \
}
#endif /* KERNEL */

View File

@@ -12,8 +12,8 @@
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
@@ -30,37 +30,37 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#ifndef _NLIST_H_
#define _NLIST_H_
#ifndef _NLIST_H_
#define _NLIST_H_
#include <sys/types.h>
/*
* Symbol table entry format.
*/
struct nlist {
char *n_name; /* In memory address of symbol name,
or string table offset (file) */
u_short n_len; /* Length of name in bytes */
u_short n_type; /* Type of symbol - see below */
u_int n_value; /* Symbol value */
struct nlist {
char *n_name; /* In memory address of symbol name,
* or string table offset (file) */
u_short n_len; /* Length of name in bytes */
u_short n_type; /* Type of symbol - see below */
u_int n_value; /* Symbol value */
};
/*
* Simple values for n_type.
*/
#define N_UNDF 0x00 /* undefined */
#define N_ABS 0x01 /* absolute */
#define N_TEXT 0x02 /* text segment */
#define N_DATA 0x03 /* data segment */
#define N_BSS 0x04 /* bss segment */
#define N_STRNG 0x05 /* string segment (for assembler) */
#define N_COMM 0x06 /* .comm segment (for assembler) */
#define N_FN 0x1f /* file name */
#define N_UNDF 0x00 /* undefined */
#define N_ABS 0x01 /* absolute */
#define N_TEXT 0x02 /* text segment */
#define N_DATA 0x03 /* data segment */
#define N_BSS 0x04 /* bss segment */
#define N_STRNG 0x05 /* string segment (for assembler) */
#define N_COMM 0x06 /* .comm segment (for assembler) */
#define N_FN 0x1f /* file name */
#define N_TYPE 0x1f /* mask for all the type bits */
#define N_EXT 0x20 /* external (global) bit, OR'ed in */
#define N_WEAK 0x40 /* weak reference bit, OR'ed in */
#define N_LOC 0x80 /* local, for assembler */
#define N_TYPE 0x1f /* mask for all the type bits */
#define N_EXT 0x20 /* external (global) bit, OR'ed in */
#define N_WEAK 0x40 /* weak reference bit, OR'ed in */
#define N_LOC 0x80 /* local, for assembler */
/*
* Get symbols from a file.
@@ -72,4 +72,4 @@ int nlist (char *name, struct nlist *list);
*/
int knlist (struct nlist *list);
#endif /* !_NLIST_H_ */
#endif /* !_NLIST_H_ */

View File

@@ -14,46 +14,53 @@
* IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
* WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#define _PATH_BSHELL "/bin/sh"
#define _PATH_CSHELL "/bin/csh"
#define _PATH_CP "/bin/cp"
#define _PATH_BSHELL "/bin/sh"
#define _PATH_CSHELL "/bin/csh"
#define _PATH_CP "/bin/cp"
#define _PATH_ECHO "/bin/echo"
#define _PATH_MORE "/bin/more"
#define _PATH_RSH "/bin/rsh"
#define _PATH_VI "/bin/vi"
#define _PATH_MORE "/bin/more"
#define _PATH_RSH "/bin/rsh"
#define _PATH_VI "/bin/vi"
#define _PATH_CORE "/core"
#define _PATH_DEV "/dev/"
#define _PATH_CONSOLE "/dev/console"
#define _PATH_DEVNULL "/dev/null"
#define _PATH_TTY "/dev/tty"
#define _PATH_DEV "/dev/"
#define _PATH_CONSOLE "/dev/console"
#define _PATH_LOG "/dev/log"
#define _PATH_DEVNULL "/dev/null"
#define _PATH_TTY "/dev/tty"
#define _PATH_MEM "/dev/mem"
#define _PATH_SWAP "/dev/swap"
#define _PATH_LOCALTIME "/etc/localtime"
#define _PATH_MOTD "/etc/motd"
#define _PATH_NOLOGIN "/etc/nologin"
#define _PATH_FSTAB "/etc/fstab"
#define _PATH_LOCALTIME "/etc/localtime"
#define _PATH_MOTD "/etc/motd"
#define _PATH_NOLOGIN "/etc/nologin"
#define _PATH_PASSWD "/etc/passwd"
#define _PATH_PTMP "/etc/ptmp"
#define _PATH_SHADOW "/etc/shadow"
#define _PATH_TERMCAP "/etc/termcap"
#define _PATH_USRLIB "/lib/"
#define _PATH_CTIMED "/libexec/ctimed"
#define _PATH_CTIMED "/libexec/ctimed"
#define _PATH_LOCALLIB "/local/lib/"
#define _PATH_SBIN "/sbin/"
#define _PATH_USRSBIN "/sbin/"
#define _PATH_SENDMAIL "/sbin/sendmail"
#define _PATH_SBIN "/sbin/"
#define _PATH_USRSBIN "/sbin/"
#define _PATH_MKPASSWD "/sbin/mkpasswd"
#define _PATH_SENDMAIL "/sbin/sendmail"
#define _PATH_SHARE "/share/"
#define _PATH_ZONEINFO "/share/zoneinfo" /* Time zone object file directory */
#define _PATH_TMP "/tmp/"
#define _PATH_USRTMP "/tmp/"
#define _PATH_LASTLOG "/var/log/lastlog"
#define _PATH_ZONEINFO "/share/zoneinfo" /* Time zone object file directory */
#define _PATH_TMP "/tmp/"
#define _PATH_USRTMP "/tmp/"
#define _PATH_LASTLOG "/var/log/lastlog"
#define _PATH_MESSAGES "/var/log/messages"
#define _PATH_WTMP "/var/log/wtmp"
#define _PATH_MAIL "/var/mail/"
#define _PATH_VARRUN "/var/run/"
#define _PATH_DEVDB "/var/run/dev"
#define _PATH_VARRUN "/var/run/"
#define _PATH_DEVDB "/var/run/dev"
#define _PATH_UTMP "/var/run/utmp"
#define _PATH_ARTMP "/tmp/ar.XXXXXX"
#define _PATH_RANTMP "/tmp/ranlib.XXXXXX"
#define _PATH_STDPATH "/bin"
#define _PATH_SYSPATH "/bin:/sbin:/local"
#define _PATH_MAN "/share/man:/local/man"
#define _PATH_LOCALMAN "/local/man"
#define _PATH_MAN "/share/man:/local/man"
#define _PATH_LOCALMAN "/local/man"
#define _PATH_HUSHLOGIN ".hushlogin"
#define _PATH_HUSHLOGIN ".hushlogin"

View File

@@ -1,229 +0,0 @@
/*
* Copyright (c) 1983 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)pcc.h 5.1 (Berkeley) 5/30/85
*/
/*
* This file contains definitions for all the constants and structures
* needed to use the intermediate code files generated and read by
* the Portable C Compiler and related compilers.
*
* Rules for changing this code:
* 1) All op values must be integer constants -- this permits us to run
* a 'sed' script on this file to create %term declarations for yacc.
* 2) Because the PCC uses fancy ASG and UNARY macros, assignment
* operators must have values 1 greater than corresponding normal
* operators, and unary operators must have values 2 greater ditto.
* 3) Ops used only by f1 must have values >= 150 (PCCF_FORTOPS).
* 4) Other language-dependent ops must have values >= 200.
*/
# ifndef PCC_TOKENS
# define PCC_TOKENS 0
# define PCC_ERROR 1 /* an error node */
# define PCC_FREE 2 /* an unused node */
/*
* Constants.
*/
# define PCC_STRING 3 /* a string constant */
# define PCC_ICON 4 /* an integer constant */
# define PCC_FCON 5 /* a floating point constant */
# define PCC_DCON 6 /* a double precision f.p. constant */
/*
* Leaf types.
*/
# define PCC_NAME 7 /* an identifier */
# define PCC_REG 8 /* a register */
# define PCC_OREG 9 /* register and offset */
# define PCC_CCODES 10 /* condition codes */
# define PCC_FLD 11 /* a bit field */
/*
* Arithmetic operators.
*/
# define PCC_PLUS 12 /* + */
# define PCC_PLUSEQ 13 /* += */
# define PCC_UPLUS 14 /* unary + (for completeness) */
# define PCC_MINUS 15 /* - */
# define PCC_MINUSEQ 16 /* -= */
# define PCC_UMINUS 17 /* unary - */
# define PCC_MUL 18 /* * */
# define PCC_MULEQ 19 /* *= */
/* Reserve a slot for 'unary *', which is PCC jargon for PCC_DEREF (yech) */
# define PCC_DIV 21 /* / */
# define PCC_DIVEQ 22 /* /= */
# define PCC_MOD 23 /* % */
# define PCC_MODEQ 24 /* %= */
# define PCC_INCR 25 /* ++ */
# define PCC_DECR 26 /* -- */
# define PCC_ASSIGN 27 /* = (these last 3 are stretching it) */
/*
* Bit operators.
*/
# define PCC_AND 28 /* & */
# define PCC_ANDEQ 29 /* &= */
/* Reserve a slot for 'unary &', jargon for PCC_ADDROF */
# define PCC_OR 31 /* | */
# define PCC_OREQ 32 /* |= */
# define PCC_ER 33 /* ^ */
# define PCC_EREQ 34 /* ^= */
# define PCC_LS 35 /* << */
# define PCC_LSEQ 36 /* <<= */
# define PCC_RS 37 /* >> */
# define PCC_RSEQ 38 /* >>= */
# define PCC_COMPL 39 /* ~ */
/*
* Booleans.
*/
# define PCC_EQ 40 /* == */
# define PCC_NE 41 /* != */
# define PCC_LE 42 /* <= */
# define PCC_LT 43 /* < */
# define PCC_GE 44 /* >= */
# define PCC_GT 45 /* > */
# define PCC_ULE 46 /* unsigned <= */
# define PCC_ULT 47 /* unsigned < */
# define PCC_UGE 48 /* unsigned >= */
# define PCC_UGT 49 /* unsigned > */
# define PCC_QUEST 50 /* ? (for conditional expressions) */
# define PCC_COLON 51 /* : (for conditional expressions) */
# define PCC_ANDAND 52 /* && */
# define PCC_OROR 53 /* || */
# define PCC_NOT 54 /* ! */
/*
* Function calls.
*/
# define PCC_CALL 55 /* call by value */
/* no ASG */
# define PCC_UCALL 57 /* call with no arguments */
# define PCC_FORTCALL 58 /* call by reference? */
/* no ASG */
# define PCC_UFORTCALL 60 /* ??? */
# ifdef INLINE
# define PCC_INLINE 61 /* inline function */
/* no ASG */
# define PCC_UINLINE 63 /* inline with no arguments */
# endif INLINE
/*
* Referencing and dereferencing.
*/
# define PCC_DEREF 20 /* * */
# define PCC_ADDROF 30 /* & */
/*
* Special structure operators.
*/
# define PCC_DOT 64 /* . */
# define PCC_STREF 65 /* -> */
# define PCC_STASG 66 /* structure assignment */
# define PCC_STARG 67 /* an argument of type structure */
# define PCC_STCALL 68 /* a function of type structure */
/* no ASG */
# define PCC_USTCALL 70 /* unary structure function */
/*
* Conversions.
*/
# define PCC_SCONV 71 /* scalar conversion */
# define PCC_PCONV 72 /* pointer conversion */
# define PCC_PMCONV 73 /* pointer multiply conversion */
# define PCC_PVCONV 74 /* pointer divide conversion */
# define PCC_CAST 75 /* redundant? */
/*
* Bracket types.
*/
# define PCC_LB 76 /* [ */
# define PCC_RB 77 /* ] */
/*
* Comma nodes.
*/
# define PCC_COMOP 78 /* , (in expressions) */
# define PCC_CM 79 /* , (in argument lists) */
/*
* Miscellaneous.
*/
# define PCC_FORCE 80 /* result of last expression goes in r0 */
# define PCC_GOTO 81 /* unconditional goto */
# define PCC_CBRANCH 82 /* goto label if !test */
# define PCC_RETURN 83 /* return from function */
# define PCC_INIT 84 /* initialized data */
# define PCC_TYPE 85 /* a type */
# define PCC_CLASS 86 /* a storage class */
# define PCC_MAXOP 86 /* highest numbered PCC op */
/*
* Special codes for interfacing to /lib/f1.
*/
# define PCCF_FORTOPS 150
# define PCCF_FTEXT 150 /* pass literal assembler text */
# define PCCF_FEXPR 151 /* a statement */
# define PCCF_FSWITCH 152 /* not implemented */
# define PCCF_FLBRAC 153 /* beginning of subroutine */
# define PCCF_FRBRAC 154 /* end of subroutine */
# define PCCF_FEOF 155 /* end of file */
# define PCCF_FARIF 156 /* not implemented */
# define PCCF_FLABEL 157 /* an f77 label */
# endif PCC_TOKENS
/*
* Types, as encoded in intermediate file cookies.
*/
# define PCCT_UNDEF 0
# define PCCT_FARG 1 /* function argument */
# define PCCT_CHAR 2
# define PCCT_SHORT 3
# define PCCT_INT 4
# define PCCT_LONG 5
# define PCCT_FLOAT 6
# define PCCT_DOUBLE 7
# define PCCT_STRTY 8
# define PCCT_UNIONTY 9
# define PCCT_ENUMTY 10
# define PCCT_MOETY 11 /* member of enum */
# define PCCT_UCHAR 12
# define PCCT_USHORT 13
# define PCCT_UNSIGNED 14
# define PCCT_ULONG 15
/*
* Type modifiers.
*/
# define PCCTM_PTR 020
# define PCCTM_FTN 040
# define PCCTM_ARY 060
# define PCCTM_BASETYPE 017
# define PCCTM_TYPESHIFT 2
/*
* Useful macros. 'PCCOM' macros apply to ops.
*/
# define PCCOM_ASG 1+
# define PCCOM_UNARY 2+
# define PCCOM_NOASG (-1)+
# define PCCOM_NOUNARY (-2)+
# define PCCM_TRIPLE(op, var, type) \
((op) | ((var) << 8) | (long) (type) << 16)
# define PCCM_TEXT(s) \
PCCM_TRIPLE(PCCF_FTEXT, (strlen(s) + 3) / 4, 0)
# define PCCM_ADDTYPE(t, m) \
((((t) &~ PCCTM_BASETYPE) << PCCTM_TYPESHIFT) | \
(m) | ((t) & PCCTM_BASETYPE))

View File

@@ -14,27 +14,27 @@
#endif
struct psout {
dev_t o_ttyd; /* u_ttyd */
int o_flag; /* p_flag */
short o_pid; /* p_pid */
char o_tty[3]; /* 1st 2 chars of tty after 'tty' */
char o_stat; /* p_stat */
short o_uid; /* p_uid */
char o_uname[UT_NAMESIZE]; /* login name of process owner */
short o_ppid; /* p_ppid */
char o_cpu; /* p_cpu */
char o_pri; /* p_pri */
char o_nice; /* p_nice */
short o_addr0; /* p_addr[0] */
short o_size; /* p_size */
caddr_t o_wchan; /* p_wchan */
time_t o_utime; /* u_utime */
time_t o_stime; /* u_stime */
time_t o_cutime; /* u_cutime */
time_t o_cstime; /* u_cstime */
short o_pgrp; /* p_pgrp */
int o_sigs; /* sum of SIGINT & SIGQUIT,
if == 2 proc is ignoring both.*/
char o_comm[MAXCOMLEN+1]; /* u_comm */
char o_args[64]; /* best guess at args to process */
dev_t o_ttyd; /* u_ttyd */
int o_flag; /* p_flag */
short o_pid; /* p_pid */
char o_tty[3]; /* 1st 2 chars of tty after 'tty' */
char o_stat; /* p_stat */
short o_uid; /* p_uid */
char o_uname[UT_NAMESIZE]; /* login name of process owner */
short o_ppid; /* p_ppid */
char o_cpu; /* p_cpu */
char o_pri; /* p_pri */
char o_nice; /* p_nice */
short o_addr0; /* p_addr[0] */
short o_size; /* p_size */
caddr_t o_wchan; /* p_wchan */
time_t o_utime; /* u_utime */
time_t o_stime; /* u_stime */
time_t o_cutime; /* u_cutime */
time_t o_cstime; /* u_cstime */
short o_pgrp; /* p_pgrp */
int o_sigs; /* sum of SIGINT & SIGQUIT,
* if == 2 proc is ignoring both.*/
char o_comm[MAXCOMLEN+1]; /* u_comm */
char o_args[64]; /* best guess at args to process */
};

View File

@@ -15,22 +15,17 @@
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#define _PATH_PASSWD "/etc/passwd"
#define _PATH_SHADOW "/etc/shadow"
#define _PATH_MKPASSWD "/sbin/mkpasswd"
#define _PATH_PTMP "/etc/ptmp"
#define _PW_KEYBYNAME '0'
#define _PW_KEYBYUID '1'
#define _PW_KEYBYNAME '0'
#define _PW_KEYBYUID '1'
struct passwd {
char *pw_name; /* user name */
char *pw_passwd; /* encrypted password */
int pw_uid; /* user uid */
int pw_gid; /* user gid */
char *pw_gecos; /* real name */
char *pw_dir; /* home directory */
char *pw_shell; /* default shell */
char *pw_name; /* user name */
char *pw_passwd; /* encrypted password */
int pw_uid; /* user uid */
int pw_gid; /* user gid */
char *pw_gecos; /* real name */
char *pw_dir; /* home directory */
char *pw_shell; /* default shell */
};
struct passwd *getpwent(), *getpwuid(), *getpwnam();

View File

@@ -12,8 +12,8 @@
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
@@ -32,15 +32,15 @@
*/
#ifndef _RANLIB_H_
#define _RANLIB_H_
#define _RANLIB_H_
#define RANLIBMAG "__.SYMDEF" /* archive file name */
#define RANLIBSKEW 3 /* creation time offset */
#define RANLIBMAG "__.SYMDEF" /* archive file name */
#define RANLIBSKEW 3 /* creation time offset */
struct ranlib {
int ran_len; /* 1 byte - name length in bytes */
unsigned ran_off; /* 4 bytes - file offset */
char *ran_name; /* in memory symbol name */
int ran_len; /* 1 byte - name length in bytes */
unsigned ran_off; /* 4 bytes - file offset */
char *ran_name; /* in memory symbol name */
};
#endif /* !_RANLIB_H_ */

View File

@@ -5,14 +5,15 @@
* not the System V one.
*/
#define NSUBEXP 10
typedef struct regexp {
char *startp[NSUBEXP];
char *endp[NSUBEXP];
char regstart; /* Internal use only. */
char reganch; /* Internal use only. */
char *regmust; /* Internal use only. */
int regmlen; /* Internal use only. */
char program[1]; /* Unwarranted chumminess with compiler. */
char *startp[NSUBEXP];
char *endp[NSUBEXP];
char regstart; /* Internal use only. */
char reganch; /* Internal use only. */
char *regmust; /* Internal use only. */
int regmlen; /* Internal use only. */
char program[1]; /* Unwarranted chumminess with compiler. */
} regexp;
extern regexp *regcomp();

View File

@@ -10,105 +10,105 @@ extern int LINES, COLS;
/*
* pseudo functions for standard screen
*/
#define addch(ch) waddch(stdscr, ch)
#define getch() wgetch(stdscr)
#define addstr(str) waddstr(stdscr, str)
#define getstr(str) wgetstr(stdscr, str)
#define move(y, x) wmove(stdscr, y, x)
#define clear() wclear(stdscr)
#define erase() werase(stdscr)
#define clrtobot() wclrtobot(stdscr)
#define clrtoeol() wclrtoeol(stdscr)
#define insertln() winsertln(stdscr)
#define deleteln() wdeleteln(stdscr)
#define refresh() wrefresh(stdscr)
#define inch() winch(stdscr)
#define insch(c) winsch(stdscr,c)
#define delch() wdelch(stdscr)
#define standout() wstandout(stdscr)
#define standend() wstandend(stdscr)
#define addch(ch) waddch(stdscr, ch)
#define getch() wgetch(stdscr)
#define addstr(str) waddstr(stdscr, str)
#define getstr(str) wgetstr(stdscr, str)
#define move(y, x) wmove(stdscr, y, x)
#define clear() wclear(stdscr)
#define erase() werase(stdscr)
#define clrtobot() wclrtobot(stdscr)
#define clrtoeol() wclrtoeol(stdscr)
#define insertln() winsertln(stdscr)
#define deleteln() wdeleteln(stdscr)
#define refresh() wrefresh(stdscr)
#define inch() winch(stdscr)
#define insch(c) winsch(stdscr,c)
#define delch() wdelch(stdscr)
#define standout() wstandout(stdscr)
#define standend() wstandend(stdscr)
/*
* mv functions
*/
#define mvwaddch(win,y,x,ch) wmove(win,y,x) == 0 ? 0 : waddch(win,ch)
#define mvwgetch(win,y,x) wmove(win,y,x) == 0 ? 0 : wgetch(win)
#define mvwaddstr(win,y,x,str) wmove(win,y,x) == 0 ? 0 : waddstr(win,str)
#define mvwaddch(win,y,x,ch) wmove(win,y,x) == 0 ? 0 : waddch(win,ch)
#define mvwgetch(win,y,x) wmove(win,y,x) == 0 ? 0 : wgetch(win)
#define mvwaddstr(win,y,x,str) wmove(win,y,x) == 0 ? 0 : waddstr(win,str)
#define mvwgetstr(win,y,x,str) wmove(win,y,x) == 0 ? 0 : wgetstr(win,str)
#define mvwinch(win,y,x) wmove(win,y,x) == 0 ? 0 : winch(win)
#define mvwdelch(win,y,x) wmove(win,y,x) == 0 ? 0 : wdelch(win)
#define mvwinsch(win,y,x,c) wmove(win,y,x) == 0 ? 0 : winsch(win,c)
#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
#define mvgetch(y,x) mvwgetch(stdscr,y,x)
#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
#define mvwinch(win,y,x) wmove(win,y,x) == 0 ? 0 : winch(win)
#define mvwdelch(win,y,x) wmove(win,y,x) == 0 ? 0 : wdelch(win)
#define mvwinsch(win,y,x,c) wmove(win,y,x) == 0 ? 0 : winsch(win,c)
#define mvaddch(y,x,ch) mvwaddch(stdscr,y,x,ch)
#define mvgetch(y,x) mvwgetch(stdscr,y,x)
#define mvaddstr(y,x,str) mvwaddstr(stdscr,y,x,str)
#define mvgetstr(y,x,str) mvwgetstr(stdscr,y,x,str)
#define mvinch(y,x) mvwinch(stdscr,y,x)
#define mvdelch(y,x) mvwdelch(stdscr,y,x)
#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
#define mvinch(y,x) mvwinch(stdscr,y,x)
#define mvdelch(y,x) mvwdelch(stdscr,y,x)
#define mvinsch(y,x,c) mvwinsch(stdscr,y,x,c)
#ifdef TODO
#define TRUE (1)
#define FALSE (0)
#define ERR (0)
#define OK (1)
#define TRUE (1)
#define FALSE (0)
#define ERR (0)
#define OK (1)
/*
* Capabilities from termcap
*/
extern int AM, BS, CA, DA, DB, EO, HC, HZ, IN, MI, MS, NC, NS, OS, UL,
XB, XN, XT, XS, XX;
extern char *AL, *BC, *BT, *CD, *CE, *CL, *CM, *CR, *CS, *DC, *DL,
*DM, *DO, *ED, *EI, *K0, *K1, *K2, *K3, *K4, *K5, *K6,
*K7, *K8, *K9, *HO, *IC, *IM, *IP, *KD, *KE, *KH, *KL,
*KR, *KS, *KU, *LL, *MA, *ND, *NL, *RC, *SC, *SE, *SF,
*SO, *SR, *TA, *TE, *TI, *UC, *UE, *UP, *US, *VB, *VS,
*VE, *AL_PARM, *DL_PARM, *UP_PARM, *DOWN_PARM,
*LEFT_PARM, *RIGHT_PARM;
extern char PC;
XB, XN, XT, XS, XX;
extern char *AL, *BC, *BT, *CD, *CE, *CL, *CM, *CR, *CS, *DC, *DL,
*DM, *DO, *ED, *EI, *K0, *K1, *K2, *K3, *K4, *K5, *K6,
*K7, *K8, *K9, *HO, *IC, *IM, *IP, *KD, *KE, *KH, *KL,
*KR, *KS, *KU, *LL, *MA, *ND, *NL, *RC, *SC, *SE, *SF,
*SO, *SR, *TA, *TE, *TI, *UC, *UE, *UP, *US, *VB, *VS,
*VE, *AL_PARM, *DL_PARM, *UP_PARM, *DOWN_PARM,
*LEFT_PARM, *RIGHT_PARM;
extern char PC;
/*
* From the tty modes...
*/
extern int GT, NONL, UPPERCASE, normtty, _pfast;
extern int GT, NONL, UPPERCASE, normtty, _pfast;
extern int My_term, _echoit, _rawmode, _endwin;
extern int My_term, _echoit, _rawmode, _endwin;
extern char *Def_term, ttytype[];
extern char *Def_term, ttytype[];
extern int _tty_ch, _res_flg;
extern int _tty_ch, _res_flg;
extern SGTTY _tty;
extern SGTTY _tty;
/*
* pseudo functions
*/
#define clearok(win,bf) (win->_clear = bf)
#define leaveok(win,bf) (win->_leave = bf)
#define scrollok(win,bf) (win->_scroll = bf)
#define flushok(win,bf) (bf ? (win->_flags |= _FLUSH):(win->_flags &= ~_FLUSH))
#define getyx(win,y,x) y = win->_cury, x = win->_curx
#define winch(win) (win->_y[win->_cury][win->_curx] & 0177)
#define clearok(win,bf) (win->_clear = bf)
#define leaveok(win,bf) (win->_leave = bf)
#define scrollok(win,bf) (win->_scroll = bf)
#define flushok(win,bf) (bf ? (win->_flags |= _FLUSH):(win->_flags &= ~_FLUSH))
#define getyx(win,y,x) y = win->_cury, x = win->_curx
#define winch(win) (win->_y[win->_cury][win->_curx] & 0177)
#define raw() (_tty.sg_flags|=RAW, _pfast=_rawmode=TRUE, ioctl(_tty_ch,TIOCSETP,&_tty))
#define noraw() (_tty.sg_flags&=~RAW,_rawmode=FALSE,_pfast=!(_tty.sg_flags&CRMOD),ioctl(_tty_ch,TIOCSETP,&_tty))
#define raw() (_tty.sg_flags|=RAW, _pfast=_rawmode=TRUE, ioctl(_tty_ch,TIOCSETP,&_tty))
#define noraw() (_tty.sg_flags&=~RAW,_rawmode=FALSE,_pfast=!(_tty.sg_flags&CRMOD),ioctl(_tty_ch,TIOCSETP,&_tty))
#define cbreak() (_tty.sg_flags |= CBREAK, _rawmode = TRUE, ioctl(_tty_ch,TIOCSETP,&_tty))
#define nocbreak() (_tty.sg_flags &= ~CBREAK,_rawmode=FALSE,ioctl(_tty_ch,TIOCSETP,&_tty))
#define echo() (_tty.sg_flags |= ECHO, _echoit = TRUE, ioctl(_tty_ch, TIOCSETP, &_tty))
#define echo() (_tty.sg_flags |= ECHO, _echoit = TRUE, ioctl(_tty_ch, TIOCSETP, &_tty))
#define noecho() (_tty.sg_flags &= ~ECHO, _echoit = FALSE, ioctl(_tty_ch, TIOCSETP, &_tty))
#define nl() (_tty.sg_flags |= CRMOD, _pfast = _rawmode,ioctl(_tty_ch, TIOCSETP, &_tty))
#define nonl() (_tty.sg_flags &= ~CRMOD,_pfast = TRUE, ioctl(_tty_ch, TIOCSETP,&_tty))
#define savetty() ((void) ioctl(_tty_ch, TIOCGETP, &_tty), _res_flg = _tty.sg_flags)
#define resetty() (_tty.sg_flags = _res_flg, (void) ioctl(_tty_ch, TIOCSETP, &_tty))
#define nl() (_tty.sg_flags |= CRMOD, _pfast = _rawmode,ioctl(_tty_ch, TIOCSETP, &_tty))
#define nonl() (_tty.sg_flags &= ~CRMOD,_pfast = TRUE, ioctl(_tty_ch, TIOCSETP,&_tty))
#define savetty() ((void) ioctl(_tty_ch, TIOCGETP, &_tty), _res_flg = _tty.sg_flags)
#define resetty() (_tty.sg_flags = _res_flg, (void) ioctl(_tty_ch, TIOCSETP, &_tty))
#define erasechar() (_tty.sg_erase)
#define killchar() (_tty.sg_kill)
#define baudrate() (_tty.sg_ospeed)
#define erasechar() (_tty.sg_erase)
#define killchar() (_tty.sg_kill)
#define baudrate() (_tty.sg_ospeed)
/*
* Used to be in unctrl.h.
*/
#define unctrl(c) _unctrl[(c) & 0177]
#define unctrl(c) _unctrl[(c) & 0177]
extern char *_unctrl[];
#endif

View File

@@ -1,38 +1,38 @@
/* open-only flags */
#define O_RDONLY 0x0000 /* open for reading only */
#define O_WRONLY 0x0001 /* open for writing only */
#define O_RDWR 0x0002 /* open for reading and writing */
#define O_ACCMODE 0x0003 /* mask for above modes */
#define O_RDONLY 0x0000 /* open for reading only */
#define O_WRONLY 0x0001 /* open for writing only */
#define O_RDWR 0x0002 /* open for reading and writing */
#define O_ACCMODE 0x0003 /* mask for above modes */
#define O_NONBLOCK 0x0004 /* no delay */
#define O_APPEND 0x0008 /* set append mode */
#define O_SHLOCK 0x0010 /* open with shared file lock */
#define O_EXLOCK 0x0020 /* open with exclusive file lock */
#define O_ASYNC 0x0040 /* signal pgrp when data ready */
#define O_FSYNC 0x0080 /* synchronous writes */
#define O_CREAT 0x0200 /* create if nonexistant */
#define O_TRUNC 0x0400 /* truncate to zero length */
#define O_EXCL 0x0800 /* error if already exists */
#define O_NONBLOCK 0x0004 /* no delay */
#define O_APPEND 0x0008 /* set append mode */
#define O_SHLOCK 0x0010 /* open with shared file lock */
#define O_EXLOCK 0x0020 /* open with exclusive file lock */
#define O_ASYNC 0x0040 /* signal pgrp when data ready */
#define O_FSYNC 0x0080 /* synchronous writes */
#define O_CREAT 0x0200 /* create if nonexistant */
#define O_TRUNC 0x0400 /* truncate to zero length */
#define O_EXCL 0x0800 /* error if already exists */
/*
* Constants used for fcntl(2)
*/
/* command values */
#define F_DUPFD 0 /* duplicate file descriptor */
#define F_GETFD 1 /* get file descriptor flags */
#define F_SETFD 2 /* set file descriptor flags */
#define F_GETFL 3 /* get file status flags */
#define F_SETFL 4 /* set file status flags */
#define F_GETOWN 5 /* get SIGIO/SIGURG proc/pgrp */
#define F_SETOWN 6 /* set SIGIO/SIGURG proc/pgrp */
#define F_DUPFD 0 /* duplicate file descriptor */
#define F_GETFD 1 /* get file descriptor flags */
#define F_SETFD 2 /* set file descriptor flags */
#define F_GETFL 3 /* get file status flags */
#define F_SETFL 4 /* set file status flags */
#define F_GETOWN 5 /* get SIGIO/SIGURG proc/pgrp */
#define F_SETOWN 6 /* set SIGIO/SIGURG proc/pgrp */
/* file descriptor flags (F_GETFD, F_SETFD) */
#define FD_CLOEXEC 1 /* close-on-exec flag */
#define FD_CLOEXEC 1 /* close-on-exec flag */
/* lock operations for flock() */
#define LOCK_SH 1 /* shared file lock */
#define LOCK_EX 2 /* exclusive file lock */
#define LOCK_NB 4 /* don't block when locking */
#define LOCK_UN 8 /* unlock file */
#define LOCK_SH 1 /* shared file lock */
#define LOCK_EX 2 /* exclusive file lock */
#define LOCK_NB 4 /* don't block when locking */
#define LOCK_UN 8 /* unlock file */

View File

@@ -3,74 +3,74 @@
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*/
#ifndef NSIG
#ifndef NSIG
#define NSIG 32
#define NSIG 32
#define SIGHUP 1 /* hangup */
#define SIGINT 2 /* interrupt */
#define SIGQUIT 3 /* quit */
#define SIGILL 4 /* illegal instruction (not reset when caught) */
#define SIGTRAP 5 /* trace trap (not reset when caught) */
#define SIGIOT 6 /* IOT instruction */
#define SIGABRT SIGIOT /* compatibility */
#define SIGEMT 7 /* EMT instruction */
#define SIGFPE 8 /* floating point exception */
#define SIGKILL 9 /* kill (cannot be caught or ignored) */
#define SIGBUS 10 /* bus error */
#define SIGSEGV 11 /* segmentation violation */
#define SIGSYS 12 /* bad argument to system call */
#define SIGPIPE 13 /* write on a pipe with no one to read it */
#define SIGALRM 14 /* alarm clock */
#define SIGTERM 15 /* software termination signal from kill */
#define SIGURG 16 /* urgent condition on IO channel */
#define SIGSTOP 17 /* sendable stop signal not from tty */
#define SIGTSTP 18 /* stop signal from tty */
#define SIGCONT 19 /* continue a stopped process */
#define SIGCHLD 20 /* to parent on child stop or exit */
#define SIGCLD SIGCHLD /* compatibility */
#define SIGTTIN 21 /* to readers pgrp upon background tty read */
#define SIGTTOU 22 /* like TTIN for output if (tp->t_local&LTOSTOP) */
#define SIGIO 23 /* input/output possible signal */
#define SIGXCPU 24 /* exceeded CPU time limit */
#define SIGXFSZ 25 /* exceeded file size limit */
#define SIGVTALRM 26 /* virtual time alarm */
#define SIGPROF 27 /* profiling time alarm */
#define SIGWINCH 28 /* window size changes */
#define SIGUSR1 30 /* user defined signal 1 */
#define SIGUSR2 31 /* user defined signal 2 */
#define SIGHUP 1 /* hangup */
#define SIGINT 2 /* interrupt */
#define SIGQUIT 3 /* quit */
#define SIGILL 4 /* illegal instruction (not reset when caught) */
#define SIGTRAP 5 /* trace trap (not reset when caught) */
#define SIGIOT 6 /* IOT instruction */
#define SIGABRT SIGIOT /* compatibility */
#define SIGEMT 7 /* EMT instruction */
#define SIGFPE 8 /* floating point exception */
#define SIGKILL 9 /* kill (cannot be caught or ignored) */
#define SIGBUS 10 /* bus error */
#define SIGSEGV 11 /* segmentation violation */
#define SIGSYS 12 /* bad argument to system call */
#define SIGPIPE 13 /* write on a pipe with no one to read it */
#define SIGALRM 14 /* alarm clock */
#define SIGTERM 15 /* software termination signal from kill */
#define SIGURG 16 /* urgent condition on IO channel */
#define SIGSTOP 17 /* sendable stop signal not from tty */
#define SIGTSTP 18 /* stop signal from tty */
#define SIGCONT 19 /* continue a stopped process */
#define SIGCHLD 20 /* to parent on child stop or exit */
#define SIGCLD SIGCHLD /* compatibility */
#define SIGTTIN 21 /* to readers pgrp upon background tty read */
#define SIGTTOU 22 /* like TTIN for output if (tp->t_local&LTOSTOP) */
#define SIGIO 23 /* input/output possible signal */
#define SIGXCPU 24 /* exceeded CPU time limit */
#define SIGXFSZ 25 /* exceeded file size limit */
#define SIGVTALRM 26 /* virtual time alarm */
#define SIGPROF 27 /* profiling time alarm */
#define SIGWINCH 28 /* window size changes */
#define SIGUSR1 30 /* user defined signal 1 */
#define SIGUSR2 31 /* user defined signal 2 */
#define SIG_ERR -1
#define SIG_DFL 0
#define SIG_IGN 1
#define BADSIG SIG_ERR
#define SIG_ERR -1
#define SIG_DFL 0
#define SIG_IGN 1
#define BADSIG SIG_ERR
#define SA_ONSTACK 0x0001 /* take signal on signal stack */
#define SA_RESTART 0x0002 /* restart system on signal return */
#define SA_DISABLE 0x0004 /* disable taking signals on alternate stack */
#define SA_NOCLDSTOP 0x0008 /* do not generate SIGCHLD on child stop */
#define SA_ONSTACK 0x0001 /* take signal on signal stack */
#define SA_RESTART 0x0002 /* restart system on signal return */
#define SA_DISABLE 0x0004 /* disable taking signals on alternate stack */
#define SA_NOCLDSTOP 0x0008 /* do not generate SIGCHLD on child stop */
/*
* Flags for sigprocmask:
*/
#define SIG_BLOCK 1 /* block specified signal set */
#define SIG_UNBLOCK 2 /* unblock specified signal set */
#define SIG_SETMASK 3 /* set specified signal set */
#define SIG_BLOCK 1 /* block specified signal set */
#define SIG_UNBLOCK 2 /* unblock specified signal set */
#define SIG_SETMASK 3 /* set specified signal set */
#define MINSIGSTKSZ 128 /* minimum allowable stack */
#define SIGSTKSZ (MINSIGSTKSZ + 384) /* recommended stack size */
#define MINSIGSTKSZ 128 /* minimum allowable stack */
#define SIGSTKSZ (MINSIGSTKSZ + 384) /* recommended stack size */
#define SV_ONSTACK SA_ONSTACK /* take signal on signal stack */
#define SV_INTERRUPT SA_RESTART /* same bit, opposite sense */
#define SV_ONSTACK SA_ONSTACK /* take signal on signal stack */
#define SV_INTERRUPT SA_RESTART /* same bit, opposite sense */
/*
* Macro for converting signal number to a mask suitable for
* sigblock().
*/
#define sigmask(m) (1L << ((m)-1))
#define sigaddset(set, signo) (*(set) |= 1L << ((signo) - 1), 0)
#define sigdelset(set, signo) (*(set) &= ~(1L << ((signo) - 1)), 0)
#define sigemptyset(set) (*(set) = (sigset_t)0, (int)0)
#define sigmask(m) (1L << ((m)-1))
#define sigaddset(set, signo) (*(set) |= 1L << ((signo) - 1), 0)
#define sigdelset(set, signo) (*(set) &= ~(1L << ((signo) - 1)), 0)
#define sigemptyset(set) (*(set) = (sigset_t)0, (int)0)
#define sigfillset(set) (*(set) = ~(sigset_t)0, (int)0)
#define sigismember(set, signo) ((*(set) & (1L << ((signo) - 1))) != 0)

View File

@@ -1,24 +1,24 @@
/*
* SmallC: interface to stdio library.
*/
#define BUFSIZ 1024
#define BUFSIZ 1024
#ifndef NULL
#define NULL 0
#ifndef NULL
#define NULL 0
#endif
#define FILE int
#define EOF (-1)
#define FILE int
#define EOF (-1)
extern int _iob[];
#define stdin (&_iob[0])
#define stdout (&_iob[5])
#define stderr (&_iob[10])
#define stdin (&_iob[0])
#define stdout (&_iob[5])
#define stderr (&_iob[10])
#define SEEK_SET 0 /* set file offset to offset */
#define SEEK_CUR 1 /* set file offset to current plus offset */
#define SEEK_END 2 /* set file offset to EOF plus offset */
#define SEEK_SET 0 /* set file offset to offset */
#define SEEK_CUR 1 /* set file offset to current plus offset */
#define SEEK_END 2 /* set file offset to EOF plus offset */
#define getc fgetc
#define putc fputc

View File

@@ -1,22 +1,22 @@
/*
* Ioctl definitions for GPIO driver.
*/
#define GPIO_PORT(n) (n) /* port number */
#define GPIO_PORTA 0
#define GPIO_PORTB 1
#define GPIO_PORTC 2
#define GPIO_PORTD 3
#define GPIO_PORTE 4
#define GPIO_PORTF 5
#define GPIO_PORTG 6
#define GPIO_PORT(n) (n) /* port number */
#define GPIO_PORTA 0
#define GPIO_PORTB 1
#define GPIO_PORTC 2
#define GPIO_PORTD 3
#define GPIO_PORTE 4
#define GPIO_PORTF 5
#define GPIO_PORTG 6
#define GPIO_CONFIN 0x20016700 /* configure as input */
#define GPIO_CONFIN 0x20016700 /* configure as input */
#define GPIO_CONFOUT 0x20026700 /* configure as output */
#define GPIO_CONFOD 0x20046700 /* configure as open drain */
#define GPIO_DECONF 0x20086700 /* deconfigure */
#define GPIO_STORE 0x20106700 /* store all outputs */
#define GPIO_SET 0x20206700 /* set to 1 by mask */
#define GPIO_CLEAR 0x20406700 /* set to 0 by mask */
#define GPIO_INVERT 0x20806700 /* invert by mask */
#define GPIO_POLL 0x21006700 /* poll */
#define GPIO_LOL 0x82006700 /* display lol picture */
#define GPIO_CONFOD 0x20046700 /* configure as open drain */
#define GPIO_DECONF 0x20086700 /* deconfigure */
#define GPIO_STORE 0x20106700 /* store all outputs */
#define GPIO_SET 0x20206700 /* set to 1 by mask */
#define GPIO_CLEAR 0x20406700 /* set to 0 by mask */
#define GPIO_INVERT 0x20806700 /* invert by mask */
#define GPIO_POLL 0x21006700 /* poll */
#define GPIO_LOL 0x82006700 /* display lol picture */

View File

@@ -1,42 +0,0 @@
/*
* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*
* @(#)stab.h 5.1 (Berkeley) 5/30/85
*/
/* IF YOU ADD DEFINITIONS, ADD THEM TO nm.c as well */
/*
* This file gives definitions supplementing <a.out.h>
* for permanent symbol table entries.
* These must have one of the N_STAB bits on,
* and are subject to relocation according to the masks in <a.out.h>.
*/
/*
* for symbolic debugger, sdb(1):
*/
#define N_GSYM 0x20 /* global symbol: name,,0,type,0 */
#define N_FNAME 0x22 /* procedure name (f77 kludge): name,,0 */
#define N_FUN 0x24 /* procedure: name,,0,linenumber,address */
#define N_STSYM 0x26 /* static symbol: name,,0,type,address */
#define N_LCSYM 0x28 /* .lcomm symbol: name,,0,type,address */
#define N_RSYM 0x40 /* register sym: name,,0,type,register */
#define N_SLINE 0x44 /* src line: 0,,0,linenumber,address */
#define N_SSYM 0x60 /* structure elt: name,,0,type,struct_offset */
#define N_SO 0x64 /* source file name: name,,0,0,address */
#define N_LSYM 0x80 /* local sym: name,,0,type,offset */
#define N_SOL 0x84 /* #included file name: name,,0,0,address */
#define N_PSYM 0xa0 /* parameter: name,,0,type,offset */
#define N_ENTRY 0xa4 /* alternate entry: name,linenumber,address */
#define N_LBRAC 0xc0 /* left bracket: 0,,0,nesting level,address */
#define N_RBRAC 0xe0 /* right bracket: 0,,0,nesting level,address */
#define N_BCOMM 0xe2 /* begin common: name,, */
#define N_ECOMM 0xe4 /* end common: name,, */
#define N_ECOML 0xe8 /* end common (local name): ,,address */
#define N_LENG 0xfe /* second stab entry with length information */
/*
* for the berkeley pascal compiler, pc(1):
*/
#define N_PC 0x30 /* global pascal symbol: name,,0,subtype,line */

View File

@@ -4,32 +4,49 @@
#ifndef _STDARG_H
#define _STDARG_H
/* Define __gnuc_va_list. */
/*
* Define va_start, va_arg, va_end, va_copy.
*/
#if defined(__GNUC__) /* Gnu C */
# define va_start(ap, last) __builtin_va_start((ap), last)
# define va_arg(ap, type) __builtin_va_arg((ap), type)
# define va_end(ap) __builtin_va_end((ap))
# define va_copy(dest, src) __builtin_va_copy((dest), (src))
#elif defined(__PCC__) /* PCC */
# define va_start(ap, last) __builtin_stdarg_start((ap), last)
# define va_arg(ap, type) __builtin_va_arg((ap), type)
# define va_end(ap) __builtin_va_end((ap))
# define va_copy(dest, src) __builtin_va_copy((dest), (src))
#ifdef __GNUC__
# ifndef __GNUC_VA_LIST
# define __GNUC_VA_LIST
typedef __builtin_va_list __gnuc_va_list;
# endif
# define va_start(ap, last) __builtin_va_start((ap), last)
#else /* SmallerC, LCC */
# define va_start(ap, last) (ap = ((char*)&(last) + \
(((sizeof(last) + sizeof(int) - 1) / sizeof(int)) * sizeof(int))))
# define va_arg(ap, type) ((type*)(ap += \
sizeof(type) == sizeof(int) ? sizeof(type) : \
(-(int)(ap) & (sizeof(type) - 1)) + sizeof(type)))[-1]
# define va_end(ap)
# define va_copy(dest, src) (dest = (src))
#endif
#ifdef __PCC__
# define va_start(ap, last) __builtin_stdarg_start((ap), last)
#endif
#define va_arg(ap, type) __builtin_va_arg((ap), type)
#define va_end(ap) __builtin_va_end((ap))
#define va_copy(dest, src) __builtin_va_copy((dest), (src))
/*
* Define va_list.
*/
#ifndef _VA_LIST_T
#define _VA_LIST_T
#ifdef __GNUC__
# define _VA_LIST_T
# if defined(__GNUC__) || defined(__PCC__)
typedef __builtin_va_list va_list;
# else
typedef char *va_list;
# endif
#endif
#ifdef __SMALLER_C__
typedef int *va_list;
#endif
/*
* Define __gnuc_va_list.
*/
#if defined(__GNUC__) && !defined(__GNUC_VA_LIST)
# define __GNUC_VA_LIST
typedef __builtin_va_list __gnuc_va_list;
#endif
#endif /* not _STDARG_H */

View File

@@ -1,8 +1,22 @@
#ifndef _STDDEF_H_
#define _STDDEF_H_
typedef int ptrdiff_t;
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
#ifndef NULL
#define NULL 0
#endif
/* Offset of member MEMBER in a struct of type TYPE. */
#if defined(__GNUC__) && __GNUC__ > 3
#define offsetof(TYPE, MEMBER) __builtin_offsetof (TYPE, MEMBER)
#else
#define offsetof(TYPE, MEMBER) ((size_t) &((TYPE*)0)->MEMBER)
#endif
#endif /* _STDDEF_H_ */

View File

@@ -2,14 +2,12 @@
#ifndef _STDINT_H
#define _STDINT_H
typedef signed char int8_t;
typedef short int int16_t;
typedef int int32_t;
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
typedef signed char int8_t;
typedef short int int16_t;
typedef int int32_t;
typedef unsigned char uint8_t;
typedef unsigned short int uint16_t;
typedef unsigned int uint32_t;
#endif

View File

@@ -5,27 +5,25 @@
*/
#ifndef FILE
#include <sys/types.h>
#define BUFSIZ 1024
extern struct _iobuf {
int _cnt;
char *_ptr; /* should be unsigned char */
char *_base; /* ditto */
int _bufsiz;
short _flag;
short _file;
#define BUFSIZ 1024
extern struct _iobuf {
int _cnt;
char *_ptr; /* should be unsigned char */
char *_base; /* ditto */
int _bufsiz;
short _flag;
short _file;
} _iob[];
#define _IOREAD 01
#define _IOWRT 02
#define _IONBF 04
#define _IOMYBUF 010
#define _IOEOF 020
#define _IOERR 040
#define _IOSTRG 0100
#define _IOLBF 0200
#define _IORW 0400
#define _IOREAD 01
#define _IOWRT 02
#define _IONBF 04
#define _IOMYBUF 010
#define _IOEOF 020
#define _IOERR 040
#define _IOSTRG 0100
#define _IOLBF 0200
#define _IORW 0400
/*
* The following definition is for ANSI C, which took them
@@ -33,58 +31,63 @@ extern struct _iobuf {
* made them official arguments to setvbuf(), without renaming them.
* Hence, these ugly _IOxxx names are *supposed* to appear in user code.
*/
#define _IOFBF 0 /* setvbuf should set fully buffered */
/* _IONBF and _IOLBF are used from the flags above */
#define _IOFBF 0 /* setvbuf should set fully buffered */
/* _IONBF and _IOLBF are used from the flags above */
#ifndef NULL
#define NULL 0
#ifndef NULL
#define NULL 0
#endif
#define FILE struct _iobuf
#define EOF (-1)
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
#define stdin (&_iob[0])
#define stdout (&_iob[1])
#define stderr (&_iob[2])
#define FILE struct _iobuf
#define EOF (-1)
#define SEEK_SET 0 /* set file offset to offset */
#define SEEK_CUR 1 /* set file offset to current plus offset */
#define SEEK_END 2 /* set file offset to EOF plus offset */
#define stdin (&_iob[0])
#define stdout (&_iob[1])
#define stderr (&_iob[2])
#define SEEK_SET 0 /* set file offset to offset */
#define SEEK_CUR 1 /* set file offset to current plus offset */
#define SEEK_END 2 /* set file offset to EOF plus offset */
#ifndef lint
#define getc(p) (--(p)->_cnt>=0? (int)(*(unsigned char *)(p)->_ptr++):_filbuf(p))
#define putc(x, p) (--(p)->_cnt >= 0 ?\
(int)(*(unsigned char *)(p)->_ptr++ = (x)) :\
(((p)->_flag & _IOLBF) && -(p)->_cnt < (p)->_bufsiz ?\
((*(p)->_ptr = (x)) != '\n' ?\
(int)(*(unsigned char *)(p)->_ptr++) :\
_flsbuf(*(unsigned char *)(p)->_ptr, p)) :\
_flsbuf((unsigned char)(x), p)))
#define getc(p) (--(p)->_cnt>=0? (int)(*(unsigned char *)(p)->_ptr++):_filbuf(p))
#define putc(x, p) (--(p)->_cnt >= 0 ?\
(int)(*(unsigned char *)(p)->_ptr++ = (x)) :\
(((p)->_flag & _IOLBF) && -(p)->_cnt < (p)->_bufsiz ?\
((*(p)->_ptr = (x)) != '\n' ?\
(int)(*(unsigned char *)(p)->_ptr++) :\
_flsbuf(*(unsigned char *)(p)->_ptr, p)) :\
_flsbuf((unsigned char)(x), p)))
#endif /* not lint */
#define getchar() getc(stdin)
#define putchar(x) putc(x,stdout)
#define feof(p) (((p)->_flag&_IOEOF)!=0)
#define ferror(p) (((p)->_flag&_IOERR)!=0)
#define fileno(p) ((p)->_file)
#define clearerr(p) ((p)->_flag &= ~(_IOERR|_IOEOF))
#define getchar() getc(stdin)
#define putchar(x) putc(x,stdout)
#define feof(p) (((p)->_flag&_IOEOF)!=0)
#define ferror(p) (((p)->_flag&_IOERR)!=0)
#define fileno(p) ((p)->_file)
#define clearerr(p) ((p)->_flag &= ~(_IOERR|_IOEOF))
FILE *fopen (const char *, const char *);
FILE *fdopen (int, const char *);
FILE *freopen (const char *, const char *, FILE *);
FILE *popen (const char *, const char *);
FILE *fopen (const char *, const char *);
FILE *fdopen (int, const char *);
FILE *freopen (const char *, const char *, FILE *);
FILE *popen (const char *, const char *);
FILE *tmpfile (void);
int fclose (FILE *);
long ftell (FILE *);
long ftell (FILE *);
int fflush (FILE *);
int fgetc (FILE *);
int ungetc (int, FILE *);
int fputc (int, FILE *);
int fputs (const char *, FILE *);
int puts (const char *);
char *fgets (char *, int, FILE *);
char *gets (char *);
FILE *_findiop (void);
int fputc (int, FILE *);
int fputs (const char *, FILE *);
int puts (const char *);
char *fgets (char *, int, FILE *);
char *gets (char *);
FILE *_findiop (void);
int _filbuf (FILE *);
int _flsbuf (unsigned char, FILE *);
void setbuf (FILE *, char *);
@@ -97,36 +100,41 @@ int remove (const char *);
int getw(FILE *stream);
int putw(int w, FILE *stream);
size_t fread (void *, size_t, size_t, FILE *);
size_t fwrite (const void *, size_t, size_t, FILE *);
size_t fread (void *, size_t, size_t, FILE *);
size_t fwrite (const void *, size_t, size_t, FILE *);
int fprintf (FILE *, const char *, ...);
int printf (const char *, ...);
int sprintf (char *, const char *, ...);
int snprintf (char *, size_t, const char *, ...);
int fprintf (FILE *, const char *, ...);
int printf (const char *, ...);
int sprintf (char *, const char *, ...);
int snprintf (char *, size_t, const char *, ...);
int fscanf (FILE *, const char *, ...);
int scanf (const char *, ...);
int sscanf (const char *, const char *, ...);
int fscanf (FILE *, const char *, ...);
int scanf (const char *, ...);
int sscanf (const char *, const char *, ...);
#ifndef _VA_LIST_
#define va_list __builtin_va_list /* For GCC */
# ifdef __GNUC__
# define va_list __builtin_va_list /* For Gnu C */
# endif
# ifdef __SMALLER_C__
# define va_list char * /* For Smaller C */
# endif
#endif
int vfprintf (FILE *, const char *, va_list);
int vprintf (const char *, va_list);
int vsprintf (char *, const char *, va_list);
int vsnprintf (char *, size_t, const char *, va_list);
int vfprintf (FILE *, const char *, va_list);
int vprintf (const char *, va_list);
int vsprintf (char *, const char *, va_list);
int vsnprintf (char *, size_t, const char *, va_list);
int vfscanf (FILE *, const char *, va_list);
int vscanf (const char *, va_list);
int vsscanf (const char *, const char *, va_list);
int vfscanf (FILE *, const char *, va_list);
int vscanf (const char *, va_list);
int vsscanf (const char *, const char *, va_list);
int _doprnt (const char *, va_list, FILE *);
int _doscan (FILE *, const char *, va_list);
int _doprnt (const char *, va_list, FILE *);
int _doscan (FILE *, const char *, va_list);
#ifndef _VA_LIST_
#undef va_list
# undef va_list
#endif
void perror (const char *);

View File

@@ -1,6 +1,6 @@
/*-
* Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved.
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -12,8 +12,8 @@
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
@@ -30,7 +30,7 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*
* @(#)stdlib.h 8.3.2 (2.11BSD) 1996/1/12
* @(#)stdlib.h 8.3.2 (2.11BSD) 1996/1/12
*
* Adapted from the 4.4-Lite CD. The odds of a ANSI C compiler for 2.11BSD
* being slipped under the door are not distinguishable from 0 - so the
@@ -43,60 +43,63 @@
#ifndef _STDLIB_H_
#define _STDLIB_H_
#include <sys/types.h>
#ifndef NULL
#define NULL 0
#define NULL 0
#endif
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
#define EXIT_FAILURE 1
#define EXIT_SUCCESS 0
#define RAND_MAX 0x7fff
#define RAND_MAX 0x7fff
void abort();
int abs (int);
int atexit (void (*)(void));
double atof();
int atoi();
long atol();
void *calloc (size_t, size_t);
void exit (int);
void free (void *);
char *getenv();
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
void abort (void);
int abs (int);
int atexit (void (*)(void));
int atoi (const char *);
long atol (const char *);
void *calloc (size_t, size_t);
void exit (int);
void free (void *);
char *getenv (const char *);
long labs (long);
void *malloc (size_t);
char *mktemp (char *);
void *malloc (size_t);
char *mktemp (char *);
int mkstemp (char *);
void qsort();
int rand();
void *realloc (void*, size_t);
void srand();
double strtod();
long strtol();
unsigned long strtoul();
int system();
void qsort (void *, size_t, size_t, int (*)(const void *, const void *));
int rand (void);
void *realloc (void*, size_t);
void srand (unsigned);
long strtol (const char *, char **, int);
unsigned long strtoul (const char *, char **, int);
int system (const char *);
int putenv (char *string);
int setenv (const char *name, const char *value, int overwrite);
int unsetenv (const char *name);
char *_findenv (const char *name, int *offset);
char *_findenv (const char *name, int *offset);
void *alloca();
void *alloca (size_t size);
int daemon();
char *devname();
int getloadavg(unsigned loadavg[], int nelem);
int daemon (int, int);
char *devname (int dev, int type);
int getloadavg (unsigned loadavg[], int nelem);
extern char *suboptarg; /* getsubopt(3) external variable */
int getsubopt();
extern char *suboptarg; /* getsubopt(3) external variable */
int getsubopt (char **, char **, char **);
long random (void);
char *setstate (char *);
void srandom (unsigned);
long random (void);
char *setstate (char *);
void srandom (unsigned);
char *ecvt (double, int, int *, int *);
char *fcvt (double, int, int *, int *);
char *gcvt (double, int, char *);
double atof (const char *);
double strtod (const char *, char **);
char *ecvt (double, int, int *, int *);
char *fcvt (double, int, int *, int *);
char *gcvt (double, int, char *);
#endif /* _STDLIB_H_ */

View File

@@ -3,41 +3,44 @@
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*/
#include <sys/types.h>
#ifndef NULL
#define NULL 0
#ifndef NULL
#define NULL 0
#endif
char *strcat (char *, const char *);
char *strncat (char *, const char *, size_t);
char *strcpy (char *, const char *);
char *strncpy (char *, const char *, size_t);
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
char *strstr (const char *, const char *);
char *strcat (char *, const char *);
char *strncat (char *, const char *, size_t);
char *strcpy (char *, const char *);
char *strncpy (char *, const char *, size_t);
int strcmp (const char *, const char *);
int strncmp (const char *, const char *, size_t);
size_t strlen (const char *);
char *strstr (const char *, const char *);
int memcmp (const void *, const void *, size_t);
int strcmp (const char *, const char *);
int strncmp (const char *, const char *, size_t);
size_t strlen (const char *);
int memcmp (const void *, const void *, size_t);
void *memmove (void *, const void *, size_t);
void *memccpy (void *, const void *, int, size_t);
void *memchr (const void *, int, size_t);
void *memcpy (void *, const void *, size_t);
void *memset (void *, int, size_t);
char *strchr (const char *, int);
void *memccpy (void *, const void *, int, size_t);
void *memchr (const void *, int, size_t);
void *memcpy (void *, const void *, size_t);
void *memset (void *, int, size_t);
char *strchr (const char *, int);
char *strdup (const char *);
char *strpbrk (const char *, const char *);
char *strrchr (const char *, int);
char *strsep (char **, const char *);
char *strtok (char *, const char *);
char *strtok_r (char *, const char *, char **);
char *strdup (const char *);
char *strpbrk (const char *, const char *);
char *strrchr (const char *, int);
char *strsep (char **, const char *);
char *strtok (char *, const char *);
char *strtok_r (char *, const char *, char **);
size_t strcspn (const char *, const char *);
size_t strspn (const char *, const char *);
size_t strcspn (const char *, const char *);
size_t strspn (const char *, const char *);
char *strerror (int);
const char *syserrlst (int);

View File

@@ -1,6 +1,6 @@
/*-
* Copyright (c) 1990, 1993
* The Regents of the University of California. All rights reserved.
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -12,8 +12,8 @@
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
@@ -30,7 +30,10 @@
* OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
* SUCH DAMAGE.
*/
#include <sys/types.h>
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
int bcmp(const void *, const void *, size_t);
void bcopy(const void *, void *, size_t);

View File

@@ -1,9 +1,9 @@
/* struct.h 4.1 83/05/03 */
/* struct.h 4.1 83/05/03 */
/*
* access to information relating to the fields of a structure
*/
#define fldoff(str, fld) ((int)&(((struct str *)0)->fld))
#define fldsiz(str, fld) (sizeof(((struct str *)0)->fld))
#define strbase(str, ptr, fld) ((struct str *)((char *)(ptr)-fldoff(str, fld)))
#define fldoff(str, fld) ((int)&(((struct str *)0)->fld))
#define fldsiz(str, fld) (sizeof(((struct str *)0)->fld))
#define strbase(str, ptr, fld) ((struct str *)((char *)(ptr)-fldoff(str, fld)))

View File

@@ -9,168 +9,168 @@
* causes cpp to leave a trailing tab when expanding macros in pdp/sys/SYS.h
*/
#define SYS_exit 1
#define SYS_fork 2
#define SYS_read 3
#define SYS_write 4
#define SYS_open 5
#define SYS_close 6
#define SYS_wait4 7
/* 8 is old; creat */
#define SYS_link 9
#define SYS_unlink 10
#define SYS_execv 11
#define SYS_chdir 12
#define SYS_fchdir 13
#define SYS_mknod 14
#define SYS_chmod 15
#define SYS_chown 16
#define SYS_chflags 17
#define SYS_fchflags 18
#define SYS_lseek 19
#define SYS_getpid 20
#define SYS_mount 21
#define SYS_umount 22
#define SYS___sysctl 23
#define SYS_getuid 24
#define SYS_geteuid 25
#define SYS_ptrace 26
#define SYS_getppid 27
#define SYS_statfs 28
#define SYS_fstatfs 29
#define SYS_getfsstat 30
#define SYS_sigaction 31
#define SYS_sigprocmask 32
#define SYS_access 33
#define SYS_sigpending 34
#define SYS_sigaltstack 35
#define SYS_sync 36
#define SYS_kill 37
#define SYS_stat 38
/* 39 was getlogin */
#define SYS_lstat 40
#define SYS_dup 41
#define SYS_pipe 42
/* 43 was setlogin */
#define SYS_profil 44
#define SYS_setuid 45
#define SYS_seteuid 46
#define SYS_getgid 47
#define SYS_getegid 48
#define SYS_setgid 49
#define SYS_setegid 50
#define SYS_exit 1
#define SYS_fork 2
#define SYS_read 3
#define SYS_write 4
#define SYS_open 5
#define SYS_close 6
#define SYS_wait4 7
/* 8 is old; creat */
#define SYS_link 9
#define SYS_unlink 10
#define SYS_execv 11
#define SYS_chdir 12
#define SYS_fchdir 13
#define SYS_mknod 14
#define SYS_chmod 15
#define SYS_chown 16
#define SYS_chflags 17
#define SYS_fchflags 18
#define SYS_lseek 19
#define SYS_getpid 20
#define SYS_mount 21
#define SYS_umount 22
#define SYS___sysctl 23
#define SYS_getuid 24
#define SYS_geteuid 25
#define SYS_ptrace 26
#define SYS_getppid 27
#define SYS_statfs 28
#define SYS_fstatfs 29
#define SYS_getfsstat 30
#define SYS_sigaction 31
#define SYS_sigprocmask 32
#define SYS_access 33
#define SYS_sigpending 34
#define SYS_sigaltstack 35
#define SYS_sync 36
#define SYS_kill 37
#define SYS_stat 38
/* 39 was getlogin */
#define SYS_lstat 40
#define SYS_dup 41
#define SYS_pipe 42
/* 43 was setlogin */
#define SYS_profil 44
#define SYS_setuid 45
#define SYS_seteuid 46
#define SYS_getgid 47
#define SYS_getegid 48
#define SYS_setgid 49
#define SYS_setegid 50
#define SYS_kmemdev 51
#define SYS_phys 52
#define SYS_lock 53
#define SYS_ioctl 54
#define SYS_reboot 55
#define SYS_sigwait 56
#define SYS_symlink 57
#define SYS_readlink 58
#define SYS_execve 59
#define SYS_umask 60
#define SYS_chroot 61
#define SYS_fstat 62
/* 63 is unused */
/* 64 is old; getpagesize */
#define SYS_pselect 65
#define SYS_vfork 2 /* 66 - not fixed yet */
/* 67 is old; vread */
/* 68 is old; vwrite */
#define SYS_sbrk 69
#define SYS_rdglob 70
#define SYS_wrglob 71
/* 71 is unused 4.3: mmap */
#define SYS_msec 72 /* 72 is unused 4.3: vadvise */
/* 73 is unused 4.3: munmap */
/* 74 is unused 4.3: mprotect */
/* 75 is unused 4.3: madvise */
#define SYS_vhangup 76
/* 77 is old; vlimit */
/* 78 is unused 4.3: mincore */
#define SYS_getgroups 79
#define SYS_setgroups 80
#define SYS_getpgrp 81
#define SYS_setpgrp 82
#define SYS_setitimer 83
/* 84 is old; wait,wait3 */
#define SYS_swapon 85
#define SYS_getitimer 86
/* 87 is old; gethostname */
/* 88 is old; sethostname */
#define SYS_getdtablesize 89
#define SYS_dup2 90
/* 91 is unused 4.3: getdopt */
#define SYS_fcntl 92
#define SYS_select 93
/* 94 is unused 4.3: setdopt */
#define SYS_fsync 95
#define SYS_setpriority 96
#define SYS_socket 97
#define SYS_connect 98
#define SYS_accept 99
#define SYS_getpriority 100
#define SYS_send 101
#define SYS_recv 102
#define SYS_sigreturn 103
#define SYS_bind 104
#define SYS_setsockopt 105
#define SYS_listen 106
#define SYS_sigsuspend 107
#define SYS_phys 52
#define SYS_lock 53
#define SYS_ioctl 54
#define SYS_reboot 55
#define SYS_sigwait 56
#define SYS_symlink 57
#define SYS_readlink 58
#define SYS_execve 59
#define SYS_umask 60
#define SYS_chroot 61
#define SYS_fstat 62
/* 63 is unused */
/* 64 is old; getpagesize */
#define SYS_pselect 65
#define SYS_vfork 2 /* 66 - not fixed yet */
/* 67 is old; vread */
/* 68 is old; vwrite */
#define SYS_sbrk 69
#define SYS_rdglob 70
#define SYS_wrglob 71
/* 71 is unused 4.3: mmap */
#define SYS_msec 72 /* 72 is unused 4.3: vadvise */
/* 73 is unused 4.3: munmap */
/* 74 is unused 4.3: mprotect */
/* 75 is unused 4.3: madvise */
#define SYS_vhangup 76
/* 77 is old; vlimit */
/* 78 is unused 4.3: mincore */
#define SYS_getgroups 79
#define SYS_setgroups 80
#define SYS_getpgrp 81
#define SYS_setpgrp 82
#define SYS_setitimer 83
/* 84 is old; wait,wait3 */
#define SYS_swapon 85
#define SYS_getitimer 86
/* 87 is old; gethostname */
/* 88 is old; sethostname */
#define SYS_getdtablesize 89
#define SYS_dup2 90
/* 91 is unused 4.3: getdopt */
#define SYS_fcntl 92
#define SYS_select 93
/* 94 is unused 4.3: setdopt */
#define SYS_fsync 95
#define SYS_setpriority 96
#define SYS_socket 97
#define SYS_connect 98
#define SYS_accept 99
#define SYS_getpriority 100
#define SYS_send 101
#define SYS_recv 102
#define SYS_sigreturn 103
#define SYS_bind 104
#define SYS_setsockopt 105
#define SYS_listen 106
#define SYS_sigsuspend 107
/*
* 108 thru 112 are 4.3BSD compatibility syscalls. sigstack has to remain
* defined because no replacement routine exists. Sigh.
*/
/* 108 is old; sigvec */
/* 109 is old; sigblock */
/* 110 is old; sigsetmask */
/* 111 is old; sigpause */
#define SYS_sigstack 112
/* 108 is old; sigvec */
/* 109 is old; sigblock */
/* 110 is old; sigsetmask */
/* 111 is old; sigpause */
#define SYS_sigstack 112
#define SYS_recvmsg 113
#define SYS_sendmsg 114
/* 115 is old; vtrace */
#define SYS_gettimeofday 116
#define SYS_getrusage 117
#define SYS_getsockopt 118
/* 119 is old; resuba */
#define SYS_readv 120
#define SYS_writev 121
#define SYS_settimeofday 122
#define SYS_fchown 123
#define SYS_fchmod 124
#define SYS_recvfrom 125
/* 126 is old; setreuid */
/* 127 is old; setregid */
#define SYS_rename 128
#define SYS_truncate 129
#define SYS_ftruncate 130
#define SYS_flock 131
/* 132 is unused */
#define SYS_sendto 133
#define SYS_shutdown 134
#define SYS_socketpair 135
#define SYS_mkdir 136
#define SYS_rmdir 137
#define SYS_utimes 138
/* 139 is unused */
#define SYS_adjtime 140
#define SYS_getpeername 141
/* 142 is old; gethostid */
/* 143 is old; sethostid */
#define SYS_getrlimit 144
#define SYS_setrlimit 145
#define SYS_killpg 146
/* 147 is unused */
#define SYS_setquota 148
#define SYS_quota 149
#define SYS_getsockname 150
#define SYS_recvmsg 113
#define SYS_sendmsg 114
/* 115 is old; vtrace */
#define SYS_gettimeofday 116
#define SYS_getrusage 117
#define SYS_getsockopt 118
/* 119 is old; resuba */
#define SYS_readv 120
#define SYS_writev 121
#define SYS_settimeofday 122
#define SYS_fchown 123
#define SYS_fchmod 124
#define SYS_recvfrom 125
/* 126 is old; setreuid */
/* 127 is old; setregid */
#define SYS_rename 128
#define SYS_truncate 129
#define SYS_ftruncate 130
#define SYS_flock 131
/* 132 is unused */
#define SYS_sendto 133
#define SYS_shutdown 134
#define SYS_socketpair 135
#define SYS_mkdir 136
#define SYS_rmdir 137
#define SYS_utimes 138
/* 139 is unused */
#define SYS_adjtime 140
#define SYS_getpeername 141
/* 142 is old; gethostid */
/* 143 is old; sethostid */
#define SYS_getrlimit 144
#define SYS_setrlimit 145
#define SYS_killpg 146
/* 147 is unused */
#define SYS_setquota 148
#define SYS_quota 149
#define SYS_getsockname 150
/*
* 2BSD special calls
*/
/* 151 is unused */
#define SYS_ustore 152
#define SYS_ufetch 153
#define SYS_ucall 154
/* 155 is unused */
/* 151 is unused */
#define SYS_ustore 152
#define SYS_ufetch 153
#define SYS_ucall 154
/* 155 is unused */

View File

@@ -9,89 +9,89 @@
* software without specific prior written permission. This software
* is provided ``as is'' without express or implied warranty.
*
* @(#)sysexits.h 4.4.1 (2.11BSD) 1996/11/29
* @(#)sysexits.h 4.4.1 (2.11BSD) 1996/11/29
*/
/*
** SYSEXITS.H -- Exit status codes for system programs.
**
** This include file attempts to categorize possible error
** exit statuses for system programs, notably delivermail
** and the Berkeley network.
** This include file attempts to categorize possible error
** exit statuses for system programs, notably delivermail
** and the Berkeley network.
**
** Error numbers begin at EX__BASE to reduce the possibility of
** clashing with other exit statuses that random programs may
** already return. The meaning of the codes is approximately
** as follows:
** Error numbers begin at EX__BASE to reduce the possibility of
** clashing with other exit statuses that random programs may
** already return. The meaning of the codes is approximately
** as follows:
**
** EX_USAGE -- The command was used incorrectly, e.g., with
** the wrong number of arguments, a bad flag, a bad
** syntax in a parameter, or whatever.
** EX_DATAERR -- The input data was incorrect in some way.
** This should only be used for user's data & not
** system files.
** EX_NOINPUT -- An input file (not a system file) did not
** exist or was not readable. This could also include
** errors like "No message" to a mailer (if it cared
** to catch it).
** EX_NOUSER -- The user specified did not exist. This might
** be used for mail addresses or remote logins.
** EX_NOHOST -- The host specified did not exist. This is used
** in mail addresses or network requests.
** EX_UNAVAILABLE -- A service is unavailable. This can occur
** if a support program or file does not exist. This
** can also be used as a catchall message when something
** you wanted to do doesn't work, but you don't know
** why.
** EX_SOFTWARE -- An internal software error has been detected.
** This should be limited to non-operating system related
** errors as possible.
** EX_OSERR -- An operating system error has been detected.
** This is intended to be used for such things as "cannot
** fork", "cannot create pipe", or the like. It includes
** things like getuid returning a user that does not
** exist in the passwd file.
** EX_OSFILE -- Some system file (e.g., /etc/passwd, /var/run/utmp,
** etc.) does not exist, cannot be opened, or has some
** sort of error (e.g., syntax error).
** EX_CANTCREAT -- A (user specified) output file cannot be
** created.
** EX_IOERR -- An error occurred while doing I/O on some file.
** EX_TEMPFAIL -- temporary failure, indicating something that
** is not really an error. In sendmail, this means
** that a mailer (e.g.) could not create a connection,
** and the request should be reattempted later.
** EX_PROTOCOL -- the remote system returned something that
** was "not possible" during a protocol exchange.
** EX_NOPERM -- You did not have sufficient permission to
** perform the operation. This is not intended for
** file system problems, which should use NOINPUT or
** CANTCREAT, but rather for higher level permissions.
** For example, kre uses this to restrict who students
** can send mail to.
** EX_USAGE -- The command was used incorrectly, e.g., with
** the wrong number of arguments, a bad flag, a bad
** syntax in a parameter, or whatever.
** EX_DATAERR -- The input data was incorrect in some way.
** This should only be used for user's data & not
** system files.
** EX_NOINPUT -- An input file (not a system file) did not
** exist or was not readable. This could also include
** errors like "No message" to a mailer (if it cared
** to catch it).
** EX_NOUSER -- The user specified did not exist. This might
** be used for mail addresses or remote logins.
** EX_NOHOST -- The host specified did not exist. This is used
** in mail addresses or network requests.
** EX_UNAVAILABLE -- A service is unavailable. This can occur
** if a support program or file does not exist. This
** can also be used as a catchall message when something
** you wanted to do doesn't work, but you don't know
** why.
** EX_SOFTWARE -- An internal software error has been detected.
** This should be limited to non-operating system related
** errors as possible.
** EX_OSERR -- An operating system error has been detected.
** This is intended to be used for such things as "cannot
** fork", "cannot create pipe", or the like. It includes
** things like getuid returning a user that does not
** exist in the passwd file.
** EX_OSFILE -- Some system file (e.g., /etc/passwd, /var/run/utmp,
** etc.) does not exist, cannot be opened, or has some
** sort of error (e.g., syntax error).
** EX_CANTCREAT -- A (user specified) output file cannot be
** created.
** EX_IOERR -- An error occurred while doing I/O on some file.
** EX_TEMPFAIL -- temporary failure, indicating something that
** is not really an error. In sendmail, this means
** that a mailer (e.g.) could not create a connection,
** and the request should be reattempted later.
** EX_PROTOCOL -- the remote system returned something that
** was "not possible" during a protocol exchange.
** EX_NOPERM -- You did not have sufficient permission to
** perform the operation. This is not intended for
** file system problems, which should use NOINPUT or
** CANTCREAT, but rather for higher level permissions.
** For example, kre uses this to restrict who students
** can send mail to.
**
** Maintained by Eric Allman (eric@berkeley, ucbvax!eric) --
** please mail changes to me.
** Maintained by Eric Allman (eric@berkeley, ucbvax!eric) --
** please mail changes to me.
**
** @(#)sysexits.h 4.4 3/24/88
** @(#)sysexits.h 4.4 3/24/88
*/
# define EX_OK 0 /* successful termination */
# define EX_OK 0 /* successful termination */
# define EX__BASE 64 /* base value for error messages */
# define EX__BASE 64 /* base value for error messages */
# define EX_USAGE 64 /* command line usage error */
# define EX_DATAERR 65 /* data format error */
# define EX_NOINPUT 66 /* cannot open input */
# define EX_NOUSER 67 /* addressee unknown */
# define EX_NOHOST 68 /* host name unknown */
# define EX_UNAVAILABLE 69 /* service unavailable */
# define EX_SOFTWARE 70 /* internal software error */
# define EX_OSERR 71 /* system error (e.g., can't fork) */
# define EX_OSFILE 72 /* critical OS file missing */
# define EX_CANTCREAT 73 /* can't create (user) output file */
# define EX_IOERR 74 /* input/output error */
# define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */
# define EX_PROTOCOL 76 /* remote error in protocol */
# define EX_NOPERM 77 /* permission denied */
# define EX_CONFIG 78 /* configuration error */
# define EX_USAGE 64 /* command line usage error */
# define EX_DATAERR 65 /* data format error */
# define EX_NOINPUT 66 /* cannot open input */
# define EX_NOUSER 67 /* addressee unknown */
# define EX_NOHOST 68 /* host name unknown */
# define EX_UNAVAILABLE 69 /* service unavailable */
# define EX_SOFTWARE 70 /* internal software error */
# define EX_OSERR 71 /* system error (e.g., can't fork) */
# define EX_OSFILE 72 /* critical OS file missing */
# define EX_CANTCREAT 73 /* can't create (user) output file */
# define EX_IOERR 74 /* input/output error */
# define EX_TEMPFAIL 75 /* temp failure; user is invited to retry */
# define EX_PROTOCOL 76 /* remote error in protocol */
# define EX_NOPERM 77 /* permission denied */
# define EX_CONFIG 78 /* configuration error */

View File

@@ -1,8 +1,8 @@
/*
* tcl.h --
*
* This header file describes the externally-visible facilities
* of the Tcl interpreter.
* This header file describes the externally-visible facilities
* of the Tcl interpreter.
*
* Copyright 1987-1991 Regents of the University of California
* Permission to use, copy, modify, and distribute this
@@ -16,9 +16,9 @@
#ifndef _TCL
#define _TCL
#define TCL_VERSION "6.7"
#define TCL_MAJOR_VERSION 6
#define TCL_MINOR_VERSION 7
#define TCL_VERSION "6.7"
#define TCL_MAJOR_VERSION 6
#define TCL_MINOR_VERSION 7
/*
* Data structures defined opaquely in this module. The definitions
@@ -28,17 +28,17 @@
* in the "real" definition in tclInt.h.
*/
typedef struct Tcl_Interp {
unsigned char *result; /* Points to result string returned by last
* command. */
unsigned char *result; /* Points to result string returned by last
* command. */
void (*freeProc) (unsigned char *blockPtr);
/* Zero means result is statically allocated.
* If non-zero, gives address of procedure
* to invoke to free the result. Must be
* freed by Tcl_Eval before executing next
* command. */
unsigned short errorLine; /* When TCL_ERROR is returned, this gives
* the line number within the command where
* the error occurred (1 means first line). */
/* Zero means result is statically allocated.
* If non-zero, gives address of procedure
* to invoke to free the result. Must be
* freed by Tcl_Eval before executing next
* command. */
unsigned short errorLine; /* When TCL_ERROR is returned, this gives
* the line number within the command where
* the error occurred (1 means first line). */
} Tcl_Interp;
typedef void *Tcl_Trace;
@@ -50,23 +50,23 @@ typedef void *Tcl_CmdBuf;
* the command procedure returns an integer value, which is one of the
* following:
*
* TCL_OK Command completed normally; interp->result contains
* the command's result.
* TCL_ERROR The command couldn't be completed successfully;
* interp->result describes what went wrong.
* TCL_RETURN The command requests that the current procedure
* return; interp->result contains the procedure's
* return value.
* TCL_BREAK The command requests that the innermost loop
* be exited; interp->result is meaningless.
* TCL_CONTINUE Go on to the next iteration of the current loop;
* interp->result is meaninless.
* TCL_OK Command completed normally; interp->result contains
* the command's result.
* TCL_ERROR The command couldn't be completed successfully;
* interp->result describes what went wrong.
* TCL_RETURN The command requests that the current procedure
* return; interp->result contains the procedure's
* return value.
* TCL_BREAK The command requests that the innermost loop
* be exited; interp->result is meaningless.
* TCL_CONTINUE Go on to the next iteration of the current loop;
* interp->result is meaninless.
*/
#define TCL_OK 0
#define TCL_ERROR 1
#define TCL_RETURN 2
#define TCL_BREAK 3
#define TCL_CONTINUE 4
#define TCL_OK 0
#define TCL_ERROR 1
#define TCL_RETURN 2
#define TCL_BREAK 3
#define TCL_CONTINUE 4
#define TCL_RESULT_SIZE 199
@@ -75,168 +75,168 @@ typedef void *Tcl_CmdBuf;
*/
typedef void (Tcl_CmdDeleteProc) (void *clientData);
typedef int (Tcl_CmdProc) (void *clientData,
Tcl_Interp *interp, int argc, unsigned char *argv[]);
Tcl_Interp *interp, int argc, unsigned char *argv[]);
typedef void (Tcl_CmdTraceProc) (void *clientData,
Tcl_Interp *interp, int level, unsigned char *command, Tcl_CmdProc *proc,
void *cmdClientData, int argc, unsigned char *argv[]);
Tcl_Interp *interp, int level, unsigned char *command, Tcl_CmdProc *proc,
void *cmdClientData, int argc, unsigned char *argv[]);
typedef void (Tcl_FreeProc) (unsigned char *blockPtr);
typedef unsigned char *(Tcl_VarTraceProc) (void *clientData,
Tcl_Interp *interp, unsigned char *part1, unsigned char *part2, int flags);
Tcl_Interp *interp, unsigned char *part1, unsigned char *part2, int flags);
/*
* Flag values passed to Tcl_Eval (see the man page for details; also
* see tclInt.h for additional flags that are only used internally by
* Tcl):
*/
#define TCL_BRACKET_TERM 1
#define TCL_BRACKET_TERM 1
/*
* Flag that may be passed to Tcl_ConvertElement to force it not to
* output braces (careful! if you change this flag be sure to change
* the definitions at the front of tclUtil.c).
*/
#define TCL_DONT_USE_BRACES 1
#define TCL_DONT_USE_BRACES 1
/*
* Flag value passed to Tcl_RecordAndEval to request no evaluation
* (record only).
*/
#define TCL_NO_EVAL -1
#define TCL_NO_EVAL -1
/*
* Specil freeProc values that may be passed to Tcl_SetResult (see
* the man page for details):
*/
#define TCL_STATIC ((Tcl_FreeProc *) 0)
#define TCL_VOLATILE ((Tcl_FreeProc *) -1)
#define TCL_DYNAMIC ((Tcl_FreeProc *) -2)
#define TCL_STATIC ((Tcl_FreeProc *) 0)
#define TCL_VOLATILE ((Tcl_FreeProc *) -1)
#define TCL_DYNAMIC ((Tcl_FreeProc *) -2)
/*
* Flag values passed to variable-related procedures.
*/
#define TCL_GLOBAL_ONLY 1
#define TCL_APPEND_VALUE 2
#define TCL_LIST_ELEMENT 4
#define TCL_NO_SPACE 8
#define TCL_TRACE_READS 0x10
#define TCL_TRACE_WRITES 0x20
#define TCL_TRACE_UNSETS 0x40
#define TCL_TRACE_DESTROYED 0x80
#define TCL_INTERP_DESTROYED 0x100
#define TCL_LEAVE_ERR_MSG 0x200
#define TCL_GLOBAL_ONLY 1
#define TCL_APPEND_VALUE 2
#define TCL_LIST_ELEMENT 4
#define TCL_NO_SPACE 8
#define TCL_TRACE_READS 0x10
#define TCL_TRACE_WRITES 0x20
#define TCL_TRACE_UNSETS 0x40
#define TCL_TRACE_DESTROYED 0x80
#define TCL_INTERP_DESTROYED 0x100
#define TCL_LEAVE_ERR_MSG 0x200
/*
* Additional flag passed back to variable watchers. This flag must
* not overlap any of the TCL_TRACE_* flags defined above or the
* TRACE_* flags defined in tclInt.h.
*/
#define TCL_VARIABLE_UNDEFINED 8
#define TCL_VARIABLE_UNDEFINED 8
/*
* Exported Tcl procedures:
*/
extern void Tcl_AppendElement (Tcl_Interp *interp, unsigned char *string,
int noSep);
extern void Tcl_AppendResult (Tcl_Interp *interp, ...);
extern unsigned char * Tcl_AssembleCmd (Tcl_CmdBuf buffer, unsigned char *string);
extern void Tcl_AddErrorInfo (Tcl_Interp *interp, unsigned char *message);
extern char Tcl_Backslash (unsigned char *src, int *readPtr);
extern int Tcl_CommandComplete (unsigned char *cmd);
extern unsigned char * Tcl_Concat (int argc, unsigned char **argv);
extern int Tcl_ConvertElement (unsigned char *src, unsigned char *dst, int flags);
extern Tcl_CmdBuf Tcl_CreateCmdBuf (void);
extern void Tcl_CreateCommand (Tcl_Interp *interp, unsigned char *cmdName,
Tcl_CmdProc *proc, void *clientData,
Tcl_CmdDeleteProc *deleteProc);
extern Tcl_Interp * Tcl_CreateInterp (void);
extern int Tcl_CreatePipeline (Tcl_Interp *interp, int argc,
unsigned char **argv, int **pidArrayPtr,
int *inPipePtr, int *outPipePtr,
int *errFilePtr);
extern Tcl_Trace Tcl_CreateTrace (Tcl_Interp *interp,
int level, Tcl_CmdTraceProc *proc,
void *clientData);
extern void Tcl_DeleteCmdBuf (Tcl_CmdBuf buffer);
extern int Tcl_DeleteCommand (Tcl_Interp *interp,
unsigned char *cmdName);
extern void Tcl_DeleteInterp (Tcl_Interp *interp);
extern void Tcl_DeleteTrace (Tcl_Interp *interp,
Tcl_Trace trace);
extern void Tcl_DetachPids (int numPids, int *pidPtr);
extern unsigned char * Tcl_ErrnoId (void);
extern int Tcl_Eval (Tcl_Interp *interp, unsigned char *cmd,
int flags, unsigned char **termPtr);
extern int Tcl_EvalFile (Tcl_Interp *interp,
unsigned char *fileName);
extern int Tcl_ExprBoolean (Tcl_Interp *interp, unsigned char *string,
int *ptr);
extern int Tcl_ExprLong (Tcl_Interp *interp, unsigned char *string,
long *ptr);
extern int Tcl_ExprString (Tcl_Interp *interp, unsigned char *string);
extern int Tcl_Fork (void);
extern void Tcl_FreeResult (Tcl_Interp *interp);
extern int Tcl_GetBoolean (Tcl_Interp *interp,
unsigned char *string, int *boolPtr);
extern int Tcl_GetInt (Tcl_Interp *interp,
unsigned char *string, int *intPtr);
extern unsigned char * Tcl_GetVar (Tcl_Interp *interp,
unsigned char *varName, int flags);
extern unsigned char * Tcl_GetVar2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2, int flags);
extern int Tcl_GlobalEval (Tcl_Interp *interp,
unsigned char *command);
extern void Tcl_InitHistory (Tcl_Interp *interp);
extern void Tcl_InitMemory (Tcl_Interp *interp);
extern unsigned char * Tcl_Merge (int argc, unsigned char **argv);
extern unsigned char * Tcl_ParseVar (Tcl_Interp *interp,
unsigned char *string, unsigned char **termPtr);
extern int Tcl_RecordAndEval (Tcl_Interp *interp,
unsigned char *cmd, int flags);
extern void Tcl_ResetResult (Tcl_Interp *interp);
extern int Tcl_ScanElement (unsigned char *string,
int *flagPtr);
extern void Tcl_SetErrorCode (Tcl_Interp *interp, ...);
extern void Tcl_SetResult (Tcl_Interp *interp,
unsigned char *string, Tcl_FreeProc *freeProc);
extern unsigned char * Tcl_SetVar (Tcl_Interp *interp,
unsigned char *varName, unsigned char *newValue, int flags);
extern unsigned char * Tcl_SetVar2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2,
unsigned char *newValue, int flags);
extern unsigned char * Tcl_SignalId (int sig);
extern unsigned char * Tcl_SignalMsg (int sig);
extern int Tcl_SplitList (Tcl_Interp *interp,
unsigned char *list, int *argcPtr, unsigned char ***argvPtr);
extern int Tcl_StringMatch (unsigned char *string,
unsigned char *pattern);
extern unsigned char * Tcl_TildeSubst (Tcl_Interp *interp,
unsigned char *name);
extern int Tcl_TraceVar (Tcl_Interp *interp,
unsigned char *varName, int flags, Tcl_VarTraceProc *proc,
void *clientData);
extern int Tcl_TraceVar2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2, int flags,
Tcl_VarTraceProc *proc, void *clientData);
extern int Tcl_UnsetVar (Tcl_Interp *interp,
unsigned char *varName, int flags);
extern int Tcl_UnsetVar2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2, int flags);
extern void Tcl_UntraceVar (Tcl_Interp *interp,
unsigned char *varName, int flags, Tcl_VarTraceProc *proc,
void *clientData);
extern void Tcl_UntraceVar2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2, int flags,
Tcl_VarTraceProc *proc, void *clientData);
extern int Tcl_VarEval (Tcl_Interp *interp, ...);
extern void * Tcl_VarTraceInfo (Tcl_Interp *interp,
unsigned char *varName, int flags,
Tcl_VarTraceProc *procPtr,
void *prevClientData);
extern void * Tcl_VarTraceInfo2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2, int flags,
Tcl_VarTraceProc *procPtr,
void *prevClientData);
extern int Tcl_WaitPids (int numPids, int *pidPtr,
int *statusPtr);
extern void Tcl_AppendElement (Tcl_Interp *interp, unsigned char *string,
int noSep);
extern void Tcl_AppendResult (Tcl_Interp *interp, ...);
extern unsigned char * Tcl_AssembleCmd (Tcl_CmdBuf buffer, unsigned char *string);
extern void Tcl_AddErrorInfo (Tcl_Interp *interp, unsigned char *message);
extern char Tcl_Backslash (unsigned char *src, int *readPtr);
extern int Tcl_CommandComplete (unsigned char *cmd);
extern unsigned char * Tcl_Concat (int argc, unsigned char **argv);
extern int Tcl_ConvertElement (unsigned char *src, unsigned char *dst, int flags);
extern Tcl_CmdBuf Tcl_CreateCmdBuf (void);
extern void Tcl_CreateCommand (Tcl_Interp *interp, unsigned char *cmdName,
Tcl_CmdProc *proc, void *clientData,
Tcl_CmdDeleteProc *deleteProc);
extern Tcl_Interp * Tcl_CreateInterp (void);
extern int Tcl_CreatePipeline (Tcl_Interp *interp, int argc,
unsigned char **argv, int **pidArrayPtr,
int *inPipePtr, int *outPipePtr,
int *errFilePtr);
extern Tcl_Trace Tcl_CreateTrace (Tcl_Interp *interp,
int level, Tcl_CmdTraceProc *proc,
void *clientData);
extern void Tcl_DeleteCmdBuf (Tcl_CmdBuf buffer);
extern int Tcl_DeleteCommand (Tcl_Interp *interp,
unsigned char *cmdName);
extern void Tcl_DeleteInterp (Tcl_Interp *interp);
extern void Tcl_DeleteTrace (Tcl_Interp *interp,
Tcl_Trace trace);
extern void Tcl_DetachPids (int numPids, int *pidPtr);
extern unsigned char * Tcl_ErrnoId (void);
extern int Tcl_Eval (Tcl_Interp *interp, unsigned char *cmd,
int flags, unsigned char **termPtr);
extern int Tcl_EvalFile (Tcl_Interp *interp,
unsigned char *fileName);
extern int Tcl_ExprBoolean (Tcl_Interp *interp, unsigned char *string,
int *ptr);
extern int Tcl_ExprLong (Tcl_Interp *interp, unsigned char *string,
long *ptr);
extern int Tcl_ExprString (Tcl_Interp *interp, unsigned char *string);
extern int Tcl_Fork (void);
extern void Tcl_FreeResult (Tcl_Interp *interp);
extern int Tcl_GetBoolean (Tcl_Interp *interp,
unsigned char *string, int *boolPtr);
extern int Tcl_GetInt (Tcl_Interp *interp,
unsigned char *string, int *intPtr);
extern unsigned char * Tcl_GetVar (Tcl_Interp *interp,
unsigned char *varName, int flags);
extern unsigned char * Tcl_GetVar2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2, int flags);
extern int Tcl_GlobalEval (Tcl_Interp *interp,
unsigned char *command);
extern void Tcl_InitHistory (Tcl_Interp *interp);
extern void Tcl_InitMemory (Tcl_Interp *interp);
extern unsigned char * Tcl_Merge (int argc, unsigned char **argv);
extern unsigned char * Tcl_ParseVar (Tcl_Interp *interp,
unsigned char *string, unsigned char **termPtr);
extern int Tcl_RecordAndEval (Tcl_Interp *interp,
unsigned char *cmd, int flags);
extern void Tcl_ResetResult (Tcl_Interp *interp);
extern int Tcl_ScanElement (unsigned char *string,
int *flagPtr);
extern void Tcl_SetErrorCode (Tcl_Interp *interp, ...);
extern void Tcl_SetResult (Tcl_Interp *interp,
unsigned char *string, Tcl_FreeProc *freeProc);
extern unsigned char * Tcl_SetVar (Tcl_Interp *interp,
unsigned char *varName, unsigned char *newValue, int flags);
extern unsigned char * Tcl_SetVar2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2,
unsigned char *newValue, int flags);
extern unsigned char * Tcl_SignalId (int sig);
extern unsigned char * Tcl_SignalMsg (int sig);
extern int Tcl_SplitList (Tcl_Interp *interp,
unsigned char *list, int *argcPtr, unsigned char ***argvPtr);
extern int Tcl_StringMatch (unsigned char *string,
unsigned char *pattern);
extern unsigned char * Tcl_TildeSubst (Tcl_Interp *interp,
unsigned char *name);
extern int Tcl_TraceVar (Tcl_Interp *interp,
unsigned char *varName, int flags, Tcl_VarTraceProc *proc,
void *clientData);
extern int Tcl_TraceVar2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2, int flags,
Tcl_VarTraceProc *proc, void *clientData);
extern int Tcl_UnsetVar (Tcl_Interp *interp,
unsigned char *varName, int flags);
extern int Tcl_UnsetVar2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2, int flags);
extern void Tcl_UntraceVar (Tcl_Interp *interp,
unsigned char *varName, int flags, Tcl_VarTraceProc *proc,
void *clientData);
extern void Tcl_UntraceVar2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2, int flags,
Tcl_VarTraceProc *proc, void *clientData);
extern int Tcl_VarEval (Tcl_Interp *interp, ...);
extern void * Tcl_VarTraceInfo (Tcl_Interp *interp,
unsigned char *varName, int flags,
Tcl_VarTraceProc *procPtr,
void *prevClientData);
extern void * Tcl_VarTraceInfo2 (Tcl_Interp *interp,
unsigned char *part1, unsigned char *part2, int flags,
Tcl_VarTraceProc *procPtr,
void *prevClientData);
extern int Tcl_WaitPids (int numPids, int *pidPtr,
int *statusPtr);
#endif /* _TCL */

View File

@@ -4,8 +4,6 @@
#include <sys/ioctl.h>
#include <stdint.h>
#define E_TERMCAP "/etc/termcap"
typedef unsigned char cc_t;
typedef unsigned int speed_t;
typedef unsigned int tcflag_t;
@@ -17,7 +15,7 @@ struct termios
tcflag_t c_oflag; /* output mode flags */
tcflag_t c_cflag; /* control mode flags */
tcflag_t c_lflag; /* local mode flags */
cc_t c_line; /* line discipline */
cc_t c_line; /* line discipline */
cc_t c_cc[NCCS]; /* control characters */
speed_t c_ispeed; /* input speed */
speed_t c_ospeed; /* output speed */
@@ -145,5 +143,4 @@ extern int tcsetattr(int, int, struct termios *);
#define TIOCSETAW _IOW(i, 92, struct termios)
#define TIOCSETAF _IOW(i, 92, struct termios)
#endif

View File

@@ -6,30 +6,44 @@
#ifndef _TIME_H
#define _TIME_H
#include <sys/types.h> /* for time_t */
#ifndef NULL
#define NULL 0
#endif
#ifndef _TIME_T
#define _TIME_T
typedef long time_t;
#endif
#ifndef _SIZE_T
#define _SIZE_T
typedef unsigned size_t;
#endif
/*
* Structure returned by gmtime and localtime calls (see ctime(3)).
*/
struct tm {
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
long tm_gmtoff;
char *tm_zone;
int tm_sec;
int tm_min;
int tm_hour;
int tm_mday;
int tm_mon;
int tm_year;
int tm_wday;
int tm_yday;
int tm_isdst;
long tm_gmtoff;
char *tm_zone;
};
extern struct tm *gmtime(), *localtime();
extern char *asctime(), *ctime();
extern time_t time();
struct tm *gmtime(const time_t *);
struct tm *localtime(const time_t *);
char *asctime(const struct tm *);
char *ctime(const time_t *);
time_t time(time_t *);
size_t strftime (char *s, size_t maxsize, const char *format,
const struct tm *timeptr);
const struct tm *timeptr);
#endif

View File

@@ -4,17 +4,17 @@
* specifies the terms and conditions for redistribution.
*/
struct ttyent { /* see getttyent(3) */
char *ty_name; /* terminal device name */
char *ty_getty; /* command to execute, usually getty */
char *ty_type; /* terminal type for termcap (3X) */
int ty_status; /* status flags (see below for defines) */
char *ty_window; /* command to start up window manager */
char *ty_comment; /* usually the location of the terminal */
struct ttyent { /* see getttyent(3) */
char *ty_name; /* terminal device name */
char *ty_getty; /* command to execute, usually getty */
char *ty_type; /* terminal type for termcap (3X) */
int ty_status; /* status flags (see below for defines) */
char *ty_window; /* command to start up window manager */
char *ty_comment; /* usually the location of the terminal */
};
#define TTY_ON 0x1 /* enable logins (startup getty) */
#define TTY_SECURE 0x2 /* allow root to login */
#define TTY_ON 0x1 /* enable logins (startup getty) */
#define TTY_SECURE 0x2 /* allow root to login */
struct ttyent *getttyent (void);
struct ttyent *getttynam (const char *name);

View File

@@ -1,35 +1,34 @@
/*
* @(#)tzfile.h 5.2.1 (2.11BSD) 1996/11/29
* @(#)tzfile.h 5.2.1 (2.11BSD) 1996/11/29
*/
/*
** Information about time zone files.
*/
/* Time zone object file directory */
#define TZDEFAULT "/etc/localtime"
/* Time zone object file directory */
#define TZDIR "/usr/share/zoneinfo"
#define TZDEFAULT "/etc/localtime"
/*
** Each file begins with. . .
*/
struct tzhead {
char tzh_reserved[32]; /* reserved for future use */
char tzh_timecnt[4]; /* coded number of transition times */
char tzh_typecnt[4]; /* coded number of local time types */
char tzh_charcnt[4]; /* coded number of abbr. chars */
char tzh_reserved[32]; /* reserved for future use */
char tzh_timecnt[4]; /* coded number of transition times */
char tzh_typecnt[4]; /* coded number of local time types */
char tzh_charcnt[4]; /* coded number of abbr. chars */
};
/*
** . . .followed by. . .
**
** tzh_timecnt (char [4])s coded transition times a la time(2)
** tzh_timecnt (unsigned char)s types of local time starting at above
** tzh_typecnt repetitions of
** one (char [4]) coded GMT offset in seconds
** one (unsigned char) used to set tm_isdt
** one (unsigned char) that's an abbreviation list index
** tzh_charcnt (char)s '\0'-terminated zone abbreviaton strings
** tzh_timecnt (char [4])s coded transition times a la time(2)
** tzh_timecnt (unsigned char)s types of local time starting at above
** tzh_typecnt repetitions of
** one (char [4]) coded GMT offset in seconds
** one (unsigned char) used to set tm_isdt
** one (unsigned char) that's an abbreviation list index
** tzh_charcnt (char)s '\0'-terminated zone abbreviaton strings
*/
/*
@@ -43,58 +42,57 @@ struct tzhead {
** 138 years of Pacific Presidential Election time
** (where there are three time zone transitions every fourth year).
*/
#define TZ_MAX_TIMES 370
#define TZ_MAX_TIMES 370
#define NOSOLAR /* We currently don't handle solar time */
#define NOSOLAR /* We currently don't handle solar time */
#ifndef NOSOLAR
#define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */
#ifndef NOSOLAR
#define TZ_MAX_TYPES 256 /* Limited by what (unsigned char)'s can hold */
#else /* !NOSOLAR */
#define TZ_MAX_TYPES 10 /* Maximum number of local time types */
#define TZ_MAX_TYPES 10 /* Maximum number of local time types */
#endif /* !NOSOLAR */
#define TZ_MAX_CHARS 50 /* Maximum number of abbreviation characters */
#define TZ_MAX_CHARS 50 /* Maximum number of abbreviation characters */
#define SECS_PER_MIN 60
#define MINS_PER_HOUR 60
#define HOURS_PER_DAY 24
#define DAYS_PER_WEEK 7
#define DAYS_PER_NYEAR 365
#define DAYS_PER_LYEAR 366
#define SECS_PER_HOUR (SECS_PER_MIN * MINS_PER_HOUR)
#define SECS_PER_DAY ((long) SECS_PER_HOUR * HOURS_PER_DAY)
#define MONS_PER_YEAR 12
#define SECS_PER_MIN 60
#define MINS_PER_HOUR 60
#define HOURS_PER_DAY 24
#define DAYS_PER_WEEK 7
#define DAYS_PER_NYEAR 365
#define DAYS_PER_LYEAR 366
#define SECS_PER_HOUR (SECS_PER_MIN * MINS_PER_HOUR)
#define SECS_PER_DAY ((long) SECS_PER_HOUR * HOURS_PER_DAY)
#define MONS_PER_YEAR 12
#define TM_SUNDAY 0
#define TM_MONDAY 1
#define TM_TUESDAY 2
#define TM_WEDNESDAY 3
#define TM_THURSDAY 4
#define TM_FRIDAY 5
#define TM_SATURDAY 6
#define TM_SUNDAY 0
#define TM_MONDAY 1
#define TM_TUESDAY 2
#define TM_WEDNESDAY 3
#define TM_THURSDAY 4
#define TM_FRIDAY 5
#define TM_SATURDAY 6
#define TM_JANUARY 0
#define TM_FEBRUARY 1
#define TM_MARCH 2
#define TM_APRIL 3
#define TM_MAY 4
#define TM_JUNE 5
#define TM_JULY 6
#define TM_AUGUST 7
#define TM_SEPTEMBER 8
#define TM_OCTOBER 9
#define TM_NOVEMBER 10
#define TM_DECEMBER 11
#define TM_SUNDAY 0
#define TM_JANUARY 0
#define TM_FEBRUARY 1
#define TM_MARCH 2
#define TM_APRIL 3
#define TM_MAY 4
#define TM_JUNE 5
#define TM_JULY 6
#define TM_AUGUST 7
#define TM_SEPTEMBER 8
#define TM_OCTOBER 9
#define TM_NOVEMBER 10
#define TM_DECEMBER 11
#define TM_SUNDAY 0
#define TM_YEAR_BASE 1900
#define TM_YEAR_BASE 1900
#define EPOCH_YEAR 1970
#define EPOCH_WDAY TM_THURSDAY
#define EPOCH_YEAR 1970
#define EPOCH_WDAY TM_THURSDAY
/*
** Accurate only for the past couple of centuries;
** that will probably do.
*/
#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0)
#define isleap(y) ((((y) % 4) == 0 && ((y) % 100) != 0) || ((y) % 400) == 0)

View File

@@ -1,6 +1,6 @@
/*-
* Copyright (c) 1991, 1993, 1994
* The Regents of the University of California. All rights reserved.
* The Regents of the University of California. All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions
@@ -12,8 +12,8 @@
* documentation and/or other materials provided with the distribution.
* 3. All advertising materials mentioning features or use of this software
* must display the following acknowledgement:
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* This product includes software developed by the University of
* California, Berkeley and its contributors.
* 4. Neither the name of the University nor the names of its contributors
* may be used to endorse or promote products derived from this software
* without specific prior written permission.
@@ -38,64 +38,64 @@
*/
#ifndef _UNISTD_H_
#define _UNISTD_H_
#define _UNISTD_H_
#include <sys/types.h>
#define STDIN_FILENO 0 /* standard input file descriptor */
#define STDOUT_FILENO 1 /* standard output file descriptor */
#define STDERR_FILENO 2 /* standard error file descriptor */
#define STDIN_FILENO 0 /* standard input file descriptor */
#define STDOUT_FILENO 1 /* standard output file descriptor */
#define STDERR_FILENO 2 /* standard error file descriptor */
#ifndef NULL
#define NULL 0 /* null pointer constant */
#define NULL 0 /* null pointer constant */
#endif
/* Values for the second argument to access.
These may be OR'd together. */
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
#define R_OK 4 /* Test for read permission. */
#define W_OK 2 /* Test for write permission. */
#define X_OK 1 /* Test for execute permission. */
#define F_OK 0 /* Test for existence. */
void _exit (int);
int access();
void _exit (int);
int access();
unsigned int alarm();
pid_t fork();
gid_t getegid();
uid_t geteuid();
gid_t getgid();
char *getlogin();
pid_t getpgrp();
pid_t getpid();
pid_t getppid();
uid_t getuid();
off_t lseek();
ssize_t read();
unsigned int sleep();
char *ttyname();
ssize_t write (int fd, const void *buf, size_t count);
pid_t fork();
gid_t getegid();
uid_t geteuid();
gid_t getgid();
char *getlogin();
pid_t getpgrp();
pid_t getpid();
pid_t getppid();
uid_t getuid();
off_t lseek();
ssize_t read();
unsigned int sleep();
char *ttyname();
ssize_t write (int fd, const void *buf, size_t count);
int truncate (const char *path, off_t length);
int ftruncate (int fd, off_t length);
void *brk (const void *addr);
int _brk (const void *addr);
char *crypt();
void endusershell();
long gethostid();
char *getpass();
char *getusershell();
char *getwd();
void psignal();
extern char *sys_siglist[];
char *re_comp();
void *sbrk (int incr);
int sethostid();
void setusershell();
void sync();
unsigned int ualarm();
void usleep();
void *brk (const void *addr);
int _brk (const void *addr);
char *crypt();
void endusershell();
long gethostid();
char *getpass();
char *getusershell();
char *getwd();
void psignal();
extern char *sys_siglist[];
char *re_comp();
void *sbrk (int incr);
int sethostid();
void setusershell();
void sync();
unsigned int ualarm();
void usleep();
int pause (void);
pid_t vfork();
pid_t vfork();
int pipe (int pipefd[2]);
int close (int fd);
@@ -126,36 +126,41 @@ int stat (const char *path, struct stat *buf);
int fstat (int fd, struct stat *buf);
int lstat (const char *path, struct stat *buf);
int execl (const char *path, const char *arg0, ... /* NULL */);
int execle (const char *path, const char *arg0, ... /* NULL, char *envp[] */);
int execlp (const char *file, const char *arg0, ... /* NULL */);
int execl (const char *path, const char *arg0, ... /* NULL */);
int execle (const char *path, const char *arg0, ... /* NULL, char *envp[] */);
int execlp (const char *file, const char *arg0, ... /* NULL */);
int execv (const char *path, char *const argv[]);
int execve (const char *path, char *const arg0[], char *const envp[]);
int execvp (const char *file, char *const argv[]);
int execv (const char *path, char *const argv[]);
int execve (const char *path, char *const arg0[], char *const envp[]);
int execvp (const char *file, char *const argv[]);
extern char **environ; /* Environment, from crt0. */
extern const char *__progname; /* Program name, from crt0. */
extern char **environ; /* Environment, from crt0. */
extern const char *__progname; /* Program name, from crt0. */
int getopt (int argc, char * const argv[], const char *optstring);
int getopt (int argc, char * const argv[], const char *optstring);
extern char *optarg; /* getopt(3) external variables */
extern int opterr, optind, optopt;
extern char *optarg; /* getopt(3) external variables */
extern int opterr, optind, optopt;
#ifndef _VA_LIST_
#define va_list __builtin_va_list /* For GCC */
# ifdef __GNUC__
# define va_list __builtin_va_list /* For Gnu C */
# endif
# ifdef __SMALLER_C__
# define va_list char * /* For Smaller C */
# endif
#endif
void err (int eval, const char *fmt, ...);
void errx (int eval, const char *fmt, ...);
void warn (const char *fmt, ...);
void warnx (const char *fmt, ...);
void verr (int eval, const char *fmt, va_list ap);
void verrx (int eval, const char *fmt, va_list ap);
void vwarn (const char *fmt, va_list ap);
void vwarnx (const char *fmt, va_list ap);
void err (int eval, const char *fmt, ...);
void errx (int eval, const char *fmt, ...);
void warn (const char *fmt, ...);
void warnx (const char *fmt, ...);
void verr (int eval, const char *fmt, va_list ap);
void verrx (int eval, const char *fmt, va_list ap);
void vwarn (const char *fmt, va_list ap);
void vwarnx (const char *fmt, va_list ap);
#ifndef _VA_LIST_
#undef va_list
# undef va_list
#endif
#endif /* !_UNISTD_H_ */

View File

@@ -15,13 +15,13 @@
* WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR PURPOSE.
*/
#define UT_NAMESIZE 15
#define UT_LINESIZE 8
#define UT_HOSTSIZE 16
#define UT_NAMESIZE 15
#define UT_LINESIZE 8
#define UT_HOSTSIZE 16
struct utmp {
char ut_line[UT_LINESIZE];
char ut_name[UT_NAMESIZE];
char ut_host[UT_HOSTSIZE];
long ut_time;
char ut_line[UT_LINESIZE];
char ut_name[UT_NAMESIZE];
char ut_host[UT_HOSTSIZE];
long ut_time;
};

View File

@@ -2,63 +2,62 @@
* Author: S.M. Schultz
*
* ----------- Modification History ------------
* Version Date Reason For Modification
* 1.0 01Jan80 1. Initial release.
* 2.0 31Mar83 2. Cleanup.
* 3.0 08Sep93 3. Change v_foffset to off_t instead of int.
* 3.1 21Oct93 4. Create union member of structure to
* make 'int' or 'char' access to data easy.
* Define segment+offset and modified macros.
* Place into the public domain.
* --------------------------------------------------
*/
* Version Date Reason For Modification
* 1.0 01Jan80 1. Initial release.
* 2.0 31Mar83 2. Cleanup.
* 3.0 08Sep93 3. Change v_foffset to off_t instead of int.
* 3.1 21Oct93 4. Create union member of structure to
* make 'int' or 'char' access to data easy.
* Define segment+offset and modified macros.
* Place into the public domain.
* --------------------------------------------------
*/
#include <sys/types.h>
#define MAXSEGNO 16384 /* max number of segments in a space */
#define BYTESPERSEG 1024 /* must be power of two! */
#define LOG2BPS 10 /* log2(BYTESPERSEG) */
#define WORDSPERSEG (BYTESPERSEG/sizeof (int))
#define MAXSEGNO 16384 /* max number of segments in a space */
#define BYTESPERSEG 1024 /* must be power of two! */
#define LOG2BPS 10 /* log2(BYTESPERSEG) */
#define WORDSPERSEG (BYTESPERSEG/sizeof (int))
struct vspace {
int v_fd; /* file for swapping */
off_t v_foffset; /* offset for computing file addresses */
int v_maxsegno; /* number of segments in this space */
};
int v_fd; /* file for swapping */
off_t v_foffset; /* offset for computing file addresses */
int v_maxsegno; /* number of segments in this space */
};
struct dlink { /* general double link structure */
struct dlink *fwd; /* forward link */
struct dlink *back; /* back link */
};
struct dlink *fwd; /* forward link */
struct dlink *back; /* back link */
};
struct vseg { /* structure of a segment in memory */
struct dlink s_link; /* for linking into lru list */
int s_segno; /* segment number */
struct vspace *s_vspace; /* which virtual space */
int s_lock_count;
int s_flags;
union
{
int _winfo[WORDSPERSEG]; /* the actual segment */
char _cinfo[BYTESPERSEG];
} v_un;
};
struct vseg { /* structure of a segment in memory */
struct dlink s_link; /* for linking into lru list */
int s_segno; /* segment number */
struct vspace *s_vspace; /* which virtual space */
int s_lock_count;
int s_flags;
union {
int _winfo[WORDSPERSEG]; /* the actual segment */
char _cinfo[BYTESPERSEG];
} v_un;
};
#define s_winfo v_un._winfo
#define s_cinfo v_un._cinfo
#define s_winfo v_un._winfo
#define s_cinfo v_un._cinfo
/* masks for s_flags */
#define S_DIRTY 01 /* segment has been modified */
#define S_DIRTY 01 /* segment has been modified */
long nswaps; /* number of swaps */
long nmapsegs; /* number of mapseg calls */
long nswaps; /* number of swaps */
long nmapsegs; /* number of mapseg calls */
int vminit(), vmopen();
struct vseg *vmmapseg();
void vmlock(), vmunlock(), vmclrseg(), vmmodify();
void vmflush(), vmclose();
int vminit(), vmopen();
struct vseg *vmmapseg();
void vmlock(), vmunlock(), vmclrseg(), vmmodify();
void vmflush(), vmclose();
typedef long VADDR;
#define VMMODIFY(seg) (seg->s_flags |= S_DIRTY)
#define VSEG(va) ((short)(va >> LOG2BPS))
#define VOFF(va) ((u_short)va % BYTESPERSEG)
typedef long VADDR;
#define VMMODIFY(seg) (seg->s_flags |= S_DIRTY)
#define VSEG(va) ((short)(va >> LOG2BPS))
#define VOFF(va) ((u_short)va % BYTESPERSEG)

View File

@@ -1,5 +1,5 @@
#ifndef _SOCKET_H_
#define _SOCKET_H_
#ifndef _SOCKET_H_
#define _SOCKET_H_
#include "w5100.h"

View File

@@ -9,8 +9,8 @@
* Updated August/3/2011 by Lowell Scott Hanson to be compatable with chipKIT boards
* Updated April/13/2012 by Serge Vakulenko for RetroBSD project
*/
#ifndef W5100_H_INCLUDED
#define W5100_H_INCLUDED
#ifndef W5100_H_INCLUDED
#define W5100_H_INCLUDED
#include <stdint.h>

1
lib/.gitignore vendored
View File

@@ -11,3 +11,4 @@ ranlib.h
retroImage
size
strip
gccdump.s

View File

@@ -1,21 +1,11 @@
TOPSRC = $(shell cd ..; pwd)
SUBDIR = startup libc libcurses libtermlib libwiznet
SUBDIR = startup libc libm libcurses libtermlib libwiznet libreadline libgpanel
PROG = ar as aout ld nm ranlib size strip
# Build a list of the host include directories.
CPP = $(shell gcc -print-prog-name=cc1)
HOSTINC = $(addprefix -I,$(shell echo | $(CPP) -v 2>&1 | grep '^ /.*include'))
# Add system include path
ifeq (,$(wildcard /usr/include/i386-linux-gnu))
HOSTINC += -I/usr/include
else
HOSTINC += -I/usr/include/i386-linux-gnu
endif
CFLAGS += -nostdinc -fno-builtin -g -Werror -Wall -DCROSS -I. $(HOSTINC) \
-I$(TOPSRC)/include -I$(TOPSRC)/src/cmd/ar \
-I$(TOPSRC)/src/cmd/as
CFLAGS = -m32 -Os -std=gnu89 -fno-builtin -g -Wall -DCROSS -I. \
-idirafter $(TOPSRC)/include \
-idirafter $(TOPSRC)/src/cmd/ar \
-idirafter $(TOPSRC)/src/cmd/as
LDFLAGS += -g
AR_OBJS = ar.o append.o archive.o contents.o delete.o extract.o \
@@ -24,8 +14,9 @@ AOUT_OBJS = aout.o mips-dis.o
RANLIB_OBJS = ranlib.o archive.o
HEADERS = a.out.h ar.h nlist.h ranlib.h
vpath %.c $(TOPSRC)/src/cmd/ar $(TOPSRC)/src/cmd/as $(TOPSRC)/src/cmd/ld \
$(TOPSRC)/src/cmd/nm $(TOPSRC)/src/cmd/ranlib $(TOPSRC)/src/cmd
vpath %.c $(TOPSRC)/src/cmd/aout $(TOPSRC)/src/cmd/ar $(TOPSRC)/src/cmd/as \
$(TOPSRC)/src/cmd/ld $(TOPSRC)/src/cmd/nm $(TOPSRC)/src/cmd/ranlib \
$(TOPSRC)/src/cmd
all install depend: $(HEADERS) $(SUBDIR) $(PROG)
-for i in $(SUBDIR); do $(MAKE) -C $$i $(MFLAGS) DESTDIR=$(DESTDIR) $@; done
@@ -35,28 +26,28 @@ clean:
for i in $(SUBDIR); do $(MAKE) -C $$i $(MFLAGS) clean; done
ar: $(AR_OBJS)
$(CC) $(LDFLAGS) -o $@ $(AR_OBJS) $(LIBS)
$(CC) -m32 $(LDFLAGS) -o $@ $(AR_OBJS) $(LIBS)
as: as.o
$(CC) $(LDFLAGS) -o $@ $< $(LIBS)
$(CC) -m32 $(LDFLAGS) -o $@ $< $(LIBS)
aout: $(AOUT_OBJS)
$(CC) $(LDFLAGS) -o $@ $(AOUT_OBJS) $(LIBS)
$(CC) -m32 $(LDFLAGS) -o $@ $(AOUT_OBJS) $(LIBS)
ld: ld.o
$(CC) $(LDFLAGS) -o $@ $< $(LIBS)
$(CC) -m32 $(LDFLAGS) -o $@ $< $(LIBS)
nm: nm.o
$(CC) $(LDFLAGS) -o $@ $< $(LIBS)
$(CC) -m32 $(LDFLAGS) -o $@ $< $(LIBS)
ranlib: $(RANLIB_OBJS)
$(CC) $(LDFLAGS) -o $@ $(RANLIB_OBJS) $(LIBS)
$(CC) -m32 $(LDFLAGS) -o $@ $(RANLIB_OBJS) $(LIBS)
size: size.o
$(CC) $(LDFLAGS) -o $@ $< $(LIBS)
$(CC) -m32 $(LDFLAGS) -o $@ $< $(LIBS)
strip: strip.o
$(CC) $(LDFLAGS) -o $@ $< $(LIBS)
$(CC) -m32 $(LDFLAGS) -o $@ $< $(LIBS)
$(HEADERS):
-ln -s -f ../include/a.out.h .

View File

@@ -8,7 +8,7 @@ vpath %.c $(LIBCDIR)/mips/sys $(LIBCDIR)/gen $(LIBCDIR)/stdio \
$(LIBCDIR)/stdlib $(LIBCDIR)/string $(LIBCDIR)/inet \
$(LIBCDIR)/compat $(LIBCDIR)/runtime
CFLAGS += -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
CFLAGS = -Os -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
ASFLAGS += -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -I$(LIBCDIR)/mips/sys
# modules which can not use SYSCALL and must be assembled from sources. The
@@ -87,15 +87,16 @@ OBJS += inet_addr.o inet_network.o inet_netof.o \
inet_ntoa.o inet_lnaof.o inet_maddr.o
# libc/compat
OBJS += creat.o ftime.o gethostid.o gtty.o memccpy.o memchr.o \
OBJS += creat.o ftime.o gethostid.o memccpy.o memchr.o \
memcmp.o memcpy.o memset.o nice.o pause.o rand.o \
sethostid.o setregid.o setreuid.o setrgid.o setruid.o \
sigcompat.o strchr.o strrchr.o stty.o times.o tmpnam.o \
sigcompat.o strchr.o strrchr.o times.o tmpnam.o \
utime.o
# libc/runtime
OBJS += addsf3.o comparesf2.o divsf3.o fixsfsi.o floatsisf.o \
mulsf3.o negsf2.o subsf3.o sc_case.o
mulsf3.o negsf2.o subsf3.o sc_case.o fixunssfsi.o \
floatunsisf.o
all: ../libc.a

View File

@@ -3,7 +3,7 @@ include $(TOPSRC)/target.mk
vpath %.c $(TOPSRC)/src/libcurses
CFLAGS += -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
CFLAGS = -Os -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
OBJS = addch.o addstr.o box.o clear.o clrtobot.o clrtoeol.o cr_put.o \
cr_tty.o curses.o delch.o deleteln.o delwin.o endwin.o erase.o \

18
lib/libgpanel/Makefile Normal file
View File

@@ -0,0 +1,18 @@
TOPSRC = $(shell cd ../..; pwd)
include $(TOPSRC)/target.mk
vpath %.c $(TOPSRC)/src/libgpanel
CFLAGS = -Os -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
OBJS = open.o clear.o pixel.o line.o rect.o fill.o fill_triangle.o \
circle.o image.o char.o text.o text_width.o
all: ../libgpanel.a
../libgpanel.a: ../ar ../ranlib $(OBJS)
../ar rc $@ $(OBJS)
../ranlib $@
clean:
rm -f *~ *.o a.out *.a

18
lib/libm/Makefile Normal file
View File

@@ -0,0 +1,18 @@
TOPSRC = $(shell cd ../..; pwd)
include $(TOPSRC)/target.mk
vpath %.c $(TOPSRC)/src/libm
CFLAGS = -Os -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
OBJS = asin.o atan.o exp.o erf.o floor.o fmod.o hypot.o j0.o j1.o \
jn.o log.o pow.o sin.o sinh.o sqrt.o tan.o tanh.o
all: ../libm.a
../libm.a: ../ar ../ranlib $(OBJS)
../ar rc $@ $(OBJS)
../ranlib $@
clean:
rm -f *~ *.o a.out *.a

17
lib/libreadline/Makefile Normal file
View File

@@ -0,0 +1,17 @@
TOPSRC = $(shell cd ../..; pwd)
include $(TOPSRC)/target.mk
vpath %.c $(TOPSRC)/src/libreadline
CFLAGS = -Os -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
OBJS = readline.o
all: ../libreadline.a
../libreadline.a: ../ar ../ranlib $(OBJS)
../ar rc $@ $(OBJS)
../ranlib $@
clean:
rm -f *~ *.o a.out *.a

View File

@@ -3,7 +3,7 @@ include $(TOPSRC)/target.mk
vpath %.c $(TOPSRC)/src/libtermlib
CFLAGS += -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
CFLAGS = -Os -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
OBJS = termcap.o tgoto.o tputs.o tcattr.o

View File

@@ -3,7 +3,7 @@ include $(TOPSRC)/target.mk
vpath %.c $(TOPSRC)/src/libwiznet
CFLAGS += -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
CFLAGS = -Os -B$(TOPSRC)/lib/ $(DEFS) -Wa,-x -Wall -Werror
OBJS = w5100.o socket.o ethernet.o client.o server.o udp.o

View File

@@ -9,7 +9,7 @@ TOPSRC = $(shell cd ../..; pwd)
include $(TOPSRC)/target.mk
vpath %.c $(TOPSRC)/src/startup-mips
CFLAGS = -B$(TOPSRC)/lib/ -O -Wa,-x $(DEFS)
CFLAGS = -Os -B$(TOPSRC)/lib/ -Wa,-x $(DEFS)
OBJS = ../crt0.o

7
root/.profile Normal file
View File

@@ -0,0 +1,7 @@
echo 'erase ^?, kill ^U, intr ^C'
stty dec
PATH=/bin:/sbin:/etc
export PATH
HOME=/
export HOME
export TERM

2716
rootfs.manifest Normal file

File diff suppressed because it is too large Load Diff

5
share/.gitignore vendored
View File

@@ -1,3 +1,6 @@
re.help
calendar
emg.keys
misc
re.help
unixbench
zoneinfo

25486
share/dict/words Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -1,30 +0,0 @@
TOPSRC = $(shell cd ../..; pwd)
include $(TOPSRC)/target.mk
CFLAGS += -Werror
ASFLAGS += -DCROSS
ASLDFLAGS = --oformat=elf32-tradlittlemips -N -nostartfiles -T $(TOPSRC)/src/elf32-mips.ld
all: hello cplus
hello: hello.o
${CC} ${LDFLAGS} -o hello.elf hello.o ${LIBS}
${OBJDUMP} -S hello.elf > hello.dis
${SIZE} hello.elf
${ELF2AOUT} hello.elf $@
cplus: cplus.o
${CXX} ${LDFLAGS} -nostdlib -o cplus.elf cplus.o ${LIBS}
${OBJDUMP} -S cplus.elf > cplus.dis
${SIZE} cplus.elf
${ELF2AOUT} cplus.elf $@
echo: echo.o
${LD} ${ASLDFLAGS} -o $@.elf $@.o
${OBJDUMP} -S $@.elf > $@.dis
${SIZE} $@.elf
${ELF2AOUT} $@.elf $@
./aout $@ > $@.dis
clean:
rm -f *.o *.elf ${MAN} hello cplus *.elf *.dis tags *~

View File

@@ -1,7 +0,0 @@
#include <stdio.h>
int main()
{
printf ("Hello, C World!\n");
return 0;
}

View File

@@ -4,9 +4,6 @@ all: ashello echo
ashello: ashello.o
$(LD) ashello.o -o $@
chello: chello.o
$(CC) chello.o -o $@
echo: echo.o
$(LD) $@.o -o $@

View File

@@ -0,0 +1,17 @@
TOPSRC = $(shell cd ../../..; pwd)
include $(TOPSRC)/target.mk
CFLAGS += -Werror
ASFLAGS += -DCROSS
ASLDFLAGS = --oformat=elf32-tradlittlemips -N -nostartfiles -T $(TOPSRC)/src/elf32-mips.ld
all: echo
echo: echo.o
${LD} ${ASLDFLAGS} -o $@.elf $@.o
${OBJDUMP} -S $@.elf > $@.dis
${SIZE} $@.elf
${ELF2AOUT} $@.elf $@
clean:
rm -f *.o *.elf ${MAN} echo *.elf *.dis tags *~

50
share/examples/c/Makefile Normal file
View File

@@ -0,0 +1,50 @@
CC = cc
PROG = hello stdarg skeleton primelist primesum test1 test2 test3 \
gpio adc rain q8 tetris lcd6
all: $(PROG)
hello: hello.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
stdarg: stdarg.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
skeleton: skeleton.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
primelist: primelist.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
primesum: primesum.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
gpio: gpio.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
adc: adc.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
rain: rain.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
q8: q8.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
tetris: tetris.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
lcd6: lcd6.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
test1: test1.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
test2: test2.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
test3: test3.c
$(CC) $(CFLAGS) -o $@ $(LDFLAGS) $?
clean:
rm -f *.o *~ $(PROG)

View File

@@ -0,0 +1,27 @@
TOPSRC = $(shell cd ../../..; pwd)
include $(TOPSRC)/target.mk
CFLAGS += -Werror -Wall
all: chello stdarg lcd6
chello: chello.o
${CC} ${LDFLAGS} -o chello.elf chello.o ${LIBS}
${OBJDUMP} -S chello.elf > chello.dis
${SIZE} chello.elf
${ELF2AOUT} chello.elf $@
tetris: tetris.o
${CC} ${LDFLAGS} -o tetris.elf tetris.o ${LIBS}
${OBJDUMP} -S tetris.elf > tetris.dis
${SIZE} tetris.elf
${ELF2AOUT} tetris.elf $@
lcd6: lcd6.o
${CC} ${LDFLAGS} -o lcd6.elf lcd6.o ${LIBS}
${OBJDUMP} -S lcd6.elf > lcd6.dis
${SIZE} lcd6.elf
${ELF2AOUT} lcd6.elf $@
clean:
rm -f *.o *.elf ${MAN} chello stdarg lcd6 *.elf *.dis tags *~

29
share/examples/c/adc.c Normal file
View File

@@ -0,0 +1,29 @@
/*
* Example of reading ADC data.
*/
#include <stdio.h>
#include <stdlib.h>
#include <fcntl.h>
#include <unistd.h>
char buf[100];
int main(void)
{
int i, fd, value;
for (i=0; i<16; i++) {
sprintf(buf, "/dev/adc%d", i);
fd = open(buf, O_RDWR);
if (fd < 0) {
printf("Error: unable to open %s\n", buf);
} else {
if (read(fd, buf, 20) > 0) {
value = strtol (buf, 0, 0);
printf("adc%-2d = %d\n", i, value);
}
close(fd);
}
}
return 0;
}

26
share/examples/c/gpio.c Normal file
View File

@@ -0,0 +1,26 @@
/*
* Example of polling general purpose i/o pins.
*/
#include <stdio.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/gpio.h>
int main(void)
{
int fd, pnum, value;
fd = open ("/dev/porta", O_RDWR);
if (fd < 0) {
perror ("/dev/porta");
return -1;
}
for (pnum=0; pnum<7; pnum++) {
value = ioctl (fd, GPIO_POLL | GPIO_PORT (pnum), 0);
if (value < 0)
perror ("GPIO_POLL");
printf ("port%c = 0x%04x\n", pnum + 'A', value);
}
return 0;
}

7
share/examples/c/hello.c Normal file
View File

@@ -0,0 +1,7 @@
#include <stdio.h>
int main()
{
printf ("Hello, C World!\n");
return 0;
}

287
share/examples/c/lcd6.c Normal file
View File

@@ -0,0 +1,287 @@
/*
* Demo for 6 digit LCD module based on HT1261 controller.
* Based on example sources from http://www.canton-electronics.com
*
* Copyright (C) 2015 Serge Vakulenko
*
* Permission to use, copy, modify, and distribute this software
* and its documentation for any purpose and without fee is hereby
* granted, provided that the above copyright notice appear in all
* copies and that both that the copyright notice and this
* permission notice and warranty disclaimer appear in supporting
* documentation, and that the name of the author not be used in
* advertising or publicity pertaining to distribution of the
* software without specific, written prior permission.
*
* The author disclaim all warranties with regard to this
* software, including all implied warranties of merchantability
* and fitness. In no event shall the author be liable for any
* special, indirect or consequential damages or any damages
* whatsoever resulting from loss of use, data or profits, whether
* in an action of contract, negligence or other tortious action,
* arising out of or in connection with the use or performance of
* this software.
*/
#include <stdlib.h>
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/time.h>
#include <sys/gpio.h>
/*
* Digits, decimal dots and battery levels:
* A B C D E F
* -- -- -- -- -- -- z
* | | | | | | | | | | | | y
* -- -- -- -- -- -- x
* | | | | | | | | | | | |
* -- -- -- c -- d -- e --
*
* Memory map:
* Byte 0, bits 0-6 - segments of digit 'F'
* Byte 0, bit 7 - decimal dot 'e'
* Byte 1, bits 0-6 - segments of digit 'E'
* Byte 1, bit 7 - decimal dot 'd'
* Byte 2, bits 0-6 - segments of digit 'D'
* Byte 2, bit 7 - decimal dot 'c'
* Byte 3, bits 0-6 - segments of digit 'C'
* Byte 3, bit 7 - battery level 'x'
* Byte 4, bits 0-6 - segments of digit 'B'
* Byte 4, bit 7 - battery level 'y'
* Byte 5, bits 0-6 - segments of digit 'A'
* Byte 5, bit 7 - battery level 'z'
*
* Segments are mapped to bits 0-6:
* --4--
* 0---5
* --1--
* 2---6
* --3--
*/
/*
* Signal assignment.
* LED modulee is connected to pins 16,17,18 of Fubarino SD board.
*
* Fubarino PIC32 LED module
* --------------------------
* 16 RE0 CS
* 17 RE1 WR
* 18 RE2 DATA
*/
#define gpio_cs_clear() ioctl(gpio, GPIO_PORTE | GPIO_CLEAR, 1 << 0)
#define gpio_cs_set() ioctl(gpio, GPIO_PORTE | GPIO_SET, 1 << 0)
#define gpio_wr_clear() ioctl(gpio, GPIO_PORTE | GPIO_CLEAR, 1 << 1)
#define gpio_wr_set() ioctl(gpio, GPIO_PORTE | GPIO_SET, 1 << 1)
#define gpio_data_clear() ioctl(gpio, GPIO_PORTE | GPIO_CLEAR, 1 << 2)
#define gpio_data_set() ioctl(gpio, GPIO_PORTE | GPIO_SET, 1 << 2)
/*
* HT1621 commands
*/
#define HT_SYS_DIS 0x00 /* Turn off system osc and bias generator */
#define HT_SYS_EN 0x01 /* Turn on system oscillator */
#define HT_LCD_OFF 0x02 /* Turn off LCD bias generator */
#define HT_LCD_ON 0x03 /* Turn on LCD bias generator */
#define HT_CLOCK_XTAL 0x14 /* Crystal 32kHz */
#define HT_CLOCK_RC 0x18 /* On-chip RC oscillator 256kHz */
#define HT_CLOCK_EXT 0x1c /* External clock */
#define HT_BIAS_1_3 0x21 /* LCD 1/3 bias option, 2 commons default */
#define HT_COMMONS_3 0x04 /* 3 commons option */
#define HT_COMMONS_4 0x08 /* 4 commons option */
/*
* Mapping of symbols to segments.
* 0, 1, 2, 3, 4, 5, 6, 7,
* 8, 9, A, b, C, c, d, E,
* F, H, h, L, n, N, o, P,
* r, t, U, -, ,
*/
const char char_to_segm[] = {
0x7D, 0x60, 0x3E, 0x7A, 0x63, 0x5B, 0x5F, 0x70,
0x7F, 0x7B, 0x77, 0x4F, 0x1D, 0x0E, 0x6E, 0x1F,
0x17, 0x67, 0x47, 0x0D, 0x46, 0x75, 0x37, 0x06,
0x0F, 0x6D, 0x02, 0x00,
};
/*
* File descriptor for GPIO driver.
*/
int gpio;
/*
* Suspend the process for some amount of milliseconds.
*/
void mdelay(unsigned msec)
{
usleep(msec * 1000);
}
/*
* Send a series of bits to HT1621.
* Up to 8 bits, high bit first.
* Max clock rate is 150kHz.
*/
void ht_send(int nbits, int data)
{
data <<= (8 - nbits);
gpio_wr_clear();
while (nbits-- > 0) {
if (data & 0x80)
gpio_data_set();
else
gpio_data_clear();
gpio_wr_set();
gpio_wr_clear();
data <<= 1;
}
}
/*
* Send command to HT1621.
*/
void ht_cmd(int command)
{
gpio_cs_clear();
ht_send(3, 0x4); /* Mode "100" */
ht_send(8, command);
gpio_cs_set();
}
/*
* Send data and command.
*/
void ht_write(int addr, int data)
{
gpio_cs_clear();
ht_send(3, 0x5); /* Mode "101" */
ht_send(6, addr << 1); /* Half-byte address 6 bits */
ht_send(8, data); /* Data 8 bits */
gpio_cs_set();
}
/*
* Initialize LCD controller.
*/
void lcd_init()
{
/* Open GPIO driver. */
gpio = open("/dev/porta", 1);
if (gpio < 0) {
perror("/dev/porta");
exit(-1);
}
/* Configure pins RE0-RE2 as outputs. */
ioctl(gpio, GPIO_PORTE | GPIO_CONFOUT, 0x07);
gpio_cs_set();
gpio_wr_clear();
/* Setup appropriate HT1621 mode. */
ht_cmd(HT_SYS_EN);
ht_cmd(HT_CLOCK_RC);
ht_cmd(HT_BIAS_1_3 | HT_COMMONS_4);
ht_cmd(HT_LCD_ON);
}
/*
* Set display memory to given value.
*/
void lcd_clear(int value)
{
int i;
for (i=0; i<6; i++) {
ht_write(i, value);
}
}
/*
* LCD on/off.
*/
void lcd_enable(int on)
{
if (on)
ht_cmd(HT_LCD_ON);
else
ht_cmd(HT_LCD_OFF);
}
/*
* Display data.
* val - Data to be displayed, 0-999999
* dot - Display decimal dot, 0-3
* bat - Battery level, 0-3
*/
void lcd_display(unsigned val, int dot, int bat)
{
int i, byte[6];
/* Set numeric value. */
byte[5] = char_to_segm[val / 100000];
byte[4] = char_to_segm[(val / 10000) % 10];
byte[3] = char_to_segm[(val / 1000) % 10];
byte[2] = char_to_segm[(val / 100) % 10];
byte[1] = char_to_segm[(val / 10) % 10];
byte[0] = char_to_segm[val % 10];
/* Enable decimal dot/ */
switch (dot) {
case 1:
byte[0] |= 1 << 7;
break;
case 2:
byte[1] |= 1 << 7;
break;
case 3:
byte[2] |= 1 << 7;
break;
default:
break;
}
if (bat > 0)
byte[3] |= 1 << 7;
if (bat > 1)
byte[4] |= 1 << 7;
if (bat > 2)
byte[5] |= 1 << 7;
for (i=0; i<6; i++) {
ht_write(i, byte[i]);
}
}
int main()
{
int i;
/* Initialize hardware. */
lcd_init();
/* Blink all segments twice. */
lcd_clear(0xff);
mdelay(1000);
lcd_clear(0);
mdelay(1000);
lcd_clear(0xff);
mdelay(1000);
lcd_clear(0);
mdelay(1000);
/* Show all characters on all segments. */
for (i=0; i<sizeof(char_to_segm); i++) {
lcd_clear(char_to_segm[i]);
mdelay(200);
}
lcd_clear(0);
/* Display counter 0 to 999999. */
for (;;) {
for (i=0; i<999999; i++) {
lcd_display(i, i/10%4, i/10%4);
mdelay(100);
}
}
return 0;
}

View File

@@ -0,0 +1,35 @@
/*
* Print the list of prime numbers up to 100.
*/
#include <stdio.h>
int isprime(int);
int main(void)
{
int n;
for (n=2; n<100; ++n) {
if (isprime(n)) {
printf("%d ", n);
}
}
printf("\n");
}
int isprime(int n)
{
int j;
if (n == 2)
return 1;
if (n % 2 == 0)
return 0;
for (j=3; j*j<=n; j+=2)
if (n % j == 0)
return 0;
return 1;
}

View File

@@ -0,0 +1,35 @@
/*
* Compute the sum of prime numbers up to 10000.
*/
#include <stdio.h>
int isprime(int);
int main(void)
{
int sum, n;
sum = 0;
for (n=2; n<10000; ++n) {
if (isprime(n)) {
sum += n;
}
}
printf("Sum of primes less than 10000: %d\n", sum);
}
int isprime(int n)
{
int j;
if (n == 2)
return 1;
if (n % 2 == 0)
return 0;
for (j=3; j*j<=n; j+=2)
if (n % j == 0)
return 0;
return 1;
}

209
share/examples/c/q8.c Normal file
View File

@@ -0,0 +1,209 @@
/*
* Eight Queens puzzle
*
* (C) 2010 by Mark Sproul
* Open source as per standard Arduino code
* Modified by Pito 12/2012 for SmallC and then by Alexey Frunze for Smaller C
*/
#include <stdio.h>
#define TRUE 1
#define FALSE 0
unsigned int gChessBoard[8];
unsigned int gLoopCounter;
int gValidCount;
int CheckCurrentBoard(void)
{
int ii;
int jj;
int theRow;
int theLongRow;
int theLongColumns;
int bitCount;
//* we know we have 1 in each row,
//* Check for 1 in each column
theRow = 0;
for (ii=0; ii<8; ii++) {
theRow |= gChessBoard[ii];
}
if (theRow != 0x0ff) {
return FALSE;
}
//* we have 1 in each column, now check the diagonals
theLongColumns = 0;
for (ii=0; ii<8; ii++) {
theLongRow = gChessBoard[ii] & 0x0ff;
theLongRow = theLongRow << ii;
theLongColumns |= theLongRow;
}
//* now count the bits
bitCount = 0;
for (ii=0; ii<16; ii++) {
if ((theLongColumns & 0x01) == 0x01) {
bitCount++;
}
theLongColumns = theLongColumns >> 1;
}
if (bitCount != 8) {
return FALSE;
}
//* we now have to check the other diagonal
theLongColumns = 0;
for (ii=0; ii<8; ii++) {
theLongRow = gChessBoard[ii] & 0x0ff;
theLongRow = theLongRow << 8;
theLongRow = theLongRow >> ii;
theLongColumns |= theLongRow;
}
//* now count the bits
bitCount = 0;
for (ii=0; ii<16; ii++) {
if ((theLongColumns & 0x01) == 0x01) {
bitCount++;
}
theLongColumns = theLongColumns >> 1;
}
if (bitCount != 8) {
return FALSE;
}
return TRUE;
}
int CheckForDone(void)
{
int ii;
int weAreDone;
int theRow;
weAreDone = FALSE;
//* we know we have 1 in each row,
//* Check for 1 in each column
theRow = 0;
for (ii=0; ii<8; ii++) {
theRow |= gChessBoard[ii];
}
if (theRow == 0x01) {
weAreDone = TRUE;
}
return weAreDone;
}
void RotateQueens(void)
{
int ii;
int keepGoing;
int theRow;
ii = 0;
keepGoing = TRUE;
while (keepGoing && (ii < 8)) {
theRow = gChessBoard[ii] & 0x0ff;
theRow = (theRow >> 1) & 0x0ff;
if (theRow != 0) {
gChessBoard[ii] = theRow;
keepGoing = FALSE;
} else {
gChessBoard[ii] = 0x080;
}
ii++;
}
}
void PrintChessBoard(void)
{
int ii;
int jj;
int theRow;
char textString[32];
printf("\nLoop= %d\n", gLoopCounter);
printf("Solution count= %d\n", gValidCount);
printf("+----------------+\n");
for (ii=0; ii<8; ii++) {
theRow = gChessBoard[ii];
printf("|");
for (jj=0; jj<8; jj++) {
if (theRow & 0x080) {
printf("Q ");
} else {
printf(". ");
}
theRow = theRow << 1;
}
printf("|\n");
}
printf("+----------------+\n");
}
int main(void)
{
int ii;
printf("\nEight Queens brute force");
printf("\n************************\n");
//* put the 8 queens on the board, 1 in each row
for (ii=0; ii<8; ii++) {
gChessBoard[ii] = 0x080;
}
PrintChessBoard();
gLoopCounter = 0;
gValidCount = 0;
while (1) {
gLoopCounter++;
if (CheckCurrentBoard()) {
gValidCount++;
PrintChessBoard();
} else if ((gLoopCounter % 1000) == 0) {
//PrintChessBoard();
}
RotateQueens();
if (CheckForDone()) {
//int elapsedSeconds;
//int elapsedMinutes;
//int elapsedHours;
//elapsedSeconds = millis() / 1000;
//elapsedMinutes = elapsedSeconds / 60;
//elapsedHours = elapsedMinutes / 60;
printf("----------------------------------\n");
printf("All done\n");
PrintChessBoard();
printf("----------------------------------\n");
//Serial.print("total seconds=");
//Serial.println(elapsedSeconds);
//Serial.print("hours=");
//Serial.println(elapsedHours);
//Serial.print("minutes=");
//Serial.println(elapsedMinutes % 60);
//Serial.print("seconds=");
//Serial.println(elapsedSeconds % 60);
return (1);
}
}
}

129
share/examples/c/rain.c Normal file
View File

@@ -0,0 +1,129 @@
/*
* Example of using termcap library for SmallC.
* 11/3/1980 EPS/CITHEP
*
* Copyright (c) 1980 Regents of the University of California.
* All rights reserved. The Berkeley software License Agreement
* specifies the terms and conditions for redistribution.
*/
#include <stdio.h>
#include <stdlib.h>
#include <signal.h>
#include <unistd.h>
#define CO 80 /* number of columns */
#define LI 24 /* number of lines */
#define CL "\33[H\33[J" /* clear the screen */
#define CM "\33[%u;%uH" /* move the cursor to row, column */
#define BC "\b" /* move cursor left */
#define DN "\33[B" /* move cursor down */
#define ND " " /* move cursor right */
int xpos[5], ypos[5];
char outbuf[BUFSIZ];
void moveto(int col, int row)
{
printf(CM, row, col);
}
void onsig(int n)
{
moveto(0, LI - 1);
fflush(stdout);
_exit(0);
}
int main(void)
{
int x, y, j;
setbuf(stdout, outbuf);
for (j = SIGHUP; j <= SIGTERM; j++)
if (signal(j, SIG_IGN) != SIG_IGN)
signal(j, onsig);
fputs(CL, stdout);
fflush(stdout);
for (j = 5; --j >= 0; ) {
xpos[j] = 2 + rand() % (CO - 4);
ypos[j] = 2 + rand() % (LI - 4);
}
for (j = 0; ; ) {
x = 2 + rand() % (CO - 4);
y = 2 + rand() % (LI - 4);
moveto(x, y);
putchar('.');
moveto(xpos[j], ypos[j]);
putchar('o');
if (j == 0)
j = 4;
else
--j;
moveto(xpos[j], ypos[j]);
putchar('O');
if (j == 0)
j = 4;
else
--j;
moveto(xpos[j], ypos[j]-1);
putchar('-');
fputs(DN, stdout);
fputs(BC, stdout);
fputs(BC, stdout);
fputs("|.|", stdout);
fputs(DN, stdout);
fputs(BC, stdout);
fputs(BC, stdout);
putchar('-');
if (j == 0)
j = 4;
else
--j;
moveto(xpos[j], ypos[j]-2);
putchar('-');
fputs(DN, stdout);
fputs(BC, stdout);
fputs(BC, stdout);
fputs("/ \\", stdout);
moveto(xpos[j]-2, ypos[j]);
fputs("| O |", stdout);
moveto(xpos[j]-1, ypos[j]+1);
fputs("\\ /", stdout);
fputs(DN, stdout);
fputs(BC, stdout);
fputs(BC, stdout);
putchar('-');
if (j == 0)
j = 4;
else
--j;
moveto(xpos[j], ypos[j]-2);
putchar(' ');
fputs(DN, stdout);
fputs(BC, stdout);
fputs(BC, stdout);
putchar(' ');
fputs(ND, stdout);
putchar(' ');
moveto(xpos[j]-2, ypos[j]);
putchar(' ');
fputs(ND, stdout);
putchar(' ');
fputs(ND, stdout);
putchar(' ');
moveto(xpos[j]-1, ypos[j]+1);
putchar(' ');
fputs(ND, stdout);
putchar(' ');
fputs(DN, stdout);
fputs(BC, stdout);
fputs(BC, stdout);
putchar(' ');
xpos[j] = x;
ypos[j] = y;
fflush(stdout);
usleep(100000);
}
}

View File

@@ -0,0 +1,92 @@
/*
* Generic skeleton for a C program.
* When you create your own program based on this skeleton,
* you can replace the author's name and copyright with
* whatever your want. When you redistribute this skeleton or
* enhance it, please leave my name and copyright on it.
*
* Copyright (C) 1993-2014 Serge Vakulenko, <vak@cronyx.ru>
*
* Permission to use, copy, modify, and distribute this software
* and its documentation for any purpose and without fee is hereby
* granted, provided that the above copyright notice appear in all
* copies and that both that the copyright notice and this
* permission notice and warranty disclaimer appear in supporting
* documentation, and that the name of the author not be used in
* advertising or publicity pertaining to distribution of the
* software without specific, written prior permission.
*
* The author disclaim all warranties with regard to this
* software, including all implied warranties of merchantability
* and fitness. In no event shall the author be liable for any
* special, indirect or consequential damages or any damages
* whatsoever resulting from loss of use, data or profits, whether
* in an action of contract, negligence or other tortious action,
* arising out of or in connection with the use or performance of
* this software.
*/
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
const char version[] = "1.0";
const char copyright[] = "Copyright (C) 1993-2014 Serge Vakulenko";
char *progname; /* Name of the current program (argv[0]) */
int verbose; /* Option -v */
int trace; /* Option -t */
int debug; /* Option -d */
void usage ()
{
fprintf (stderr, "Generic C skeleton, Version %s, %s\n", version, copyright);
fprintf (stderr, "Usage:\n\t%s [-vtd] [-r count] file...\n", progname);
fprintf (stderr, "Options:\n");
fprintf (stderr, "\t-v\tverbose mode\n");
fprintf (stderr, "\t-t\ttrace mode\n");
fprintf (stderr, "\t-d\tdebug\n");
fprintf (stderr, "\t-r #\trepeat count\n");
exit (-1);
}
int main (int argc, char **argv)
{
int count = 1; /* Option -r # */
progname = *argv;
for (;;) {
switch (getopt (argc, argv, "vtdr:")) {
case EOF:
break;
case 'v':
++verbose;
continue;
case 't':
++trace;
continue;
case 'd':
++debug;
continue;
case 'r':
count = strtol (optarg, 0, 0);
continue;
default:
usage ();
}
break;
}
argc -= optind;
argv += optind;
if (argc < 1)
usage ();
while (count-- > 0) {
int i;
for (i=0; i<argc; ++i)
printf ("%s ", argv[i]);
printf ("\n");
}
return (0);
}

Some files were not shown because too many files have changed in this diff Show More