Commit graph

78 commits

Author SHA1 Message Date
Philip Homburg acfaea0fa2 More space on ramdisk 2007-08-07 11:22:35 +00:00
Ben Gras 8eb09f6ddc . readall: use lseek64() to read more than 4GB of a device
. vfs: 64-bit offset support for character device i/o
   (also remove unused dev_bio function)
 . memory: /dev/null and /dev/zero are infinitely large, don't stop
   reading/writing at 4GB
2007-04-24 13:27:33 +00:00
Ben Gras 9843d7a625 For /dev/mem, map in memory to be copied to memory's own address space
one page at a time, and use safecopies to copy it to the requesting
process.

This lets /dev/mem access the entire physical address space, as the minix
page tables only allow access by default to physical RAM, which breaks
e.g. the VESA X driver in some cases.
2007-03-09 16:03:19 +00:00
Ben Gras 3b08825d85 . service tells you which device it couldn't stat
. bigger rs and ramdisk for drivers
. sanity check for pv_set macro for oversized arguments
2007-02-23 18:22:46 +00:00
Ben Gras 654f6faf05 don't let /dev/mem read beyond top of physical memory 2007-02-16 15:57:05 +00:00
Ben Gras 9f2f3dd488 don't call mkdep with an absolute path 2007-02-08 16:26:20 +00:00
Ben Gras ebde52a9bc supply instance to 2nd at_wini instance.
requires a little cooperation from at_wini.
2007-02-08 14:23:03 +00:00
Ben Gras a12c7ad963 Start a 2nd copy of at_wini, for /dev/c1*. This requires a slightly
larger rs.
2007-02-08 14:04:59 +00:00
Ben Gras 63a271200e Make /dev/c1* device nodes on disk and on the boot ramdisk.
. include c1* nodes in std in MAKEDEV
 . this requires a slightly larger shell
 . this requires a larger blocksize on the boot ramdisk (to fit
   /dev/ in direct blocks for mkfs with a proto file)
 . also more inodes and kB's on the boot ramdisk
2007-02-08 13:51:35 +00:00
Ben Gras 8ea438ae93 Retired DEV_{READ,WRITE,GATHER,SCATTER,IOCTL} (safe versions *_S are to
be used and drivers should never receieve these 'unsafe' variants
any more).
2007-02-07 16:22:19 +00:00
Ben Gras ce5add84e8 put mfs in /sbin, where mount expects it. 2007-01-24 15:50:04 +00:00
Ben Gras 980b58d8d2 ramdisk can be set only once. 2007-01-22 15:37:26 +00:00
Ben Gras b01aff70d2 use servers/inet/mq.[ch] to queue messages using mq_queue() in
libdriver.  at_wini now queues messages it can't handle it receives when
waiting for an interrupt. this way it can do receive(ANY) and timeouts
should be working again (were broken for VFS, as with the advent of VFS,
at_wini could get requests from a filesystem while it was waiting for an
interrupt - as a hack, the receive() was changed to receive(HARDWARE)).

Added mq.c to libdriver, and made libdriver an actual library that
drivers link with -L../libdriver -ldriver. (So adding files, if
necessary, is easier next time.)
2007-01-12 13:33:12 +00:00
Ben Gras 6f77685609 Split of architecture-dependent and -independent functions for i386,
mainly in the kernel and headers. This split based on work by
Ingmar Alting <iaalting@cs.vu.nl> done for his Minix PowerPC architecture
port.

 . kernel does not program the interrupt controller directly, do any
   other architecture-dependent operations, or contain assembly any more,
   but uses architecture-dependent functions in arch/$(ARCH)/.
 . architecture-dependent constants and types defined in arch/$(ARCH)/include.
 . <ibm/portio.h> moved to <minix/portio.h>, as they have become, for now,
   architecture-independent functions.
 . int86, sdevio, readbios, and iopenable are now i386-specific kernel calls
   and live in arch/i386/do_* now.
 . i386 arch now supports even less 86 code; e.g. mpx86.s and klib86.s have
   gone, and 'machine.protected' is gone (and always taken to be 1 in i386).
   If 86 support is to return, it should be a new architecture.
 . prototypes for the architecture-dependent functions defined in
   kernel/arch/$(ARCH)/*.c but used in kernel/ are in kernel/proto.h
 . /etc/make.conf included in makefiles and shell scripts that need to
   know the building architecture; it defines ARCH=<arch>, currently only
   i386.
 . some basic per-architecture build support outside of the kernel (lib)
 . in clock.c, only dequeue a process if it was ready
 . fixes for new include files

files deleted:
 . mpx/klib.s - only for choosing between mpx/klib86 and -386
 . klib86.s - only for 86

i386-specific files files moved (or arch-dependent stuff moved) to arch/i386/:
 . mpx386.s (entry point)
 . klib386.s
 . sconst.h
 . exception.c
 . protect.c
 . protect.h
 . i8269.c
2006-12-22 15:22:27 +00:00
Philip Homburg bafc45a309 First cut at 64-bit file offsets in block devices for mkfs/fsck. 2006-11-27 14:21:43 +00:00
Philip Homburg 954ad990e5 at_wini now calls pci_reserve. 2006-11-01 14:55:00 +00:00
Philip Homburg 0c1d433f60 rs changes (also use driver configurations in the image ramdisk) 2006-10-31 13:35:04 +00:00
Ben Gras 7195fe3325 System statistical and call profiling
support by Rogier Meurs <rogier@meurs.org>.
2006-10-30 15:53:38 +00:00
Ben Gras fa0ba56bc9 Merge of VFS by Balasz Gerofi with Minix trunk. 2006-10-25 13:40:36 +00:00
Philip Homburg 0b2c167c48 Bigger ramdisk 2006-10-20 13:59:42 +00:00
Philip Homburg 8082aad9b2 Use /usr/tmp as temp dir for compiling imgrd_s.s 2006-10-20 13:58:45 +00:00
Ben Gras 3512a86b44 . DS understands publishing and subscribing where keys are in string
form. Subscriptions are regular expressions.
 . different types are stored per key; currently u32 and/or string.
   the same key can be referenced (publish, subscribe, check) as any type.
 . notify()s are sent when subscriptions are triggered (publishing or
   updating of matching keys); optionally, a subscribe flag sends
   updates for all matching keys at subscription time, instead of only
   after updates after subscribing
 . all interfacing to ds is in /usr/src/lib/syslib/ds.c.
 . subscribe is ds_subscribe
   publish functions are ds_publish_<type>
   retrieve functions are ds_retrieve_<type> (one-time retrieval of a value)
   check functions are ds_check_<type> (check for updated key caller
      subscribes to not yet checked for, or ESRCH for none)
 . ramdisk driver updated with new ds interface
2006-07-13 14:50:23 +00:00
Ben Gras cac387bc1e Clean ramdisk image .s too 2006-07-06 14:09:54 +00:00
Ben Gras 5350645c86 Safe I/O and ioctl functions 2006-06-20 08:56:15 +00:00
Philip Homburg 373ea53510 A bigger ramdisk is needed for the new version of ash. 2006-06-07 14:39:50 +00:00
Philip Homburg e9aabcf2f8 Disabled building rescue driver (no longer needed). Moved allocmem from
library to the memory driver. Always put output from within TTY directly on
the console. Removed second include of driver.h from tty.c. Made tty_inrepcode
bigger. First step to move PM and FS calls that are not regular (API)
system calls out of callnr.h (renumbered them, and removed them from the
table.c files). Imported the Minix-vmd uname implementation. This provides
a more stable ABI than the current implementation. Added a bit of security
checking. Unfortunately not nearly enough to get a secure system. Fixed a
bug related to the sizes of the programs in the image (in PM patch_mem_chunks).
2006-05-19 12:19:37 +00:00
Philip Homburg 94717cb74c Pass -c flags to service for disk device drivers. 2006-05-11 14:53:20 +00:00
Ben Gras 261ae3b463 Use /dev instead of MAKEDEV because release builds are run as bin. 2006-04-03 19:36:15 +00:00
Ben Gras 38676609c1 Don't redirect stderr to /dev/null 2006-04-03 18:47:28 +00:00
Ben Gras dcb0fee484 script to generate /dev part of proto file. 2006-04-03 15:01:43 +00:00
Philip Homburg 7fecfd3740 Use assembler instead of C for the ramdisk. The assembler requires less
memory.
2006-03-15 14:28:05 +00:00
Ben Gras 733f5da611 debug msg 2006-03-13 15:41:07 +00:00
Philip Homburg 5731e07839 Some /dev entries for c0d7. 2006-03-13 15:37:43 +00:00
Ben Gras 23158865b2 Don't include ramdisk image in .depend - breaks 'make depend' 2006-03-11 10:58:38 +00:00
Ben Gras 95285c399e A little more stack for memory 2006-03-09 14:02:32 +00:00
Ben Gras 28324dc841 Fixed wrong fix 2006-03-07 14:58:18 +00:00
Ben Gras f5029b721a Include boot options 2006-03-07 14:32:41 +00:00
Ben Gras f877da3aec endpoint migration for drivers.
mostly renaming message field names to the new names.

tty stored process numbers in chars in tty and pty structs - now ints.
2006-03-03 10:21:45 +00:00
Ben Gras b3d3ed8f7c Install memory in /usr/sbin 2006-02-17 15:03:38 +00:00
Ben Gras e7657e1b67 Added some of my root devices 2006-02-17 11:58:02 +00:00
Philip Homburg 7034c0795d Moved PCI driver to the ramdisk. 2006-02-15 14:21:56 +00:00
Philip Homburg c3a88d15d8 Initial root filesystem is now on a ramdisk that is part of the image. 2006-02-15 11:18:21 +00:00
Ben Gras 4102c1b44c Make drivers install signal handlers so they don't die at exit. 2006-01-17 17:43:35 +00:00
Ben Gras c452baf68d Made memory driver notice about location in DS a debug statement. 2006-01-17 15:53:43 +00:00
Philip Homburg df279ac347 Set IOPL when /dev/mem is opened. Fixed small bug in MIOCMAP/MIOCUNMAP 2005-11-04 17:16:54 +00:00
Jorrit Herder 381c24ce17 New MEM driver for recovery. 2005-10-20 20:26:02 +00:00
Jorrit Herder ee1f2bcb39 Minor fixes for RS. Install signal handlers. 2005-10-12 15:06:00 +00:00
Philip Homburg e281ad893d Added MIOCMAP and MIOCUNMAP ioctls. 2005-09-30 12:57:30 +00:00
Ben Gras e3709af1b8 Andy's code fixes 2005-09-11 17:09:11 +00:00
Jorrit Herder 8b6b353c86 Fixed gcc warnings in MEM driver. 2005-08-25 12:35:59 +00:00