Re: see if a mutex lock is taken?
Re: see if a mutex lock is taken?
- Subject: Re: see if a mutex lock is taken?
- From: Greg <email@hidden>
- Date: Mon, 11 Feb 2008 23:18:29 -0500
Thanks mousse! That's the ticket! :-)
- Greg
On Feb 11, 2008, at 10:26 PM, mm w wrote:
Hi Greg,
as far I understand you want to use
/System/Library/Frameworks/Kernel.framework/Headers/kern/locks.h
there is a private method: extern boolean_t
lck_mtx_try_lock(lck_mtx_t *lck);
but as I tried to explain you this API does the job for you, it is
lock system/api for a mutex_t
nm /mach_kernel | grep lck_mtx_try_lock
0019aa30 T _lck_mtx_try_lock
004d1b03 D _lck_mtx_try_lock_lockstat_patch_point
0019a930 T _lck_mtx_try_lock_spin
004d1aff D _lck_mtx_try_lock_spin_lockstat_patch_point
if you absolutely want to use it just declare it as extern in your
header
extern boolean_t lck_mtx_try_lock(lck_mtx_t *lck);
further information: take a look here xnu/osfmk/i386/i386_lock.s
or here
xnu/osfmk/ppc/hw_lock.s
and sure the IOKit interface
http://developer.apple.com/documentation/Darwin/Reference/KernelIOKitFramework/IOLocks/CompositePage.html
call me mousse,\\ enjoy
-mmw
On Feb 11, 2008 6:54 PM, Greg <email@hidden> wrote:
On Feb 11, 2008, at 3:42 PM, mm w wrote:
hi Greg, yep these mechanisms exist, this is the first things that
you
implement when you write a lock system no matter on what: islockable
and islocked
try to understand, what you do (if you use a lck object (locked))
if your lock object has been created, a lock has been aquired
when you create a lock object, the lock system test it for you
-mmw
Hi mmw, thanks for your reply. I was specifically wondering how I
could do this from a kernel extension? I don't see a header in
Kernel.framework that contains any try_lock functions for lck_mtx_t.
Thanks!
- Greg
Hmm... I've found this in the sources to xnu, but I can't find this
in
the Kernel.framework. Perhaps I should have mentioned that I'm
writing a kernel extension. Does this exist for kernel extensions,
and if so how do I access it? Right now I'm just linking against
Kernel.framework, which doesn't seem to have this header.
Thanks!
- Greg
--
-mmw
_______________________________________________
Do not post admin requests to the list. They will be ignored.
Darwin-kernel mailing list (email@hidden)
Help/Unsubscribe/Update your Subscription:
This email sent to email@hidden