Commit Graph

352 Commits

Author SHA1 Message Date
Colin Günther
041865ac2b Adding a constant, to allow compiling of the iprowifi5xxx driver based on
the r27 source from http://svn.techwires.net/svn/projects/freebsd/sys/.
Actually this driver works now, but as it is developed outside of the FreeBSD
repo, I will not include it into Haiku's repository.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34790 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-28 04:48:17 +00:00
Colin Günther
430eb68718 * Removing debugging flag to lower the debug output. Moreover the removed DEBUG_ELEMID flag proved unuseful anyway.
* Whitespace cleanup.
* Uniform usage of pointer char.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34789 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-28 04:39:15 +00:00
Colin Günther
b7dbc3795f Whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34747 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-22 16:48:32 +00:00
Colin Günther
32a0e3810e This change should have been part of r34718.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34720 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-20 13:44:43 +00:00
Colin Günther
cc69ec0dd6 Implementing pci_{get|set}_powerstate. There are some wlan chips with the need
to be switched to D0 first.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34718 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-20 13:10:20 +00:00
Ingo Weinhold
96054879c1 Fixed build. Since vprintf() is defined as a macro, it's a good idea to
include the <stdio.h> first. I don't see, why the header defines stuff that
is already defined in <stdio.h> anyway.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34716 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-20 13:07:02 +00:00
Colin Günther
949b2ceb01 Adding a function to the freebsd compat layer, to support linkage of the
aironetwifi driver.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34709 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-19 20:25:07 +00:00
Michael Lotz
cc83a8213b The wlan part uses a very specific way to update multicast addresses for the
parent interface. It calls if_addmulti() on it but temporarily sets the ioctl
hook to NULL. We need to account for that so we don't crash on multicast setup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34699 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-19 03:26:28 +00:00
Colin Günther
db1ee3078d Partially undoing r34965, as pcivar.h should not have been part of it. Sorry
for the noise.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34696 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 21:32:33 +00:00
Colin Günther
250affd447 Whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34695 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 21:11:20 +00:00
Colin Günther
8f1951519e Whitespace cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34694 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 20:59:10 +00:00
Colin Günther
92d96f0105 * Whitespace cleanup. No functional change.
* Use C++ comment styles.
* Use a common pointer orientation throughout the code.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34693 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 20:03:23 +00:00
Colin Günther
fafb321062 * Removed code duplication by merging destruct_pkt_mbuf and mb_free_ext.
This gets rid of one layer of indirection, too.
  Also, this removed a potential memory leakage, when deleting external memory 
  in destruct_pkt_mbuf. In the case where memory of type EXT_JUMBO9 was
  previously allocated, this would have been wrongly catched by the condition 
  (ext_type & EXT_CLUSTER) != 0.
* Renamed some variables to more human readable style.
* Commented some constants in mbuf.h to make more clear what they indicate and
  to show that they should not be treatet as flags, as it was the case one
  some locations before.
* Removed the EXT_PACKET constant, as it requests the same cache as
  EXT_CLUSTER. EXT_PACKET is a optimizing technique from BSD, where a cache 
  exists holding some preallocated mbuf + cluster memory. Such a thing is not
  implemented in the compat layer, at all. Though EXT_CLUSTER tells more
  clearly what the size of the external data buffer is.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34692 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 19:18:58 +00:00
Michael Lotz
de86f3421c Also call construct_mbuf() from m_getjcl() as it initializes the mbuf fields. It
also handles the M_PKTHDR flag. Before, the uninitialized fields could be left over
from earlier freed mbufs and on m_freem previous m_next fields could be returned
resulting in random mbufs being freed. This makes the iprowifi4965 work and fixes
#5089.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34691 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-18 18:00:11 +00:00
Colin Günther
2b03fdfe35 * Implementing rman_get_start and copying rman_make_alignment_flags from
FreeBSD 8 (r199625) and thus adding the FreeBSD license header.
* Implementing the glue code to make the wavelanwifi driver linking.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34626 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 22:04:51 +00:00
Colin Günther
0229a55264 * Adding remaining wlan drivers (FreeBSD RELEASE_8_0_0) to trunk.
Both are compiling, but not linking yet. Only for compilation of pci support
  has been taken care of, as neither ISA nor PCMCIA are usable within Haiku 
  anyway.
* Enhancing the FreeBSD compat layer so that the above drivers are compiling.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34621 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 16:23:38 +00:00
Colin Günther
3d9728baf9 * Changed definition of driver_intr_t to the way it is defined in FreeBSD.
The internal_intr structure needed to be adapted accordingly, otherwise it
  would not compile anymore.
  This definition is needed by the aironet (if_an.c) driver I'm currently
  porting.
* Extending FreeBSD compat layer a bit in preparation of porting the remaining
  wlan drivers. 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34620 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 16:16:19 +00:00
Colin Günther
ccc02f719a * Moved socket ioctls from FreeBSD compat layer into the corresponding Haiku
header. This shall ensure uniqueness of the ioctls.
* Added a special SIOCEND define to Haiku's sockio.h, so that drivers can define
  private ioctls as can be seen in src/add-ons/kernel/drivers/network/wlan/atheros/dev/ath/if_athioctl.h.
* Modified ioccom.h of the FreeBSD compat layer, to make use of the special
  SIOCEND define.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34612 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-10 11:11:03 +00:00
Stephan Aßmus
b8ec67f491 * Simplified and optimized a lot the "ToString()" debugging facilities.
* *::Index() is now const, thanks to the BList improvements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34521 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-06 13:14:45 +00:00
Colin Günther
69972fe0de Enabling usage of C++ structures in C only code for the wlan stack, too. This
fixes the problem where building wlan drivers failed, due to not yet assembled
kernel_c++_structs_sizes.h while only the wlan stack needed to be compiled.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34501 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-05 11:16:02 +00:00
Colin Günther
ef102a3599 Removing superflous headers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34490 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-04 13:15:48 +00:00
Colin Günther
a22b78e693 Making use of the C++ structures in C only code feature introduced with
r34441. This allows to completely stick to FreeBSD's conditional cv_* function
semantics as 'struct cv' variables are freed automatically now.
This also gets rid of the dynamically de-/allocating of ConditionalVariables.
Thank you Ingo for helping me through this.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34489 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-04 13:10:23 +00:00
Colin Günther
c9986738a3 Refactoring condition variable subsystem of FreeBSD compat layer. Basically it
separates the usage of published and unpublished ConditionalVariables into
different functions. 
This allows to stick to the semantics of FreeBSD's condition variable subsystem
where it isn't needed to call cv_destroy. With the refactoring now there aren't
orphaned published ConditionalVariable left over, when shutting down the compat
layer.
Though, allocated unpublished struct cv's aren't cleaned up yet. This will be
addressed in a next commit.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34468 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-03 17:47:20 +00:00
Colin Günther
0a05bd2063 Removing superflous functions.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34463 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-03 13:41:29 +00:00
Colin Günther
a49ed9ad76 * Refactoring the condition variable and synchronization subsystem of the
freebsd compat layer.
* Renaming functions where their names aren't preset by FreeBSD to stick
  to the coding style guidelines.
* Making use of static Notify functions of Haiku's ConditionalVariable
  implementation.
* Removing management of used ConditionalVariables within the compat layer.
  This should also fix #5072.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34461 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-03 12:50:14 +00:00
Colin Günther
962b2f7296 This function needs to handle the sJumboPageSizeCache, too.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34433 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-01 22:51:33 +00:00
Colin Günther
f47e4d7f93 * Adding another mbuf cache for handling MJUMPAGESIZE sized clusters.
* This should fix ticket #5063.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34429 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-01 20:28:51 +00:00
Colin Günther
8aefb67757 Remove unused header.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34428 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-01 19:36:33 +00:00
Colin Günther
56c28b450f * Getting rid of the necessity for cleaning up initialized ConditionalVariables
in uninit_condition_variables(). This method and its counterpart
  init_condition_variables() will be removed, once the need for the 
  sConditionVariableHash will be eliminated.
* Now every initialized  ConditionalVariable gets removed right after it is no  
  longer needed. Ingo what do you think?
* This behaviour matches with the FreeBSD way, where a conditional variable
  gets assigned to a sleepqueue only when needed, and is removed from that
  sleepqueue the moment the condition is met.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34427 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-01 18:48:54 +00:00
Colin Günther
aa068fb982 * Fixing the panics occured when deleting ConditionVariables while still
holding the InterruptsSpinLocker.
* Have to use B_RELATIVE_TIMEOUT if you want to wait for a specific period.
  This fixes the problem of failing firmware loading in iprowifi2200 due to
  always timing out before the firmware would have had the chance to actually
  load.
* I can surf with iprowifi2200 now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-12-01 15:02:50 +00:00
Colin Günther
cb89b085e3 * Completing the condition variable subsystem. Thanks to ingo for the heads
up.
* Removed the cv_waiters structure member as it is nowhere used in the network
  subsytem by FreeBSD either.
* Removing the sleepqueue dummy functions completely, as Haiku's condition
  variable subsystem is well suited for this purpose.
* This fixes the build, too, as it introduces the new implementation of pause
  and _pause.
* Implementing the msleep and wakeup functions based on the condition variable
  implementation.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-30 22:27:02 +00:00
Colin Günther
914a9b34b7 Adding adaptive multi rate retry algorithm module to the wlan stack, as it is
needed by some drivers.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-30 21:49:26 +00:00
Colin Günther
fcd8a8a031 Enhancing freebsd network compat layer with linkage support of the iprowifi2100
driver in mind.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-30 21:19:30 +00:00
Colin Günther
d0805bf47e * Basically reimplemented the conditional variable support, so that it is now
easier to a) cleanup on driver unloading and b) to implement the msleep
  and wakeup functions. This is facilitated by keeping track of used
  conditional variables in a hash table. Also this table can be used to get
  the conditional variable belonging to a hash, which isn't supported by
  Haiku's conditional variable support at the moment.
  All network drivers are compiling and linking but it needs to be tested,
  whether executing rises any issues.
* Minor coding style cleanup in condvar.h regarding intersection spacing.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34375 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-30 13:17:04 +00:00
Colin Günther
a315b76dc8 * Importing r401 of ported wlan stack from osdrawer.net/haiku-wifi.
This port is based on FreeBSD RELEASE_8_0_0 (r199625) found in Haiku's
  freebsd vendor branch.
* Added freebsd_wlan directory to the Jamfile in HAIKU_TOP/src/libs/compat/
  so that the stack can be built with jam libfreebsd_wlan.a.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34343 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-29 11:22:01 +00:00
Ingo Weinhold
dc28a50219 Hacked up mesa/x86/gen_matypes.c so it no longer generates a header file, but
a file suitable for the CreateAsmStructOffsetsHeader rule. The file is then
used to generate the actual matypes.h header. This fixes issues when
cross-compiling from a 64 bit platform.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-27 14:12:32 +00:00
Colin Günther
da0be4bf3f Remove the wlan specific headers to allow a clearer distinction between
ethernet and wlan drivers when compiling them. Also this removes the burden to
recompile every ethernet driver just because of changes in the wlan part.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34306 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-27 12:13:10 +00:00
Axel Dörfler
648aeae3bc * Properly fixed libutil; we should not use O_TRUNC before having exclusive
access to the file.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34281 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-26 14:22:35 +00:00
Axel Dörfler
aec945c959 * Removed the O_* modes that we currently don't and probably won't support
(O_MOUNT, O_EXLOCK, and O_SHLOCK). I only left the non-standard O_TEMPORARY
  for the time being (as it shouldn't fool anyone).
* Fixed libutil that already used O_EXLOCK, even though it did not do anything.
* Moved O_NOCACHE, and O_NOFOLLOW to the section with implemented modes.
* Added O_DIRECTORY.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34278 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-26 14:17:46 +00:00
Bruno G. Albuquerque
7d39f1f137 - Get the process information of the correct team by using get_team_usage_info
instead of getrusage.
- Thanks François for insisting on this. :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34133 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-19 12:48:45 +00:00
Bruno G. Albuquerque
4459056dda - Fix tabs. Thatś the price I pay for doing Haiku development outside Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34099 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-17 17:09:08 +00:00
Bruno G. Albuquerque
7d911b2ad9 - Coding style fixes. Thanks Axel for the heads up.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34097 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-17 16:13:00 +00:00
Bruno G. Albuquerque
9306738deb - Only try to get usage info if there was no error with waitpid.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34092 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-17 16:00:10 +00:00
Bruno G. Albuquerque
ada17216f9 - Added wait3() and wait4() to the bsd compatibility library.
- Untested, but should work (will test it when I get home later today).
- This is my first attempt at adding something for compatibility reasons. Let
  me know if something in wrong.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34091 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-17 15:53:17 +00:00
Jérôme Duval
35e2c7ab62 updated libpng to 1.2.40
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33956 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-08 23:30:28 +00:00
Colin Günther
fd0795f24c This TODO was resolved in r33860.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33861 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-11-01 20:41:56 +00:00
Colin Günther
99a016fd97 * Replacing the Haiku with the FreeBSD copyright in the ieee80211_haiku.h file as it is basically the ieee80211_freebsd.h file. But it only contains code needed by the haiku port. As I regard to the process of adding only needed code as trivial, I sofor removode the Haiku specific copyright completely. Opinions welcome.
* Adding the complete ieee80211 channel structure as it contains alot of useful information which is hard to obtain otherwise (e.g. conversion between frequency and channel number).

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33855 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-31 20:33:39 +00:00
Axel Dörfler
ea607d6f7f * Applied a patch by Christof Lutteroth that updates ALM, and brings new test
apps.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33805 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-28 09:00:14 +00:00
Colin Günther
df65e069cf Coding style fix. Thx to axeld. No functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33793 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-27 18:56:10 +00:00
Colin Günther
6c76785bef Using the add_timer() function as proposed by alexd. Thanks.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33791 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-10-27 17:09:53 +00:00