How the function do_raw_spin_lock is implemented in linux

While debugging panic issue realted to spinlock, I came across this definition of spinlock in

include/linux/spinlock.h

. It is rather hard for me to understand this definition. Why is __acquires(lock) used after the do_raw_spin_lock function? What is the signification of such declaration?

static inline void do_raw_spin_lock(raw_spinlock_t *lock) __acquires(lock)
{
        __acquire(lock);
        arch_spin_lock(&lock->raw_lock);
}

Please help me how such declaration are decoded and work.

Answers


It is used for static analysis.

http://en.wikipedia.org/wiki/Sparse


Need Your Help

How can I set the title on a GWT cell widget?

gwt gwt-2.2-celltable

I have a cell table that has several columns whose data may occasionally be wider than their column's width.

in iOS8 using .focus() will show virtual keyboard and scroll page after touch

javascript ios uikeyboard autofocus

Prior to iOS8, using the Javascript .focus() method on an input element would appear to have no effect (the virtual keyboard would not display). After the latest iOS 8 release, running the .focus()

About UNIX Resources Network

Original, collect and organize Developers related documents, information and materials, contains jQuery, Html, CSS, MySQL, .NET, ASP.NET, SQL, objective-c, iPhone, Ruby on Rails, C, SQL Server, Ruby, Arrays, Regex, ASP.NET MVC, WPF, XML, Ajax, DataBase, and so on.