Commit graph

621 commits

Author SHA1 Message Date
Kees van Reeuwijk
a7cee5bec4 Removed unused symbols.
Minor cleanups.
2010-01-22 22:01:08 +00:00
Erik van der Kouwe
9baf8059fb Make function key for RTL8139 optional 2010-01-21 10:15:22 +00:00
Kees van Reeuwijk
a2c8ae42e9 Remove iov_src variables, that were only declared and incremented,
but never used, all over the network drivers.
2010-01-20 21:31:59 +00:00
Kees van Reeuwijk
53f9f943a8 Rewrote a number of cases where variables were used before they initialized. 2010-01-20 17:59:48 +00:00
Kees van Reeuwijk
3a892d2312 Fixed some flawed defensive programming in audio drivers. 2010-01-18 21:37:24 +00:00
Kees van Reeuwijk
4faed703d9 Added a missing return statement in paired_grant().
Removed lots of unused variables.
2010-01-15 21:45:30 +00:00
Ben Gras
45eabea285 Fixed extern declaration from pointer to array 2010-01-15 12:08:57 +00:00
David van Moolenbroek
3537a7b59d Compile and install e1000 driver by default 2010-01-15 10:22:34 +00:00
Cristiano Giuffrida
c5b309ff07 Merge of Wu's GSOC 09 branch (src.20090525.r4372.wu)
Main changes:
- COW optimization for safecopy.
- safemap, a grant-based interface for sharing memory regions between processes.
- Integration with safemap and complete rework of DS, supporting new data types
  natively (labels, memory ranges, memory mapped ranges).
- For further information:
  http://wiki.minix3.org/en/SummerOfCode2009/MemoryGrants

Additional changes not included in the original Wu's branch:
- Fixed unhandled case in VM when using COW optimization for safecopy in case
  of a block that has already been shared as SMAP.
- Better interface and naming scheme for sys_saferevmap and ds_retrieve_map
  calls.
- Better input checking in syslib: check for page alignment when creating
  memory mapping grants.
- DS notifies subscribers when an entry is deleted.
- Documented the behavior of indirect grants in case of memory mapping.
- Test suite in /usr/src/test/safeperf|safecopy|safemap|ds/* reworked
  and extended.
- Minor fixes and general cleanup.
- TO-DO: Grant ids should be generated and managed the way endpoints are to make
sure grant slots are never misreused.
2010-01-14 15:24:16 +00:00
Kees van Reeuwijk
ad4c0ff698 Fixed a bug in apic.c that broke lapic_stop_timer().
Fixed bugs in liveupdate.c that rendered load_state_info() meaningless.
More informative error message in do_config() in service.c.
2010-01-13 14:44:19 +00:00
David van Moolenbroek
6a5660a431 PCI: add 64-bit BAR support 2010-01-13 10:52:47 +00:00
Kees van Reeuwijk
f595416e7f Fixed some missing return statements. 2010-01-11 14:22:29 +00:00
Cristiano Giuffrida
d1fd04e72a Initialization protocol for system services.
SYSLIB CHANGES:
- SEF framework now supports a new SEF Init request type from RS. 3 different
callbacks are available (init_fresh, init_lu, init_restart) to specify
initialization code when a service starts fresh, starts after a live update,
or restarts.

SYSTEM SERVICE CHANGES:
- Initialization code for system services is now enclosed in a callback SEF will
automatically call at init time. The return code of the callback will
tell RS whether the initialization completed successfully.
- Each init callback can access information passed by RS to initialize. As of
now, each system service has access to the public entries of RS's system process
table to gather all the information required to initialize. This design
eliminates many existing or potential races at boot time and provides a uniform
initialization interface to system services. The same interface will be reused
for the upcoming publish/subscribe model to handle dynamic 
registration / deregistration of system services.

VM CHANGES:
- Uniform privilege management for all system services. Every service uses the
same call mask format. For boot services, VM copies the call mask from init
data. For dynamic services, VM still receives the call mask via rs_set_priv
call that will be soon replaced by the upcoming publish/subscribe model.

RS CHANGES:
- The system process table has been reorganized and split into private entries
and public entries. Only the latter ones are exposed to system services.
- VM call masks are now entirely configured in rs/table.c
- RS has now its own slot in the system process table. Only kernel tasks and
user processes not included in the boot image are now left out from the system
process table.
- RS implements the initialization protocol for system services.
- For services in the boot image, RS blocks till initialization is complete and
panics when failure is reported back. Services are initialized in their order of
appearance in the boot image priv table and RS blocks to implements synchronous
initialization for every system service having the flag SF_SYNCH_BOOT set.
- For services started dynamically, the initialization protocol is implemented
as though it were the first ping for the service. In this case, if the
system service fails to report back (or reports failure), RS brings the service
down rather than trying to restart it.
2010-01-08 01:20:42 +00:00
David van Moolenbroek
ac9ab099c8 General cleanup:
- clean up kernel section of minix/com.h somewhat
- remove ALLOCMEM and VM_ALLOCMEM calls
- remove non-safecopy and minix-vmd support from Inet
- remove SYS_VIRVCOPY and SYS_PHYSVCOPY calls
- remove obsolete segment encoding in SYS_SAFECOPY*
- remove DEVCTL call, svrctl(FSDEVUNMAP), map_driverX
- remove declarations of unimplemented svrctl requests
- remove everything related to swapping to disk
- remove floppysetup.sh
- remove traces of rescue device
- update DESCRIBE.sh with new devices
- some other small changes
2010-01-05 19:39:27 +00:00
David van Moolenbroek
1489f14b37 Driver for Attansic L2 FastEthernet (atl2) 2009-12-30 22:42:44 +00:00
Cristiano Giuffrida
6f912993ff Share exec images in RS.
RS CHANGES:
- RS retains information on both labels and process names now. Labels for boot
processes are configured in the boot image priv table. Process names are
inherited from the in-kernel boot image table.
- When RS_REUSE is specified in do_up, RS looks for an existing slot having the
same process name as the one we are about to start. If one is found with
an in-memory copy of its executable image, the image is then shared between
the two processes, rather than copying it again. This behavior can be specified
by using 'service -r' when starting a system service from the command line.
2009-12-23 14:05:20 +00:00
David van Moolenbroek
123683d4a5 Console function keys and color support:
- if "debug_fkeys" boot monitor variable is set to 0:
  - pass Fn, Shift+Fn, Ctrl+Fn, Shift+Ctrl+Fn to applications
  - don't start IS
- update termcap files with function key, color, end key support
2009-12-22 23:30:50 +00:00
David van Moolenbroek
d5471320d9 another warning regression fix 2009-12-22 00:05:09 +00:00
David van Moolenbroek
92ae5c81ae Filter driver updates:
- optionally vectorize I/O requests to work around hardware bugs
- extend default buffer size to cover MFS's default maximum request size
- use mmap directly, rather than alloc_contig
- add 'nil' checksum type for comparison with layout
- minor style corrections
2009-12-21 23:30:01 +00:00
David van Moolenbroek
492d663444 TTY fixes:
- reenable code to restore screen/cursor at shutdown
- add proper signal checking logic
- lock to first console during shutdown
2009-12-21 23:19:01 +00:00
Cristiano Giuffrida
1f5841c8ed Basic System Event Framework (SEF) with ping and live update.
SYSLIB CHANGES:
- SEF must be used by every system process and is thereby part of the system
library.
- The framework provides a receive() interface (sef_receive) for system
processes to automatically catch known system even messages and process them.
- SEF provides a default behavior for each type of system event, but allows
system processes to register callbacks to override the default behavior.
- Custom (local to the process) or predefined (provided by SEF) callback
implementations can be registered to SEF.
- SEF currently includes support for 2 types of system events:
  1. SEF Ping. The event occurs every time RS sends a ping to figure out
  whether a system process is still alive. The default callback implementation
  provided by SEF is to notify RS back to let it know the process is alive
  and kicking.
  2. SEF Live update. The event occurs every time RS sends a prepare to update
  message to let a system process know an update is available and to prepare
  for it. The live update support is very basic for now. SEF only deals with
  verifying if the prepare state can be supported by the process, dumping the
  state for debugging purposes, and providing an event-driven programming
  model to the process to react to state changes check-in when ready to update.
- SEF should be extended in the future to integrate support for more types of
system events. Ideally, all the cross-cutting concerns should be integrated into
SEF to avoid duplicating code and ease extensibility. Examples include:
  * PM notify messages primarily used at shutdown.
  * SYSTEM notify messages primarily used for signals.
  * CLOCK notify messages used for system alarms.
  * Debug messages. IS could still be in charge of fkey handling but would
  forward the debug message to the target process (e.g. PM, if the user
  requested debug information about PM). SEF would then catch the message and
  do nothing unless the process has registered an appropriate callback to
  deal with the event. This simplifies the programming model to print debug
  information, avoids duplicating code, and reduces the effort to print
  debug information.

SYSTEM PROCESSES CHANGES:
- Every system process registers SEF callbacks it needs to override the default
system behavior and calls sef_startup() right after being started.
- sef_startup() does almost nothing now, but will be extended in the future to
support callbacks of its own to let RS control and synchronize with every
system process at initialization time.
- Every system process calls sef_receive() now rather than receive() directly,
to let SEF handle predefined system events.

RS CHANGES:
- RS supports a basic single-component live update protocol now, as follows:
  * When an update command is issued (via "service update *"), RS notifies the
  target system process to prepare for a specific update state.
  * If the process doesn't respond back in time, the update is aborted.
  * When the process responds back, RS kills it and marks it for refreshing.
  * The process is then automatically restarted as for a buggy process and can
  start running again.
  * Live update is currently prototyped as a controlled failure.
2009-12-21 14:12:21 +00:00
Cristiano Giuffrida
e090013056 Drivers and servers are simply known as services.
/etc CHANGES:
- /etc/drivers.conf has been renamed to /etc/system.conf. Every entry in 
the file is now marked as "service" rather than driver.
- user "service" has been added to password file /etc/passwd.
- docs/UPDATING updated accordingly, as well as every other mention to the old
drivers.conf in the system.

RS CHANGES:
- No more distinction between servers and drivers.
- RS_START has been renamed to RS_UP and the old legacy RS_UP and RS_UP_COPY
dropped.
- RS asks PCI to set / remove ACL entries only for services whose ACL properties
have been set. This change eliminates unnecessary warnings.
- Temporarily minimize the risk of potential races at boot time or when starting
a new service. Upcoming changes will eliminate races completely.
- General cleanup.
2009-12-17 01:53:26 +00:00
Ben Gras
26ba254a4a Intel Pro/1000 driver written by Niek Linnenbank. 2009-12-07 18:33:41 +00:00
Ben Gras
207621b6fb rtl8169 driver contributed by Jaswinder Singh Rajput. 2009-12-02 15:59:42 +00:00
David van Moolenbroek
be2087ecf9 Filter driver by Wu Bingzheng et al 2009-12-02 10:08:58 +00:00
David van Moolenbroek
30a7fe5fa9 libdriver changes:
- remove obsolete non-safecopy support
- merge libdriver and libdriver_asyn
- change standard reply model from sendnb to senda
2009-12-02 09:57:48 +00:00
David van Moolenbroek
ad259e92af Alternative VirtualBox/Lance driver workaround 2009-11-28 13:28:55 +00:00
David van Moolenbroek
86cc12b9a3 pci: extend NR_DRIVERS to cover all system processes 2009-11-09 10:43:46 +00:00
Tomas Hruby
ae75f9d4e5 Removal of the executable flag from files that cannot be executed
- 755 -> 644
2009-11-09 10:26:00 +00:00
Tomas Hruby
6eebc03f88 Fix for broken parsing of memory environment string in pci driver
- unfixed parsing could run away from the the string and fail on a correct
  string in complete_bars()

- it reanables the body of complete_bars()
2009-11-06 08:58:05 +00:00
Ben Gras
7e73260cf5 - enable remembering of device memory ranges set by PCI and
told to kernel
  - makes VM ask the kernel if a certain process is allowed
    to map in a range of physical memory (VM rounds it to page
    boundaries afterwards - but it's impossible to map anything
    smaller otherwise so I assume this is safe, i.e. there won't
    be anything else in that page; certainly no regular memory)
  - VM permission check cleanup (no more hardcoded calls, less
    hardcoded logic, more readable main loop), a loose end left
    by GQ
  - remove do_copy warning, as the ipc server triggers this but
    it's no more harmful than the special cases already excluded
    explicitly (VFS, PM, etc).
2009-11-03 11:12:23 +00:00
David van Moolenbroek
56d485c1d6 Various small IS, TTY, isofs fixes
IS:
- do not use p_getfrom_e for a process that is sending
- register with TTY only function keys that are used
- various header and formatting fixes
- proper shutdown code

TTY:
- restore proper Ctrl+F1 dump contents

isofs:
- don't even try to call sys_exit()
2009-11-02 23:04:52 +00:00
Ben Gras
5920582bde Don't check DMA_ST_ERROR before DMA_ST_INT is set (which is done too) 2009-10-22 14:31:29 +00:00
Ben Gras
96b608c3f2 throw out unnecessary drive1 thing 2009-10-19 15:45:43 +00:00
Ben Gras
6b01026668 newer at_wini.c (really incl atapi dma this time) 2009-10-19 15:45:14 +00:00
Ben Gras
0333f21d8e - reverse order of transfer command and DMA initiation - fixes DMA problem
that some hardware had
 - clear DMA_ST_INT after DMA - fixes infinite number of interrupts 
   that some hardware had
 - initial ATAPI DMA implementation, doesn't actually increase performance
   on my test hardware so possibly not right yet, disabled by default
2009-10-19 14:23:04 +00:00
Erik van der Kouwe
4c2f0eb22f Suppress spurious scancodes in VMWare 2009-10-18 07:12:42 +00:00
Ben Gras
abdf8e26fb moving OSS to a package. 2009-10-12 12:53:36 +00:00
Erik van der Kouwe
cb6dbfca2c Add lspci command and SI_PCI_INFO getsysinfo call 2009-10-09 10:48:46 +00:00
Ben Gras
5a0c76e64a connect OSS to the build (clean and install only) 2009-10-01 17:23:54 +00:00
David van Moolenbroek
6168bcefa6 Fix bios_wini using wrong size for vector (Bug#280, reported by John Peace) 2009-10-01 16:59:04 +00:00
Ben Gras
cb50e7e135 support for OSS. 2009-10-01 16:36:14 +00:00
David van Moolenbroek
b423d7b477 Merge of David's ptrace branch. Summary:
o Support for ptrace T_ATTACH/T_DETACH and T_SYSCALL
o PM signal handling logic should now work properly, even with debuggers
  being present
o Asynchronous PM/VFS protocol, full IPC support for senda(), and
  AMF_NOREPLY senda() flag

DETAILS

Process stop and delay call handling of PM:
o Added sys_runctl() kernel call with sys_stop() and sys_resume()
  aliases, for PM to stop and resume a process
o Added exception for sending/syscall-traced processes to sys_runctl(),
  and matching SIGKREADY pseudo-signal to PM
o Fixed PM signal logic to deal with requests from a process after
  stopping it (so-called "delay calls"), using the SIGKREADY facility
o Fixed various PM panics due to race conditions with delay calls versus
  VFS calls
o Removed special PRIO_STOP priority value
o Added SYS_LOCK RTS kernel flag, to stop an individual process from
  running while modifying its process structure

Signal and debugger handling in PM:
o Fixed debugger signals being dropped if a second signal arrives when
  the debugger has not retrieved the first one
o Fixed debugger signals being sent to the debugger more than once
o Fixed debugger signals unpausing process in VFS; removed PM_UNPAUSE_TR
  protocol message
o Detached debugger signals from general signal logic and from being
  blocked on VFS calls, meaning that even VFS can now be traced
o Fixed debugger being unable to receive more than one pending signal in
  one process stop
o Fixed signal delivery being delayed needlessly when multiple signals
  are pending
o Fixed wait test for tracer, which was returning for children that were
  not waited for
o Removed second parallel pending call from PM to VFS for any process
o Fixed process becoming runnable between exec() and debugger trap
o Added support for notifying the debugger before the parent when a
  debugged child exits
o Fixed debugger death causing child to remain stopped forever
o Fixed consistently incorrect use of _NSIG

Extensions to ptrace():
o Added T_ATTACH and T_DETACH ptrace request, to attach and detach a
  debugger to and from a process
o Added T_SYSCALL ptrace request, to trace system calls
o Added T_SETOPT ptrace request, to set trace options
o Added TO_TRACEFORK trace option, to attach automatically to children
  of a traced process
o Added TO_ALTEXEC trace option, to send SIGSTOP instead of SIGTRAP upon
  a successful exec() of the tracee
o Extended T_GETUSER ptrace support to allow retrieving a process's priv
  structure
o Removed T_STOP ptrace request again, as it does not help implementing
  debuggers properly
o Added MINIX3-specific ptrace test (test42)
o Added proper manual page for ptrace(2)

Asynchronous PM/VFS interface:
o Fixed asynchronous messages not being checked when receive() is called
  with an endpoint other than ANY
o Added AMF_NOREPLY senda() flag, preventing such messages from
  satisfying the receive part of a sendrec()
o Added asynsend3() that takes optional flags; asynsend() is now a
  #define passing in 0 as third parameter
o Made PM/VFS protocol asynchronous; reintroduced tell_fs()
o Made PM_BASE request/reply number range unique
o Hacked in a horrible temporary workaround into RS to deal with newly
  revealed RS-PM-VFS race condition triangle until VFS is asynchronous

System signal handling:
o Fixed shutdown logic of device drivers; removed old SIGKSTOP signal
o Removed is-superuser check from PM's do_procstat() (aka getsigset())
o Added sigset macros to allow system processes to deal with the full
  signal set, rather than just the POSIX subset

Miscellaneous PM fixes:
o Split do_getset into do_get and do_set, merging common code and making
  structure clearer
o Fixed setpriority() being able to put to sleep processes using an
  invalid parameter, or revive zombie processes
o Made find_proc() global; removed obsolete proc_from_pid()
o Cleanup here and there

Also included:
o Fixed false-positive boot order kernel warning
o Removed last traces of old NOTIFY_FROM code

THINGS OF POSSIBLE INTEREST

o It should now be possible to run PM at any priority, even lower than
  user processes
o No assumptions are made about communication speed between PM and VFS,
  although communication must be FIFO
o A debugger will now receive incoming debuggee signals at kill time
  only; the process may not yet be fully stopped
o A first step has been made towards making the SYSTEM task preemptible
2009-09-30 09:57:22 +00:00
Tomas Hruby
4dad30937b Removed macros that depend on NOTIFY_FROM from servers and drivers. They
determine the information defined by these macros from the m_source field of the
notify message.
2009-09-29 18:47:56 +00:00
Tomas Hruby
b900311656 endpoint_t in syslib
- headers use the endpoint_t in syslib.h and the implmentation was using int
  instead. Both uses endpoint_t now

- every variable named like proc, proc_nr or proc_nr_e of type endpoint_t has
  name proc_ep now

- endpoint_t defined as u32_t not int
2009-09-22 21:42:02 +00:00
Ben Gras
6492bf0019 allow resizing of ramdisks. 2009-09-22 13:57:21 +00:00
Ben Gras
89bf7bae27 - tty: only report unrecognized scancodes once; forget about
remembering the origin and cursor position as that feature didn't
   really work properly anyway
 - tty: map in video and font memory using a vm call, access it from C,
   thereby eliminating pesky weird segment calls and assembly to access it,
   and unbreaks loadfont (Roman Ignatov)
 - bios_wini: fix bios_wini by allocating a <1MB buffers for it
 - memory: preallocate ramdisk, makes it a bit faster (and doesn't
   fail halfway if you allocate a huge one)
 - floppy: use <1MB buffer
 - ramdisk proto: because of the 2x1 page reservations, binaries
   got a little fatter and didn't fit on the ramdisk any more.
   increase it.
2009-09-21 14:25:54 +00:00
David van Moolenbroek
8ef6c9b063 cleanup: sys_irqrmpolicy does not need IRQ vector 2009-09-06 14:24:44 +00:00
David van Moolenbroek
979bcfc195 - sys_privctl: don't mix message types
- sys_privctl: remove CTL_MM_PRIV (third parameter)
- remove obsolete sys_svrctl.c library file
2009-09-06 12:37:13 +00:00
David van Moolenbroek
7e9e0ce9bc FXP: support for 8086/1064 (reported and tested by Jose Luis Sanchez) 2009-08-30 16:13:46 +00:00
Erik van der Kouwe
1162806940 Re-disable complete_bars, it was not needed for PRO/100 despite the error message 2009-08-27 07:10:03 +00:00
Erik van der Kouwe
ada4859302 Extend Intel PRO/100 support 2009-08-26 21:01:46 +00:00
Thomas Veerman
b47483433c Added a hack to start binaries from the boot image only. In particular, setting
bin_img=1 in the boot monitor will make sure that during the boot procedure the
mfs binary that is part of the boot image is the only binary that is used to
mount partitions. This is useful when for some reason the mfs binary on disk 
malfunctions, rendering Minix unable to boot. By setting bin_img=1, the binary
on disk is ignored and the binary in the boot image is used instead.

- 'service' now accepts an additional flag -r. -r implies -c. -r instructs RS
  to first look in memory if the binary has already been copied to memory and
  execute that version, instead of loading the binary from disk. For example,
  the first time a MFS is being started it is copied (-c) to memory and
  executed from there. The second time MFS is being started this way, RS will
  look in memory for a previously copied MFS binary and reuse it if it exists.
- The mount and newroot commands now accept an additional flag -i, which
  instructs them to set the MS_REUSE flag in the mount flags.
- The mount system call now supports the MS_REUSE flag and invokes 'service'
  with the -r flag when MS_REUSE is set.
- /etc/rc and the rc script that's included in the boot image check for the
  existence of the bin_img flag in the boot monitor, and invoke mount and 
  newroot with the -i flag accordingly.
2009-08-18 11:36:01 +00:00
Arun Thomas
b8eedfee6b Lance cleanup 2009-07-22 12:36:19 +00:00
Arun Thomas
0be5720af1 Fix VirtualBox Lance bug; ec_reinit should be called only once. 2009-07-21 13:13:45 +00:00
Arun Thomas
dac531addf Support for VMWare Workstation 6.x
VMWare Workstation 6.x would previously die when running MINIX 3 with an
IOSPACE assertion and several error messages about multiply registered
I/O ports. The assertion is triggered when we probe for BAR sizes in
record_bar(). The solution: The PCI driver now disables I/O and mem
access before probing for BAR sizes.

Bumped up NR_PCIDEV and NR_PCIBUS, since Workstation 6.x virtualizes
more PCI buses and devices.
2009-05-27 23:35:34 +00:00
Arun Thomas
d749b3b965 -Remove qemu_pci boot variable. Useres no longer need to set qemu_pci when
booting MINIX under QEMU/KVM.
-Kept the diagnostic message, however.
2009-05-14 19:07:37 +00:00
Ben Gras
dd56aa321f to let tty run with its own page table (instead of with the kernel identity
map table), make it map in video memory.

sadly, this breaks tty in non-paged mode.

happily, this simplifies the code by throwing out the messing
around with segments, and throws out vidcopy.s.
2009-05-12 12:43:18 +00:00
David van Moolenbroek
dcfaf50f79 wrong field index in at_wini env_parse call 2009-05-10 16:58:23 +00:00
David van Moolenbroek
e9e347f5b6 Fix for large transfer operations not advancing buffer address
offset when DMA transfer unit is smaller than given buffer size.
Bug tracker item #82.
2009-05-08 12:29:57 +00:00
Ben Gras
e5209d51f1 bad dma fallback to pio mode 2009-04-27 11:53:11 +00:00
Arun Thomas
f149733e16 Disable IOMMU warnings. 2009-04-22 16:53:46 +00:00
Arun Thomas
3b37103fa3 Make the rtl8139 and orinoco drivers handle the system shutdown case
like other drivers. Also, some minor cleanups.
2009-04-22 12:42:37 +00:00
Ben Gras
4cd6875d05 don't flush output for SIGWINCH. found by Joren l'Ami. 2009-04-06 09:39:42 +00:00
Ben Gras
65a9f0253b unnecessary debugging message 2009-04-02 16:43:35 +00:00
Ben Gras
9647fbc94e moved type and constants for random data to include file;
added consistency check in random; added source of randomness
internal to random using timing; only retrieve random bins that are full.
2009-04-02 15:24:44 +00:00
Ben Gras
45d54cf1b0 change DmaMode checks from DEV_WRITE to DEV_WRITE_S 2009-03-31 14:23:33 +00:00
Ben Gras
cf8c4cc851 ignore linmem.
don't disable the driver by default.
2009-03-26 15:22:08 +00:00
Ben Gras
46d28c6ffb workaround for qemu writing the configuration byte on the AUX port pre-0.10. 2009-03-24 15:41:18 +00:00
Ben Gras
e5079dfc02 multiple ram disks; also make release process use this
so temporary partitions aren't needed any more.
2009-03-19 13:48:19 +00:00
Ben Gras
379be7f0fb A serial ata pci card we have. 2009-02-16 13:20:10 +00:00
Ben Gras
95ff97d4fb readclock easily runs out of stack with so little of it. 2009-02-06 16:28:35 +00:00
Ben Gras
bb18be5d06 simplified the code a little, corrected some hasty statements. 2009-02-04 17:30:01 +00:00
Ben Gras
6a0e8e3b80 Added a separate keymap for escaped scancodes. This makes the code
a little cleaner (escaped scancodes are less of a special case) and
lets us be completely flexible when assigning meaning to them.

Future: a tool and ioctl to load the escaped keymap.
2009-02-04 17:04:16 +00:00
Ben Gras
ba4687e519 the escaped keymap is usually the same as the original. 2009-02-04 16:55:30 +00:00
Ben Gras
80f5eea8b8 If serial debugging in the boot monitor / kernel is enabled, don't touch
the serial line in use for it (mostly so that input isn't eaten by tty).
2009-01-29 15:06:40 +00:00
Ben Gras
d0a2e6b2f4 use library panic, doesn't need its own any more. 2009-01-29 14:41:44 +00:00
Ben Gras
3cc092ff06 . new kernel call sysctl for generic unprivileged system operations;
now used for printing diagnostic messages through the kernel message
   buffer. this lets processes print diagnostics without sending messages
   to tty and log directly, simplifying the message protocol a lot and
   reducing difficulties with deadlocks and other situations in which
   diagnostics are blackholed (e.g. grants don't work). this makes
   DIAGNOSTICS(_S), ASYN_DIAGNOSTICS and DIAG_REPL obsolete, although tty
   and log still accept the codes for 'old' binaries. This also simplifies
   diagnostics in several servers and drivers - only tty needs its own
   kputc() now.
 . simplifications in vfs, and some effort to get the vnode references
   right (consistent) even during shutdown. m_mounted_on is now NULL
   for root filesystems (!) (the original and new root), a less awkward
   special case than 'm_mounted_on == m_root_node'. root now has exactly
   one reference, to root, if no files are open, just like all other
   filesystems. m_driver_e is unused.
2009-01-26 17:43:59 +00:00
Ben Gras
36909196cf make bootinfo valid immediately 2009-01-14 08:56:20 +00:00
Ben Gras
ad87da99d3 bigger ramdisk for bigger binaries 2009-01-09 17:47:18 +00:00
Ben Gras
0579810535 don't ignore the fact that scancodes are escaped.
if not understood explicitly, print diagnostic and 
ignore scancode.
2008-12-21 03:53:25 +00:00
Ben Gras
2528a06954 bugfix for lance. works in vmware now. 2008-12-17 01:20:15 +00:00
Ben Gras
ef812af5a6 use VM functions to allocate ramdisk on demand. some unification in code. 2008-12-11 17:33:13 +00:00
Ben Gras
1d8aed840c . no more HZ, but use sys_hz() to get that value
. memory maps in physical memory (for /dev/mem) with new vm interface
 . pci complete_bars() seems to be buggy behaviour sometimes
 . startup script opens its own stdout, stderr and stdin so init doesn't
   have to do it
2008-12-11 14:42:23 +00:00
Ben Gras
567f2f0ba0 umap fix 2008-12-08 17:06:38 +00:00
Ben Gras
f4d0d635fd - hz dynamic
- new map /dev/video implementation
 - ser_putc into library
2008-12-08 16:40:29 +00:00
Ben Gras
fe56202038 floppy must be able to allocate a bit more for nonpaged mode. 2008-11-19 17:31:42 +00:00
Ben Gras
c078ec0331 Basic VM and other minor improvements.
Not complete, probably not fully debugged or optimized.
2008-11-19 12:26:10 +00:00
Philip Homburg
60c1131b94 SYS_MAPDMAx -> SYS_MAPDMA, added IOMMU_MAP 2008-02-25 14:39:19 +00:00
Philip Homburg
9d41dbc55e Build libdriver_asyn for target image 2008-02-25 14:38:09 +00:00
Philip Homburg
9d176133ee Added libdriver_asyn and amddev 2008-02-25 12:07:48 +00:00
Philip Homburg
4474166403 Driver for AMD's DEV. 2008-02-25 12:07:19 +00:00
Philip Homburg
a51dbad054 Asynchrnous character device interface. 2008-02-25 11:54:04 +00:00
Philip Homburg
65df875abb Need separate 'prev_next' pointers for kernel and TTY. 2008-02-25 11:53:37 +00:00
Philip Homburg
830b79f0d5 Link random number genertor with libdriver_asyn 2008-02-25 10:25:43 +00:00
Philip Homburg
bc125e3e1c Copy of libdriver for asynch interface to character drivers. Has to be cleaned
up.
2008-02-25 10:24:46 +00:00
Philip Homburg
404325b193 Support for I/O MMU. 2008-02-25 10:19:29 +00:00
Philip Homburg
668515afe2 More heap for fxp, support for I/O MMU. 2008-02-25 10:12:09 +00:00
Philip Homburg
54f714e59e Respond to RS ping request, asynch interface, register with I/O MMU. 2008-02-25 10:02:24 +00:00
Philip Homburg
00ef93d6a2 Use nonblocking sends to reply, fixed reply message for DIAGNOSTICS(_S) 2008-02-22 16:03:00 +00:00
Philip Homburg
e3d4c74393 Functions that check arguments and return a status code and functions that
don't.
2008-02-22 15:59:12 +00:00
Philip Homburg
fecd153c2c Declare and call functions that check arguments and return a status code. 2008-02-22 15:56:12 +00:00
Philip Homburg
8a07b7687a Use nonblocking send to reply. 2008-02-22 15:52:13 +00:00
Philip Homburg
19db2b646e Removed superfluous argument. 2008-02-21 16:09:58 +00:00
Ben Gras
2c45324c47 keymap contributed by Roman Ignatov. 2008-02-06 15:16:50 +00:00
Ben Gras
cd89066f9a Trust $PATH. 2007-12-19 10:51:21 +00:00
Ben Gras
b250847120 Makefile for audio drivers. 2007-12-19 10:37:29 +00:00
Ben Gras
8e727c97ce always re-enable irq, so devices sharing this irq don't go deaf
as IRQ_REENABLE isn't specified.
2007-12-14 12:44:20 +00:00
Ben Gras
45744bff41 Connect new audio drivers to build. 2007-11-23 11:53:33 +00:00
Ben Gras
b79b305ba1 More es1371 bij Pieter Hijma. 2007-11-23 11:52:34 +00:00
Ben Gras
c67a56708e es1370 driver and updated es1371 and framework by Pieter Hijma. 2007-11-23 11:40:33 +00:00
Ben Gras
0d2d8c6db2 audio drivers. (not updated for trunk.)
sb16: port of isa sb16 driver to user-space. Port by Peter Boonstoppel.
es1371: By Laurens Bronwasser.
2007-11-23 11:30:50 +00:00
Ben Gras
0ae1ff99b8 Fix for DL_STAT_REPLY/DL_TASK_REPLY
Bug found and fixed by Jens de Smit <jfdsmit at few.vu.nl>.
2007-10-17 10:53:47 +00:00
Ben Gras
23f6e478df Fixed a glitch introduced in safe i/o conversion. 2007-10-17 10:50:18 +00:00
Ben Gras
af591d2151 Internally, floppy driver still used vircopies ('unsafe' copies), but
this isn't allowed in its drivers.conf entry. Changed these to memcpy()
calls.  Bug reported by Maurizio Lombardi in comp.os.minix.
2007-10-16 14:31:35 +00:00
Ben Gras
ff9f4dd59c fix for i/o data/addr pair set macro's. 2007-09-11 11:22:29 +00:00
Philip Homburg
1d4afb3599 Compile-time option to duplicate console output to the first serial line 2007-08-07 11:27:03 +00:00
Philip Homburg
acfaea0fa2 More space on ramdisk 2007-08-07 11:22:35 +00:00
Philip Homburg
f352a3fb15 Print the value of a capability as well. 2007-08-07 11:21:57 +00:00
Ben Gras
a80365f407 . add checks to printer driver kernel calls
. correct some i/o locations for printer in drivers.conf
2007-08-06 11:17:08 +00:00
Ben Gras
03446f5554 micro_delay in sysutil, used in ti1225, dp8390, fxp and
orinoco now. Uses a combination of tickdelay (where possible) and
calibrated busywait (where necessary).
2007-07-31 15:01:49 +00:00
Ben Gras
2dc2db4ba1 'fix' crlf style 2007-07-24 14:49:39 +00:00
Ben Gras
816f5dd550 a driver for wireless pci cards with the Prism chipset from Intersil
Original version, by Stevens Le Blond and Michael Valkering.
2007-07-24 14:49:09 +00:00
Ben Gras
cd4756933a Typo reported by Johnathan Gurley. 2007-07-17 11:40:02 +00:00
Ben Gras
d524b0b351 Don't quit (some processes want to talk to pci at reboot time) 2007-07-11 13:44:00 +00:00
Ben Gras
ad93329236 Assume bios parameters are wrong/missing if any of the parameters are 0. 2007-05-30 16:13:52 +00:00
Ben Gras
b918f61820 Boot monitor flag that enables 'sticky right-alt', permanent change
to col selected from the keymap untill right-alt is pressed again.

Sticky alt code and russian keymap contributed by Roman Ignatov
and Yaroslav Schekin.
2007-05-16 13:14:37 +00:00
Philip Homburg
2d49b4ecb5 Use ds_retrieve_u32 to get the endpoint of inet. 2007-05-02 11:39:10 +00:00
Philip Homburg
a124958e59 Use ds_retrieve_u32 to get the endpoint of inet. 2007-05-02 11:32:22 +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
Philip Homburg
0dc0d3fe5b Fixed releasing PCI resources after a driver terminates. 2007-04-24 12:55:37 +00:00
Ben Gras
72e6862e4e dp8390 doesn't cope with the different semantics of the pci
functions.

Bug and workaround reported by "E.Agafonov" <e.a.agafonov@gmail.com>.
2007-04-24 12:29:51 +00:00
Philip Homburg
50f81c4939 Ethernet driver changes for asynchronous inet. 2007-04-23 15:38:00 +00:00
Philip Homburg
bb659b1ad6 Disabled ser_putc for reporting debug internal to tty over the serial line.
Disabled return statement for serial debug input in the kernel.
2007-04-23 14:59:32 +00:00
Philip Homburg
a3c8619923 Added do_del_acl. More detailed debug output for the secure device capability. 2007-04-23 14:54:51 +00:00
Ben Gras
18e7b315a1 remove debug message 2007-04-05 13:58:35 +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
84b77d5bfd explicitly mask byte i/o values to bytes. 2007-02-26 11:52:04 +00:00
Ben Gras
8c9e1cf4c5 Uninitialized vector entry? 2007-02-23 20:58:10 +00:00
Ben Gras
92e57afdf3 Explicitly mask off 8-bit values (so new sanity check doesn't trip) 2007-02-23 20:53:32 +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
bf08c90e74 Slew of debugging / sanity check features. 2007-02-23 18:21:19 +00:00
Ben Gras
3bb73b431b add/re-enable at_wini debug output 2007-02-21 17:49:35 +00:00
Ben Gras
2d95b37f12 Copypaste bug. 2007-02-21 17:01:43 +00:00
Ben Gras
f7992c94ec at_wini also needs a pci_reserve() for the pci compatability device, if
present, for dma.
2007-02-20 18:42:43 +00:00
Ben Gras
168d766f32 . pci driver now returns devices, even when they have been pci_reserve()d
. pci_reserve() returns an error on devices that have already been reserved,
  instead of panic()ing; the pci_reserve() library call still panics,
  pci_reserve_ok() returns an int.
. this allows at_wini to use the instance value as intended, as all devices
  are seen, even reserved ones
. only devices actually used by at_wini are pci_reserve()d
. pci doesn't release devices based on argv[0], as at_wini both have the
  same name and multiple instances won't work together properly
2007-02-20 17:09:19 +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
49d2195722 made default wakeup time correct 2007-02-16 15:56:00 +00:00
Ben Gras
3f58857ce9 removed/optionalized debugging messages 2007-02-16 15:50:49 +00:00
Ben Gras
1ff8616378 set 'w_testing' during w_identify(). this means 0-tolerance to
timeouts, and an ATA_IDENTIFY timeout will cause the ATAPI_IDENTIFY
to be skipped, making the cd probe a lot faster.
2007-02-12 13:35:33 +00:00
Ben Gras
c6f8154df0 use shorter ata timeout for identify commands when running from cd
to shorten probe time.
2007-02-09 15:58:33 +00:00
Ben Gras
9f2f3dd488 don't call mkdep with an absolute path 2007-02-08 16:26:20 +00:00
Ben Gras
624f17ee04 Extend cdprobe probe list to c1, and reorder minors to do most-likely
first.

Make at_wini include instance number in error messages.
2007-02-08 15:56:58 +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
Philip Homburg
78fe72e198 Many more IDs. 2007-01-19 17:27:51 +00:00
Philip Homburg
7d6b1dcf1e PCI IDs for Accton SMC2-1211TX 2007-01-18 11:40:13 +00:00
Ben Gras
f47aa04a30 . removed readclock command and cmos driver.
. replaced by a readclock 'driver' that runs once, a re-imported version
  of the minix 2.0.4 readclock command.
. this has also restored cmos writing.
. readclock wrapper script calls service command to run /bin/readclock.drv
  once.
2007-01-12 16:35:04 +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
753f7bebde Don't let rs232 code send REVIVEs. 2007-01-04 12:06:04 +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
8a2a957d49 Some 64-bit file offset changes that were left out accidentally in the first
commit.
2006-12-06 15:21: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
Ben Gras
21ed846479 More memory for these drivers 2006-10-25 13:39:53 +00:00
Philip Homburg
f9ccfca2a1 (Incomplete) support for access control in PCI (pci_set_acl).
-script argument to service for crash recovery scripts
-config argument to service for driver resource configuration
restart command in service to restart a driver after a crash (for use in
crash recovery scripts).
down and refresh now take labels instead of pids.
verious changes in rs to make this work.
2006-10-20 15:01:32 +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
Philip Homburg
61bbef2f4e More stack for the log driver. 2006-10-20 13:54:14 +00:00
Ben Gras
84c93dd20e Remove objects in aes subdir too 2006-10-05 09:58:50 +00:00
Philip Homburg
3e35db1514 Also clear word 6 in the ATAPI SCSI_READ10 command packet (in atapi_transfer). 2006-08-28 15:10:10 +00:00
Philip Homburg
0ac9521c94 TTY should not panic when it is impossible to reply. A driver may crash
before receiving the reply from TTY.
2006-08-28 12:16:15 +00:00
Ben Gras
9d9e14941e At least 8k stack for all drivers so that malloc() works, for grants,
for printf().
2006-08-02 22:51:47 +00:00
Ben Gras
23e1bffd7a lance needs 8k in order for safecopies to work (malloc()). 2006-08-02 22:42:10 +00:00
Ben Gras
13d1de5122 Taught log driver to return REP_IO_GRANT on revive events, makes revive
work again.
2006-07-25 11:01:54 +00:00
Ben Gras
82173212ee Introduction of a 'big' ioctl, with more bits (20) reserved for encoding the
size field. The TIOCSFON ioctl size (8192) didn't get encoded properly,
as there weren't enough bits for it (12) in the regular format.

The new format has only one type field, and an extra flag (_IOC_BIG)
turned on. FS checks for this flag and uses the alternative decoding
of the ioctl codes to determine the size when doing grants.

This unbreaks loadfont, although that still uses a phys copy in tty.
2006-07-25 09:41:40 +00:00
Ben Gras
cbfcdcc4c2 Use grant address type in loadfont ioctl. 2006-07-21 14:39:48 +00:00
Philip Homburg
f6d1f6fdf6 Switch to vc 0 and softscrolling when /dev/video is opened and switch back
at the close. This should prevent problems with X on (emulated) Cirrus
cards.
2006-07-19 11:50:18 +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
Philip Homburg
2cf649db2e Safecopy support in ethernet drivers. 2006-07-10 12:43:38 +00:00
Philip Homburg
9392742cc4 Use safecopy version to get log messages from TTY. 2006-07-10 12:42:31 +00:00
Philip Homburg
fd62815e73 Fixed a bug that would report a device more than once. Added safecopy
version of do_dev_name and do_slot_name.
2006-07-10 12:39:54 +00:00
Philip Homburg
ee09d50403 Changed to use sys_readbios to get screen parameters. Added safecopy version
to get log messages.
2006-07-10 12:37:39 +00:00
Philip Homburg
a3fce7ce8d Changed to use sys_readbios get the 'machine ID'. 2006-07-10 12:35:55 +00:00
Philip Homburg
dcb7cae67c Changed to use sys_readbios to get BIOS parameters. 2006-07-10 12:34:41 +00:00
Ben Gras
cac387bc1e Clean ramdisk image .s too 2006-07-06 14:09:54 +00:00
Ben Gras
1561067ee4 Grant system dynamic-only. 2006-06-30 14:40:29 +00:00
Ben Gras
0d39b17655 Changed order of -lsys and -lsysutil for printf() 2006-06-20 10:50:29 +00:00
Ben Gras
281e76364a Conversion to safe calls, and returning grant in DEV_REVIVE messages 2006-06-20 09:49:02 +00:00
Ben Gras
d61715a69e Fix for new *_ins* i/o functions 2006-06-20 09:48:26 +00:00
Ben Gras
b80626c878 safe conversion 2006-06-20 09:46:57 +00:00
Ben Gras
1c8b206a5d . Safe I/O, ioctl() and DIAGNOSTICS variants conversion - safe copies,
include grant id in DEV_REVIVE messages.
. Removal of TTY_FLAGS field (and so O_NONBLOCK support).
. Fixed CANCEL behaviour and return code on blocking I/O,
  previously handled by O_NONBLOCK
. Totally removed REVIVE replies, previously still possible on
  blocking ioctls (REVIVE directly called) and ptys (missing TTY_REVIVE
  check), removes deadlock bug with FS
. Removed obsolete *COMPAT options and associated code
2006-06-20 09:02:54 +00:00
Ben Gras
9fa06d5e3f safe conversion 2006-06-20 08:56:58 +00:00