100 Commits
Author SHA1 Message Date
Salvatore Benedetto b3e849c2ce * Adding libgen.h as a public header
* Implementing dirname and basename

I removed dirname from glibc/misc and reimplemented in order
to (hopefully) keep thing tidy.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-11 23:38:27 +00:00
Salvatore Benedetto e4263eb78e * Uncommenting POSIX mkdtemp function. Tested.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28840 a95241bf-73f2-0310-859d-f6bbb57e9c96
2009-01-01 21:01:51 +00:00
Salvatore Benedetto 4a39c23620 * Reworked ps command a bit as its previous output was just messy.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28835 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-12-31 16:47:45 +00:00
Salvatore Benedetto 9cab5f5448 * Order members alphabetically. No functional changes
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 15:10:40 +00:00
Salvatore Benedetto 7a32d7f588 * Adding unit test for xsi message queue
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27419 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 15:08:18 +00:00
Salvatore Benedetto 9c3feb120b * forgot to commit Jamfiles
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 15:06:47 +00:00
Salvatore Benedetto 40dae3708f * Adding msg{rcv,snd,get,ctl} syscalls to the system
* Add message queue init function call to main.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 15:03:01 +00:00
Salvatore Benedetto f22e1421a4 * Adding sys/msg.h header and relative syscalls
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 14:52:35 +00:00
Salvatore Benedetto b9b04b6c32 * If the receving buffer if bigger than the message, truncate the length copied
to the one of the message
* Fix comparison
* Clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-11 14:42:13 +00:00
Salvatore Benedetto 7adf6ce100 * Set msg_qbytes on IPC_SET
* Wake up only one thread waiting to send.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-10 16:22:23 +00:00
Salvatore Benedetto 3b1f1178aa * Wake up waiting threads when a new message is sent or received
* Removed sXsiMessageCountLock in favor of atomic_* function utility
* free up any remaining messages when a queue gets destroyed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-09 17:57:36 +00:00
Salvatore Benedetto b6cd7771e7 * Fix cast in user_memcpy
* Fix comparison

send and receive simple message seems to work now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27331 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-04 22:14:59 +00:00
Salvatore Benedetto d9bf715495 * Implemented msgrcv and msgsnd. Not complete yet.
* Reworked the way IDs are geneterad in the same way they are in xsi semaphores


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27327 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-04 19:45:02 +00:00
Salvatore Benedetto c0c7a73dbe * split Wait() method into Enqueue() - BlockAndUnlock() - Deque() in order to
remove a race condition pointed out by Ingo, hopefully in a clean way. The
  set is now unlocked right before blocking
* Reworked the way ID were assgned: the current time is now used as ID. This
  lower quite a lot the probability of having an ID reused.
* Introduced a sequence number field in the set class as a second ID, as
  suggested by Ingo. It is used on wake up in order not to confuse a no more
  existing set with a new one with the same ID
* Removed a now unnecessary UnsetID() method
* Increased the arbitraty limit of max sempahore allowed in the system, and
  introduced a new one for the total number of set.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-04 12:34:26 +00:00
Salvatore Benedetto 25d466ba72 * Start implementing _kern_xsi_msgsnd().
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-03 09:00:27 +00:00
Salvatore Benedetto dc0cdfb2f0 * Fix a potential race condition when deleting a semaphore set: previously only
the ipc hash table lock along with the semaphore set hash table lock were
  hold, thinking (wrongly) that the semaphore set lock itself was not needed.
  What could happen was that another process on semop could have gained the lock
  of the set itself, and then release the semaphore set hash table lock.
  This would make it think that the set was still valid, while it could have
  actually been deleted right after it release the semaphore set hash table lock.
  Same would have happened for any other processes waiting on the semaphore set
  mutex queue. By calling the lock on the mutex when deleting the set, it
  *should be* safe to assume that there is no one else waiting on its queue,
  since the list of waiters is handled in a FIFO way.

As far as I can see from the mutex_destroy code, it looks safe to hold the lock
when calling this function. Please confirm.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27268 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-01 16:16:03 +00:00
Salvatore Benedetto 842f1dfab5 * Start implementing _kern_msgctl() syscall
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27265 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-09-01 13:13:03 +00:00
Salvatore Benedetto 6d3973a54a * Removed unecessary HasMessageQueue method
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27257 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-31 16:01:19 +00:00
Salvatore Benedetto f273b13ddb * Renamed xsi_ipc_init() to xsi_sem_init() as there will be a xsi_msg_init()
for message queue
* Removed unnecessary header Vector.h
* Removed HasSemaphoreSet method: since there will be an IPC table for each
  subsystem, if a key exist, it already has a semaphore set associated
  with it


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27256 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-31 15:59:32 +00:00
Salvatore Benedetto 9309ec8635 Start implementing POSIX message queue IPC
* Implemented _kern_msgget()

Work in progress, some stuff may be removed.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27254 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-31 15:31:08 +00:00
Salvatore Benedetto 29fd670a1b * Updated license
* Removed extraneous tabs
* Implemented lldiv (#2688)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27250 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-31 10:40:58 +00:00
Salvatore Benedetto 0650565811 * Removed +1 in calculating utf string length as the null char was already included
* Improved debug output


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-23 13:00:51 +00:00
Salvatore Benedetto c5855c9ef4 * Clean up, no functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27174 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-23 12:58:24 +00:00
Salvatore Benedetto 9fd15595d6 * Replace wrong file_cache call with block_cache_get_etc() in Icb::_Read()
* Clean up

I've succefully copied data from a udf partition.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27159 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 19:19:35 +00:00
Salvatore Benedetto 2e39d2c54f * Clean up. Not functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27158 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 19:07:21 +00:00
Salvatore Benedetto 43a5ec83ef * Added some more TRACE, eventually they will be removed
* replace sizeof(dirent) with sizeof(struct dirent) as the pointer passed was called dirent!
that would cause d_reclen to be set to the wrong value, making panic. Thanks Stefano!

I finally managed to mount and list its content.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27151 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 13:30:46 +00:00
Salvatore Benedetto 56b5c63783 * Replaced some more PRINT with TRACE
* applying our coding guidelines here and there but not everywhere :-)
* no functional changes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27150 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 13:26:58 +00:00
Salvatore Benedetto 764ca4773b * fix udf build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 10:15:35 +00:00
Salvatore Benedetto e2dc263c43 * Replaced some PRINT with TRACE
* Rename error to status
* Fix assignements in udf_read_stat
* Added udf_{close_dir,free_dir_cookie} hook functions which prevented
udf from mounting the partition

It seems mouting an udf partition works correctly but I'm still unable
to list its content.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27138 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 10:06:44 +00:00
Salvatore Benedetto 89264fe471 * Improve debug output. No functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27137 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-22 09:59:01 +00:00
Salvatore Benedetto 812da77b02 * added udf_{open,close,free_cookie,access}.
Still missing something though, as it still panics with an ip 0x0


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27112 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 19:43:42 +00:00
Salvatore Benedetto e0c8039816 * Removing new_vnode which was commented out in favor of publish_vnode
in order to publish the root node
* fixed _RootVNodeID assignement
* Applying our coding guidelines

Mounting now goes as far as lookup, then I get a panic from w>Desktop
thread in CreateVolume -> GetRootDirectory. ;-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27104 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 11:56:25 +00:00
Salvatore Benedetto c9334140f6 * Some coding style clean up
* Replaced some PRINT call with TRACE



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27103 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 11:48:17 +00:00
Salvatore Benedetto 67a6ba1c21 * Fix some identation. No functional changes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27102 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-21 11:46:15 +00:00
Salvatore Benedetto e1d037ce88 * Fixed some coding style violation introduced in my previous commit. Thanks Axel!
The recognition code is actually working, I was just using the wrong dvd. I'm now
using an iso file created with mkisofs.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27085 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 17:04:01 +00:00
Salvatore Benedetto feea37380d * Replaced PRINT call with TRACE
* Improved debug output



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27084 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 17:00:53 +00:00
Salvatore Benedetto 0c3428791d * Renamed error to status
* Replaced some PRINT with TRACE 
* uncommented udf_recognized function call in Mount method
* minor clean up



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27083 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 16:59:07 +00:00
Salvatore Benedetto 6960a91cd7 * Improve debug output
* Better formatting code

No functional changes.

Right now the code fails on recognizing the descriptor sequence.
I have to figure out if I pass the wrong values to the function.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27078 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-20 12:28:16 +00:00
Salvatore Benedetto d6b39cd1a2 * Fix potential deadlock in file system
see http://www.freelists.org/archives/haiku-gsoc/08-2008/msg00024.html
for more details.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 21:48:21 +00:00
Salvatore Benedetto b13724e955 * Update Jamfile
Udf is now compilable, although probably not working.
I'll post on the kernel mailing list as I'm having trouble to get it loaded.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 10:17:08 +00:00
Salvatore Benedetto c49d6efc60 * Replaced kernel_cpp.h with util/kernel_cpp.h
* Removed Udf namespace
* Minor clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27027 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 10:13:57 +00:00
Salvatore Benedetto 375d5b5d0c * Removed udf_recognize as it has been moved to kernel_interface.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27026 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 10:11:44 +00:00
Salvatore Benedetto 7d6edec63d * Remove unnecessary file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27025 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 10:02:50 +00:00
Salvatore Benedetto e1f5f06be8 * Partially ported Volume.cpp. Some stuff is still comment out.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 10:01:27 +00:00
Salvatore Benedetto deac135d7c * Replaced kernel_cpp.h with util/kernel_cpp.h
* Removed Udf namespace
* Clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27023 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 09:53:28 +00:00
Salvatore Benedetto 4b2b0bdc48 Ooops! Should have been part of previous commit
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27022 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 09:48:00 +00:00
Salvatore Benedetto f48bfbccaa * Removed Udf namespace
* Renamed String to UdfString


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27021 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 09:46:53 +00:00
Salvatore Benedetto 8cc064d1dc * delete unnecessary cache.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 09:44:48 +00:00
Salvatore Benedetto 0e7990cd61 * Update CachedBlock.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27019 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 09:43:14 +00:00
Salvatore Benedetto 5fc06217df * Removed fsproto.h
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27018 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 09:41:29 +00:00
Salvatore Benedetto a412472546 * Removed DirectoryIterator.{h,cpp} and included them in Icp.{h,cpp}
* Porting Icb to new file cache system


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-18 09:40:42 +00:00
Salvatore Benedetto 51933b5533 * Renamed udf.cpp to kernel_interface.cpp and ported it to the new FS API.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26994 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-16 20:27:16 +00:00
Salvatore Benedetto 6ae7f6879f * Reworked the way sem_undo requests are processed by following
Ingo suggestions: instead of having one global sem_undo list,
  we now have two local list, one per semaphore set and one per team
  which is held in its xsi_sem_context structure, along with a mutex.
  A mutex has also been added to the semaphore set class in order to
  protect the local list, but also in order to (hopefully) improve
  concurrency.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26993 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-16 18:20:54 +00:00
Salvatore Benedetto 461106374f * Fix year in license
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26922 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-10 17:02:34 +00:00
Salvatore Benedetto 4093d16d51 * updating license
* use _{BEGIN|END}_DECL macro instead of ifdef C++



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26921 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-10 16:29:51 +00:00
Salvatore Benedetto 839157e97c * Removing bonnie in favor of bonnie++-1.03d
BTW: I've added bonnie++ as it is. That is, I just realized that some
unnecessary directory/files (like debian) could have been removed. 
They shouldn't harm ;-)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26920 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-10 15:39:11 +00:00
Salvatore Benedetto 24bd900833 * Adding bonnie++ suite version 1.03d. It includes the binary zcat and bonnie++ itself
I'm adding it to the same directory of where bonnie was, but I think
src/test/apps would be a better place.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26919 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-10 15:36:25 +00:00
Salvatore Benedetto 71d31cc518 * Removing old version of bonnie
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26918 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-10 15:33:26 +00:00
Salvatore Benedetto 70081c0dfc * Clean up continues
* Removing _IMPEXP_KERNEL macro along with the COMPILE_FOR_R5 macro
* Also removing Udf namespace


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-09 08:32:48 +00:00
Salvatore Benedetto 90b73f5f3f * Applied our coding guidelines
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26883 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-09 08:14:40 +00:00
Salvatore Benedetto d9409b5cda * Clean up
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-08 23:27:23 +00:00
Salvatore Benedetto 4ef471dec0 Start porting udf
- Cleaning up AllocationDescriptorList in order to follow our coding guidelines
- Moving methods implentation outside the class

I've already ported udf but I'm going to commit it one file at the time
so it's easier to review, plus I still have to clean up the code.

Please review.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-08 22:53:36 +00:00
Salvatore Benedetto b3ae704659 * fix year in copyright
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26856 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-07 10:59:35 +00:00
Salvatore Benedetto 40353b088c * Updating license
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26855 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-07 08:14:09 +00:00
Salvatore Benedetto cefb069022 * Adding xsi semaphore test unit
* Moving common functions and macros used in realtime_sem_test1
  to a shared header as they are probably going to be used for other test unit



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26854 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-07 08:09:56 +00:00
Salvatore Benedetto 79f556e5a6 * Check for wake ups on Revert()
* Fix TRACE() output
* Check for IPC_CREAT in xsi_semget when IPC does not yet exist
* Fix bound checking
* Fix setpid call



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26814 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-05 09:44:36 +00:00
Salvatore Benedetto 51daeb7147 - Fixed warnings
- Fixed deadlock in xsi_sem_undo - RecordUndo
- Fixed issue in xsi_sem_undo: if the semaphore set does not exist
anymore, ignore the request but do remove the process from the sUndoList,
which wasn't previously done.
- free() in ClearUndos was called with interrupts disabled
- when a semaphore set ends to exist, remove all it's sem_undo request as it's ID
will be reused in the future.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26727 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-08-02 11:30:55 +00:00
Salvatore Benedetto 93dd5d6569 * Fix typo. Thanks mjw!
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26132 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-25 19:29:03 +00:00
Salvatore Benedetto 7b67df9c06 * Fix cache reference leak
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26110 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-23 20:13:25 +00:00
Salvatore Benedetto f43368dcbd * Forgot to put us keymap as the default one
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26054 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 23:29:56 +00:00
Salvatore Benedetto e65b3b4eac * Let's keep the alphabetical order
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26049 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 22:45:33 +00:00
Salvatore Benedetto 242b8e12a3 * Added italian keymap
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26048 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 22:40:15 +00:00
Salvatore Benedetto de1ecdaf63 * Added necessary dummy descriptor to every endpoint created
* Implemented _RemoveTransferFromEndpoint
* Reworked _AppendChainDescriptorsToEndpoint as now every endpoint has (must have) a dummy descriptor



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23741 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-25 17:47:59 +00:00
Salvatore Benedetto 555d13dc9f * Implemented private method _AppendChainDescriptorsToEndpoint in order to avoid code duplication (lock needs to be added)
* Fixed _SubmitControlRequest in order to use _AppendChainDescriptorsToEndpoint


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23734 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-25 14:03:02 +00:00
Salvatore Benedetto 5f061e0b6b * More work on the finisher thread
* Reworked SubmitTrasfer method
* Implemented CancelQueuedTransfers
* Minor clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23722 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-24 20:43:45 +00:00
Salvatore Benedetto 2b5d39e859 * Added force paramater to CancelQueuedIsochronousTransfers along with a TODO
* Replaced space with tab


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23715 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-24 12:53:32 +00:00
Salvatore Benedetto ea0331c6f9 * Removed cast: not needed anymore since Interval() has been moved to the base class (Pipe)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23704 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-22 18:27:44 +00:00
Salvatore Benedetto 5b6cdc4c7b * fixed memory leak: if InitKernelAccess failed data was not deleted
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23703 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-22 17:54:59 +00:00
Salvatore Benedetto f2e973d406 * Implemented _AddPendingTransfer
* renamed trasfer_data memeber top to first_descriptor
* added data_descriptor member to transfer_data (useful for control transfer)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23702 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-22 17:26:36 +00:00
Salvatore Benedetto 27d7771a1e * Renamed fFinishTransfer to fLastTransfer (I don't even know why I called it
so in the first place)
* Renamed local variable descriptor to current in the finisher thread
* Using next_done_descriptor instead of next_logical_descriptor, as the latest
is used to keep track of all descriptors that belongs to the transfer
* Added _UnlinkTransfer private method
* Implemented _FreeDescriptorChain
* Moved endpoint pointer from the ohci_general_td structur to the transfer_data_s
structure, ad the ohci_general_td has already a transfer_data_s pointer which can
be used to the endpoint pointer reducing ridundancy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23701 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-22 14:58:22 +00:00
Salvatore Benedetto acf9124f1b * Added definition for the hash related methods (not implemented)
* Continue working in the _FinishTransfer thread
* added next_done_descriptor in ohci_[general|isochronous]_td structure in order to handle
collisions.
* added next_logical_descriptor to ohci_isochronous_td structure



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 22:25:47 +00:00
Salvatore Benedetto 4cfc1fee3e * Added hash function and related data in order to find the virtual address
of the descriptor from its physical address returned by the controller.

NOTE: As stated in the commented code, when the controller has finished processing
some descriptors, it returns the first element physical address of an heterogeneous list
(general + isochronous) and there is not way to tell the descriptor type.
This solution, which implementes two hash tables (one for generic descriptors and
one for isochronous) is the one adopted from *BSD.
If somebody has better idea, please let me know. :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23589 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-17 18:02:26 +00:00
Salvatore Benedetto d98bdb30bc * Started working on the finisher thread
* Added some TRACE calls in the _InterruptHandler


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23266 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-01-06 14:34:22 +00:00
Salvatore Benedetto e78f31ebbe * Partially implemented interrupt handler routine
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@23175 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-12-27 22:26:29 +00:00
Salvatore Benedetto 187574cf69 * Small clean up
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22985 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-23 14:01:17 +00:00
Salvatore Benedetto 30cb1cfbb6 * Added SetAltInterface method which allows to set an alternate interface for the device
* Added InitEndpoint and ClearEndpoint to avoid code duplication
* Usual clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22983 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-23 12:55:59 +00:00
Salvatore Benedetto c62d18ceff * Removed #ifndef HAIKU_TARGET_PLATFORM_HAIKU in InitKernelAccess and PreparKernelAccess as it made those fuctions useless in HAIKU, and those
functions are needed to pass data back to the user space buffer.
* Fixed Jamfile


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22982 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-23 12:19:49 +00:00
Salvatore Benedetto e1070961a3 * Added some checks on parameters passed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22981 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-23 12:01:43 +00:00
Salvatore Benedetto 6dfeac892b * Fixed init part of the controller
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22980 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-22 23:25:37 +00:00
Salvatore Benedetto 01489ae060 * Remove SubmitAsyncTransfer and SubmitPeriodicTransfer
* Added _SubmitControlRequest (almost implemented), _LinkDescriptors, _WriteDescriptorChain (basically copied from EHCI, and UHCI)
* Renamed ohci_general_descriptor to ohci_general_td, and ohci_isochronous_descriptor to ohci_isochronous_td
* Finished _CreateGeneralDescriptor and _FreeGeneralDescriptor
* Added buffer_size member to ohci_general_td instead and removed last_logical_byte_address as it looked unnecessary
* minor clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22968 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-20 22:16:42 +00:00
Salvatore Benedetto 4ff174438e * Implemented _InsertEndpointForPipe
* usual clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22938 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-17 15:12:31 +00:00
Salvatore Benedetto eaa35fb2d1 * Replaced snooze with spin (Thanks Axel)
* Fixing TRACE messages
* minor clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22935 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-17 11:03:16 +00:00
Salvatore Benedetto e1abd4c8ce * Moved disable_interrupt right before resetting the controller
* Reworked on NotifyPipeChange
* Added _RemoveEndpointForPipe (not implemented)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22934 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-16 10:11:02 +00:00
Salvatore Benedetto 3f652d19a6 * Completed SubmitTransfer
* Added SubmitAsyncTransfer and SubmitPeriodicTransfer (not implemented)
* Removed unecessary spinlock 
* Wrapped some lines to follow coding guidelines



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22932 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-15 21:25:16 +00:00
Salvatore Benedetto ca73cdd62f * Renamed some variables
* Reworking the interrupts endpoints tree parts
* Added spin_locker, semaphore, finisher thread and interrupt handler (not implemented)
* Made fInterruptEndpoints allocation dynamic instead of static
* Fixed Start method (it should be correct now)




git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22927 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-14 13:37:41 +00:00
Salvatore Benedetto e3677c6d3c * ups :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-10 18:36:56 +00:00
Salvatore Benedetto a097d8c8ee * Placed underscore to private methods like ReadReg and WriteReg
* Rewrote _AllocateEndpoint
* More work in the constructor


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22873 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-11-10 17:47:03 +00:00
Salvatore Benedetto 9d211eb104 * Removed endpoint and descriptor wrappers, everything is in the related structure like it's done in the uhci driver.
* Clean up continues


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22733 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-26 12:55:16 +00:00
Salvatore Benedetto dfd1357ad2 * Rewrote part of the constructor: most of the code is ported from FreeBSD
* Usual clean up


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22625 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-20 16:31:15 +00:00
Salvatore Benedetto 2907d85a71 * Renaming macros
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22624 a95241bf-73f2-0310-859d-f6bbb57e9c96
2007-10-20 12:11:16 +00:00