Commit Graph

211 Commits

Author SHA1 Message Date
Axel Dörfler
7bdf0e452a Patch by Vasilis Kaoutsis:
* Removed duplicate PAGE_SIZE definition (now defined in limits.h).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25756 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-02 11:01:44 +00:00
Ingo Weinhold
1c8de8581b * Added optional spinlock contention measurement feature. Enabled when
B_DEBUG_SPINLOCK_CONTENTION is defined to 1. It typedefs spinlock to a
  structure (thus breaking BeOS binary compatibility), containing a
  counter which is incremented whenever a thread has to wait for the
  spinlock.
* Added macros for spinlock initialization and access and changed
  code using spinlocks accordingly. This breaks compilation for BeOS --
  the macros should be defined in the respective compatibility wrappers.
* Added generic syscall to get the spinlock counters for the thread and
  the team spinlocks.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25752 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-02 02:04:12 +00:00
Ingo Weinhold
b0f5179aa5 * Changed recursive_lock to use a mutex instead of a semaphore.
* Adjusted code using recursive locks respectively. The initialization
  cannot fail anymore, and it is possible to use recursive locks in the
  early boot process (even uninitialized, if in BSS), which simplifies
  things a little.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25687 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-28 23:12:36 +00:00
Ingo Weinhold
f2be4e8c4d Patch by Vasilis Kaoutsis: Fixed warnings.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25683 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-28 15:30:27 +00:00
Stephan Aßmus
94a6647354 Improved the coding style.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25522 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-16 08:50:45 +00:00
Stephan Aßmus
8e48eb6c32 Base the visibility decision for a shape (Level of Detail) on the global
transform only, not combined with the shapes own scale, since that is likely
not what the user intended.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-16 08:47:38 +00:00
François Revol
8e3b6823f2 Don't ue ioctl('ichr') for Haiku, we support select().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 14:53:02 +00:00
Ingo Weinhold
0c615a01ae * Removed old mutex implementation and renamed cutex to mutex.
* Trivial adjustments of code using mutexes. Mostly removing the
  mutex_init() return value check.
* Added mutex_lock_threads_locked(), which is called with the threads
  spinlock being held. The spinlock is released while waiting, of
  course. This function is useful in cases where the existence of the
  mutex object is ensured by holding the threads spinlock.
* Changed the two instances in the VFS code where an IO context of
  another team needs to be locked to use mutex_lock_threads_locked().
  Before it required a semaphore-based mutex implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25283 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-01 22:07:36 +00:00
François Revol
2bea381578 gcc4 complains about missing proto for strcpy().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25157 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-25 12:47:07 +00:00
Ingo Weinhold
cc6e7cb347 Added the BSDish openpty().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25135 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 21:30:38 +00:00
Ingo Weinhold
d1dc42cc73 "/bin/bash" is a valid shell, too. ftpd doesn't allow anyone to login,
who has a shell not returned by getusershell().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25128 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-24 16:07:02 +00:00
Michael Lotz
d419b482ad Integrate the USBKit into libdevice and make it public. I left the USBKit.h
name, as it in fact is like a kit in the kit. It combines the different BUSB*
classes as compared to SerialPort.h where there really is a 1:1 relationship
between the header and the (one) class. If someone has a better fitting name
please shout.
Separated the usb_raw.h into usb_raw.h which defines the protocol and
usb_raw_private.h which holds the internal device structure for usb_raw. This
reduces the header dependencies.
Hopefully cought all occurencies of USBKit.a usage (in usb_dev_info and
the usb_webcam media add-on) but might have missed something that is not in
the image.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24858 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-07 19:24:16 +00:00
Michael Lotz
31f63eb4da Fix broken build due to forgotten definition of the reserved virtual functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24847 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-06 22:00:19 +00:00
Michael Lotz
6a7b827501 Forgot to use nothrow for the allocation of the interface descriptor. Thanks
for pointing that out Stephan!

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24845 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-06 20:19:38 +00:00
Michael Lotz
5aa70ae110 * Add a AlternateAt() method to the BUSBInterface class that can retrieve the
usb_interface_descriptor of an alternate interface without having to switch
  to it.
* Add some reserve bytes to all classes and add some reserved virtual slots
  where the objects are publically constructable.
* Remove the source compatibilty defines that were briding the old USB* with
  the new BUSB* class names.
* Implement the usb_raw side of getting an alternate interface descriptor.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24842 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-06 19:59:24 +00:00
Michael Lotz
a43222b925 * Implemented setting an alternate interface through the USBKit library based
on a patch by Salvatore Benedetto, adapted to the usb_raw interface by me
* Added two convenience functions IsStalled() and ClearStall() to USBEndpoint

Both changes are actually untested, so if you have a use for them and encounter
problems please shout.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24837 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-06 16:22:59 +00:00
Jérôme Duval
f6604eaad7 updated libpng to 1.2.26
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24758 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-04-02 20:58:54 +00:00
Jérôme Duval
a79869d9c4 forgot to merge this for ppc
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24678 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-30 13:03:52 +00:00
Stephan Aßmus
112d61551e * Add Style::HasTransparency() which just tells if any of the colors that the
style uses has an alpha value below 255.
* Add support for intermediate rendering passes to IconRenderer. Normally,
  the whole icon is rendered in a single pass, which means shapes cannot
  overlap. With the change, intermediate rendering passes are inserted when
  a shape is encountered that contains transparency. This is an easy way to
  allow for more feature rich icons, with easy support for glossy/reflective
  surface effects or other such effects that require support for transparent
  shapes on top of other shapes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24490 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-20 11:35:51 +00:00
Jérôme Duval
5c102180bd updated fluidsynth to 1.0.8
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24454 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-18 22:17:50 +00:00
Ingo Weinhold
5bced18eab ALM/linprog patch by Christof Lutteroth:
* Got rid of class ObjFunctionSummand. Both the constraint summands and
  the objective function summands are now stored using class Summand.
* Some method names are more BeOS compliant now: SetX instead of ChangeX.
* linprog test code now uses new AddConstraint methods.
* CalculateMinSize and CalculateMaxSize did not free the memory they
  allocated.
* Removed inappropriate setter and getter methods.
* Memory allocated in class Constraint is freed now.
* Other small changes.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24351 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-03-10 21:43:32 +00:00
Ingo Weinhold
0306945545 Patch by Christof Lutteroth:
* copyright headers for the files of the libraries linprog and alm
* new class Summand for representing summands in a linear constraint
* merged class SoftConstraint into class Constraint; Constraint now
  supports both soft and hard constraint functionality
* new AddConstraint methods in class LinearSpec for directly setting
  constraints with 1 to 4 summands
* code cleanups by using aforementioned AddConstraint methods
* a new very simple test application for alm
* some style corrections


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24108 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-25 01:54:05 +00:00
Jérôme Duval
2c5ab413c2 updated marvell_yukon to 1.26 for the source file and 1.11 for the header
should help with bug #1787


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23965 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-16 18:46:40 +00:00
Jérôme Duval
6be75ff237 fix gcc4 build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-07 19:31:49 +00:00
Ingo Weinhold
a101e99aad Added libalm.so and its dependency liblinprog.so. libalm.so provides a
BLayout implementation (BALMLayout) using the Auckland Layout Model
(ALM). The original ALM was implemented by Christof Lutteroth, the
Haiku/C++ version by James Kim.
The code needs some review, but the test programs seem to work fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23889 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-06 10:51:44 +00:00
Ingo Weinhold
38d596cb81 * Moved public headers to headers/libs/lp_solve.
* Added Jamfile by James Kim and Christof Lutteroth.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-06 10:37:19 +00:00
Ingo Weinhold
9e8bb5d036 Copying lp_solve 5.5.0.11 to trunk.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-06 10:29:46 +00:00
Axel Dörfler
43711de9d2 * Added BSD specific errno.h for EDOOFUS (yeah, I know, great error code...)
* Added sigmask() macro.
* Fixed libutil.h I broke yesterday: it's thought to add functions only if
  you've included some other headers before; added the correct header guard
  we're using for our sys/param.h.
* Added pidfile.c to the build.
* Fixed warning in realhostname.c, and pidfile.c.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-03 16:20:16 +00:00
Axel Dörfler
e6b30aee0f Minor improvements for the BSD compatibility library:
* Added {get|set|end}usershell() functions.
* Define MAXLOGNAME, and L_SET, L_INCR, and L_XTND.
* The pidfile stuff in libutil.h is now included, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23827 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-02-02 17:38:09 +00:00
Stephan Aßmus
12a257d7f8 * make sure that the ApproximationScale() implementation of any Transformer
not negative
* PathSource can now remember a global scale, and the IconRenderer sets
  it, since this value is used in the curve converter for on the fly
  generation of vertices, this change does not affect anything and doesn't
  create the need to "update" the conversion pipeline to render an icon at
  different sizes (like Icon-O-Matic does)

-> this change fixes edgy curves on icons rendered bigger than 64x64 as
  reported by Axel some time ago


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23093 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-09 15:36:28 +00:00
Axel Dörfler
2c0729ea2d * Turns out the 3com driver wasn't picked up after my changes, but the marvell_yukon driver
worked flawlessly this one time... (I got almost 10 MB/s with that one, now 7.5 MB/s with
  the 3com driver)
* We need to acknowledge the interrupt in the handler, because else, the interrupt continues
  to fire after the PIC interrupt is acknowledged by the kernel.
* It also helps a lot to turn off the interrupts on the device while xl_intr() is handling
  the interrupt.
* When the slow handler is running, we now set the new "handling" field in the internal
  interrupt handler which will not invoke the scheduler then (but only signals a handled
  interrupt).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-08 19:38:51 +00:00
Axel Dörfler
4a241f2ac3 Some more extensions to the FreeBSD compatibility layer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23043 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-01 17:34:59 +00:00
Axel Dörfler
589e5418f1 * We need to call if_init() before trying to set the media.
* Accidently excluded the MII bus from being probed in r23019 - in fact, now all
  devices have to be probed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23038 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-01 13:16:34 +00:00
Axel Dörfler
1f89a3766a * device_delete_child() now works differently from FreeBSD: in FreeBSD you can't just
call this function if you don't know if a device has a direct reference to one of
  its children. Since we want to be able to delete the root without having any knowledge
  about its children, we now detach everything first, and then delete the entries.
  This fixes a possible crashing bug when a preloaded driver (used for network boot)
  tried to acquire its resources again at a later point.
* device_detach() and device_attach() now check if the device has an attach or detach
  method at all.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-01 11:09:58 +00:00
Axel Dörfler
82edabb115 Implemented device_detach(), and bus_generic_detach() - both are needed by
the updated mii code on destruction.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23032 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-30 18:50:40 +00:00
Axel Dörfler
30710739a3 * compat_open() still needs to get the stack module, as the callout
functionality needs it.
* callout_init_mtx() now initializes the timer manually, since the stack
  might not have been loaded yet (since a device is now attached in
  init_driver()).
* Minor other fixes; the FreeBSD compatibility layer should now be functional
  again.
* Accidently put pci.c into the repository, but that was never meant to happen.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23026 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-30 12:28:51 +00:00
Axel Dörfler
053693ef2a Since device_add_child() needs the name of the parent driver, the root
device needs a driver_t object, too.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23025 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-30 09:40:52 +00:00
Axel Dörfler
080b265acd Completely renovated the FreeBSD compatibility layer:
* Removed NETDEV() and DEVNET() macros and functionality.
* The exported devices are now attached to ifnet objects only, therefore, the
  ifnet object now has the receive queue, and everything else a device could
  need.
* There is now a root device where everything else is attached, it currently
  only holds the pci_info structure, so it's more or less a PCI child.
* This simplified the device handling a bit everywhere.
* We now attach drivers already in init_driver() - this is needed as drivers
  may publish more than one interface when being attached.
* Implemented device_delete_child(), device_attach() (which bus_generic_attach()
  now uses), device_is_attached(), and device_is_alive().
* Therefore, if_initname() does now the actual job of registering the devices.
* On open, if_init() is called which comes pretty close to what our open()
  is supposed to do.
* Updated ukphy.c to the one from FreeBSD 7 where used (we should probably
  move that into the compat layer, anyway).
* The MII driver array must now be NULL terminated; therefore you don't need
  to specify the count anymore.
* Moved PCI code from compat.c to bus.c.
* Moved the driver code from device.c to driver.c.
* Removed superfluous init_compat_layer() function.
* Fixed a few bugs, a few things weren't brought down correctly.
* The rtl8139 interrupt routine now checks if it really was the cause of the
  interrupt - this code is not tested, either, it may not work (which would
  then require a work-around like I did for the 3com driver).
* The HAIKU_PROTECT_INTR_REGISTER in the rtl8139 driver was pretty much useless
  which is why I removed it.
* Probably introduced a lot of new bugs, though - I haven't tested this code
  at all yet. It will probably just crash :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-29 18:56:03 +00:00
Axel Dörfler
b26de2e398 Some additions from FreeBSD 7 code.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-28 22:16:55 +00:00
Axel Dörfler
6b09666034 The compatibility layer was calling if_init() too early, I've now moved it to the compat_open()
function.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23014 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-28 17:00:33 +00:00
Axel Dörfler
8fce87ae34 * device_add_child() now also works for sub-drivers, needed by the marvell_yukon driver.
* The device path is currently inherited from its parent which might be revised later on (nameunit
  is not y


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23013 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-28 16:59:35 +00:00
Axel Dörfler
da744139fa Fixed setting up an interrupt using the new filter method: INTR_FAST doesn't
have to be set in this case.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23001 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-26 21:47:22 +00:00
Axel Dörfler
8b4ee93be6 Build fix; fbsd_ether.c did not compile anymore (but was not recompiled since
the wrong header was included).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-25 12:11:36 +00:00
Axel Dörfler
239239c8a0 * Updated the FreeBSD compatibility layer for network drivers to FreeBSD 7
(RELENG_7_BP).
* There are many white spots, though, most notable PCI MSI(-X) support, and
  jumbo frames.
* Fixed removing interrupts for the INTR_FAST case. Since FreeBSD 7 added
  a new interrupt "filter" mechanism, we can finally report if the interface
  was handled by a device or not (though only very few devices support this
  yet).
* Updated the 3com, rtl8139, e1000, and via_rhine drivers to the latest code
  base. They all compile, but I haven't tested them after the changes yet!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22991 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-25 11:29:29 +00:00
Stephan Aßmus
c50a1ab8a4 * fix spelling mistake diamont -> diamond (fixes #1618)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-11 23:00:11 +00:00
Hugo Santos
5450cae172 try to hide the gruesome details from the glue code as much as possible.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22844 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-06 16:45:10 +00:00
Bruno G. Albuquerque
13f2a5fa31 First cut at a fix to the FreeBSD rtl9139 driver. Some drivers require softc to
be initialized when probe(0 is called. The driver now loads and works for a
while until it hangs. Looking into it.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22826 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-04 17:17:41 +00:00
Axel Dörfler
b7d3b2fe8f * Calmed down the FreeBSD drivers even more - compat_{read|write}() no longer
print anything.
* Added (commented out) debug output to compat_control().
* Renamed variables "len" to "length" where possible.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22818 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-03 17:32:14 +00:00
Axel Dörfler
e25593c034 I accidently didn't revert the delayed MII bus scan correctly which resulted in callling the
device's attach() method twice - this would let every network device that found a MII PHY fall into 
an endless loop on start. In other words 3com and VIA Rhine should now work fine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22815 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-03 16:43:28 +00:00
Axel Dörfler
e60d7937c9 The MAC address might need to be copied to the arpcom structure as well
(the 3com driver needs this, for example).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22814 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-03 15:10:22 +00:00