Commit Graph

95 Commits

Author SHA1 Message Date
christos cfba45c856 constify sendsig/trapsignal 2003-09-25 22:00:02 +00:00
manu 9972873c7d Handle mouseup and mousdown events
Add three sysctl to choose wsdisplay unit and screen and wsmux that
ioframebuffer and iohidsystem will use.
2003-09-14 09:48:42 +00:00
manu 755716d281 Darwin's I/O reverse the mouse's Y axis. 2003-09-13 16:35:47 +00:00
manu 08f5f5b835 Bugfix: notifications sent by iohidsystem kernel threads are to be
hnalded as mmessages coming from the kernel, since the threas has
no p->p_emuldata
2003-09-13 16:07:44 +00:00
jdolecek a034152027 move dupfd from struct proc to struct lwp - it's per-LWP, not per-process; we
use curlwp where the lwp is not directly available, i.e. in device open
routines

briefly discussed on tech-kern
2003-09-13 08:32:10 +00:00
manu 11d6605f3f Sync between parent and child in iohdisystem thread so that the child has
time to get its parmeteres before the parent throw them away
2003-09-13 07:56:54 +00:00
manu f9c483a301 Some initial support for IOHIDSystem. This gives us some pointer moves in X11
(not really related the the actual mouse movement, but this will come).

The darwin_iohidsystem_thread reads events from wscons, translates them
into IOHIDSystem events and wakes up the userland client with a notification.
To do this, I had to improve the void implementation of
io_connect_set_notification_port() to actually register something (I assumed
a single notification port, which makes some sense since only one process
seems to be able to open the driver)

Missing bits:
- we do not take event masks given by the process into account.
- the notification message has not been checked against Darwin
- events are badly translated
2003-09-11 23:16:18 +00:00
christos e09c2a122c don't abuse the native sigcode. 2003-09-10 16:44:56 +00:00
christos 61f50ff333 someone forgot to commit code. make this compile again. 2003-09-10 16:44:45 +00:00
manu 606e47547a Typo 2003-09-07 09:07:19 +00:00
manu 8e53685a40 Fix the build by removing machine dependent stuff from darwin_sysctl.h (it
is included by userland build, and it included darwin_machdep.h, which is
unavaillable for most arches)
2003-09-07 08:05:47 +00:00
manu 7dda8d2416 KERN_PROC and KERN_PROCARGS sysctl. This helps ps working (it's not
yet perfect)
2003-09-06 23:54:47 +00:00
christos e2c278d8c0 SA_SIGINFO changes 2003-09-06 22:09:20 +00:00
manu f88ed86b14 regen 2003-09-06 11:50:25 +00:00
manu bfc0bb09ef Convert dev_t for mknod 2003-09-06 11:50:00 +00:00
manu 2add551792 regen 2003-09-06 11:18:50 +00:00
manu e0a2c17b59 Correctly translate dev_t in stat/fstat/lstat 2003-09-06 11:18:03 +00:00
manu 72fb398585 regen 2003-09-03 07:29:29 +00:00
manu fcd3e861d0 Implement Darwin's FIODTYPE ioctl (get a file d_type) 2003-09-03 07:28:38 +00:00
manu 244c38a2ae regen 2003-09-02 21:48:49 +00:00
manu c4c193473f correct translation for struct statfs in getfsstat, ststfs and fstatfs 2003-09-02 21:31:01 +00:00
manu 80ae13b4df Handle colormap change requests 2003-08-31 21:10:22 +00:00
manu 2a523b0455 Correctly map the framebuffer. XDarwin display its background shade, hurrah! 2003-08-31 14:17:25 +00:00
manu ebd83433da If a Darwin process using the framebuffer (e.g.: XDarwin) crashes without
restoring text mode, do the job ourselves. This avoids letting the
user on an unusable console
2003-08-29 23:11:40 +00:00
manu 553c82ed11 Switch the console to graphic mode before trying to udv_attach the
framebuffer.
2003-08-29 22:03:13 +00:00
manu 850173c462 Correctly get framebuffer dimensions 2003-08-28 21:47:02 +00:00
chs 939df36e55 add support for non-executable mappings (where the hardware allows this)
and make the stack and heap non-executable by default.  the changes
fall into two basic catagories:

 - pmap and trap-handler changes.  these are all MD:
   = alpha: we already track per-page execute permission with the (software)
	PG_EXEC bit, so just have the trap handler pay attention to it.
   = i386: use a new GDT segment for %cs for processes that have no
	executable mappings above a certain threshold (currently the
	bottom of the stack).  track per-page execute permission with
	the last unused PTE bit.
   = powerpc/ibm4xx: just use the hardware exec bit.
   = powerpc/oea: we already track per-page exec bits, but the hardware only
	implements non-exec mappings at the segment level.  so track the
	number of executable mappings in each segment and turn on the no-exec
	segment bit iff the count is 0.  adjust the trap handler to deal.
   = sparc (sun4m): fix our use of the hardware protection bits.
	fix the trap handler to recognize text faults.
   = sparc64: split the existing unified TSB into data and instruction TSBs,
	and only load TTEs into the appropriate TSB(s) for the permissions.
	fix the trap handler to check for execute permission.
   = not yet implemented: amd64, hppa, sh5

 - changes in all the emulations that put a signal trampoline on the stack.
   instead, we now put the trampoline into a uvm_aobj and map that into
   the process separately.

originally from openbsd, adapted for netbsd by me.
2003-08-24 17:52:28 +00:00
christos b2163312f5 fix unused variable warning 2003-07-11 18:55:14 +00:00
manu 90c0f71598 Add HW_MACHINE sysctl 2003-07-10 14:47:34 +00:00
manu 0229e10bf3 Added a IOFBSETCOLORCONVERTTABLE method in ioframebuffer driver.
Added sanity check for user provided offsets in messages.
2003-07-01 19:15:47 +00:00
fvdl d5aece61d6 Back out the lwp/ktrace changes. They contained a lot of colateral damage,
and need to be examined and discussed more.
2003-06-29 22:28:00 +00:00
darrenr 960df3c8d1 Pass lwp pointers throughtout the kernel, as required, so that the lwpid can
be inserted into ktrace records.  The general change has been to replace
"struct proc *" with "struct lwp *" in various function prototypes, pass
the lwp through and use l_proc to get the process pointer when needed.

Bump the kernel rev up to 1.6V
2003-06-28 14:20:43 +00:00
martin d505b18964 Make sure to include opt_foo.h if a defflag option FOO is used. 2003-06-23 11:00:59 +00:00
manu 278cce5ba7 regen 2003-06-05 12:28:01 +00:00
manu 2c3b365958 Search alternate /emul/* path for AF_LOCAL sockets at bind() time. 2003-06-05 12:26:27 +00:00
manu faba943220 Added IOHIDSystem properties (this is about keyboard mapping)
Also added a ssize arg to mach trap args so that trap handler are aware
of the sent packet size.
2003-06-03 06:48:47 +00:00
manu 1ea26aeafe + In ioframebuffer driver:
We try to map the console framebuffer through wsdisplay. It seems to work,
 but we still need to _see_ something.
XXX Framebuffer size discovery is borken.

+ In ioframebuffer and iohidsystem:
More methods and more debug for io_connect_method_*

+ A few new IOKit mach traps.
2003-05-22 22:07:36 +00:00
manu 1ab318ff2d We had ugly magic values in io_connect_method_scalari_scalaro and friends.
Peeking at Darwin's header files gives some ideas of what we are doing here.

We know understand most of the stuff called by XDarwin and WindowServer before
mapping the framebuffer.
2003-05-15 23:35:37 +00:00
manu da05e7b4d3 Added io_service_close and the io_connect_map_memory method for
ioframebuffer's shared meory (used to handle the cursor).

XDarwin and WindowServer now fail on framebuffer mapping.
2003-05-14 18:28:04 +00:00
manu f75cb60078 One more I/O flavor for the ioframebuffer driver. XDarwin now crashes
when it comes to map the cursor shared memory (accroding to the source,
next step will be mapping the framebuffer, we are getting closer)
2003-05-14 15:50:38 +00:00
manu 31b52bb7f2 More efforts on the XDarwin front. Introduce io_connect_method_scalari_structo
and io_connect_method_structi_structo. We don't know at all how this stuff
works, but at least we can imitate what Darwin does.
2003-05-14 14:41:04 +00:00
manu 962a6c7d59 Fix a bug in io_registry_entry_get_property: one of the field in the
return packet was wrong (port descriptor instead of VM area descriptor),
thus leading to SIGSEGV when calling IOKit's IOFBCreateSharedCursor().

Now this is fixed we can move forward again on graphic mode.
2003-05-13 20:48:16 +00:00
manu d46d73437c Added the map_memory method for the IOKit, plus an implementation
for the IOHIDSystem driver in Darwin. IOHIDSystem provides access
to user interface devices.

Communication between userspace and kernel is done through a shared
memory page. Our plan is to have a kernel thread waiting on wscons
events (for now it just does nothing), and have it feeding the
shared page.
2003-04-29 22:16:38 +00:00
manu cbfe387fcc swapped the words in lseek offset reassembly (that was was confused-endian)
Removed useless include that came from a copy/paste.
2003-04-20 14:36:05 +00:00
christos 962f5ffade try to get this to work for both endian machines. 2003-04-20 00:32:16 +00:00
manu 1368d826d9 Regen 2003-04-20 00:10:20 +00:00
manu beca0eff14 Fixed an ABI bug in lseek: NetBSD pads the syscallarg structure because of
the off_t argument, Darwin does not. In order to get the off_t  argument
going through our syscall machinery, we declare it as two long arguments,
and we reassemble it in darwin_sys_lseek.
2003-04-20 00:09:41 +00:00
manu 523dbf2146 Quick and dirty version of io_registry_entry_get_properties. 2003-03-09 18:33:28 +00:00
manu c3be74fe41 Introduced IOKit driver methods. Moved back into Mach some IOKit driver
support that was in Darwin code. I get an empty darwin_iokit.c, which is
getting a good candidate for cvs delete.
2003-02-20 22:39:42 +00:00
manu ca120fe1a2 Match IOHIDSystem and IOFramebuffer request in the IOKit and handle them in
Darwin specific files. The handler does nothing yet.

This needs some improvement. Darwin attaches an IOHIDSystem device to
each human-interface device in the tree: mouse, keyboard, and a few others.
For now we only emulate one IOHIDSystem device.
2003-02-16 15:02:05 +00:00