⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ipmi_locks.h

📁 支持IPMI协议的开源API包。可以开发服务器硬件状态监控程序。
💻 H
字号:
/* * ipmi_locks.h * * MontaVista IPMI locking abstraction * * Author: MontaVista Software, Inc. *         Corey Minyard <minyard@mvista.com> *         source@mvista.com * * Copyright 2002,2003,2004 MontaVista Software Inc. * *  This program is free software; you can redistribute it and/or *  modify it under the terms of the GNU Lesser General Public License *  as published by the Free Software Foundation; either version 2 of *  the License, or (at your option) any later version. * * *  THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED *  WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF *  MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. *  IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, *  INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, *  BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS *  OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND *  ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR *  TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE *  USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. * *  You should have received a copy of the GNU Lesser General Public *  License along with this program; if not, write to the Free *  Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA. */#ifndef _IPMI_LOCKS_H#define _IPMI_LOCKS_H#include <OpenIPMI/os_handler.h>/* This is a generic lock used by the IPMI code. */typedef struct ipmi_lock_s ipmi_lock_t;/* Create a lock but us your own OS handlers. */int ipmi_create_lock_os_hnd(os_handler_t *os_hnd, ipmi_lock_t **lock);/* Destroy a lock. */void ipmi_destroy_lock(ipmi_lock_t *lock);/* Lock the lock.  Locks are recursive, so the same thread can claim   the same lock multiple times, and must release it the same number   of times. */void ipmi_lock(ipmi_lock_t *lock);/* Release the lock. */void ipmi_unlock(ipmi_lock_t *lock);/* Like the above locks, but read/write locks. */typedef struct ipmi_rwlock_s ipmi_rwlock_t;int ipmi_create_rwlock_os_hnd(os_handler_t *os_hnd, ipmi_rwlock_t **new_lock);void ipmi_destroy_rwlock(ipmi_rwlock_t *lock);void ipmi_rwlock_read_lock(ipmi_rwlock_t *lock);void ipmi_rwlock_read_unlock(ipmi_rwlock_t *lock);void ipmi_rwlock_write_lock(ipmi_rwlock_t *lock);void ipmi_rwlock_write_unlock(ipmi_rwlock_t *lock);#ifdef IPMI_CHECK_LOCKSvoid ipmi_report_lock_error(os_handler_t *handler, char *str);#define IPMI_REPORT_LOCK_ERROR(handler, str) ipmi_report_lock_error(handler, \								    str)#else#define IPMI_REPORT_LOCK_ERROR(handler, str) do {} while (0)#endifextern int __ipmi_debug_locks;#define DEBUG_LOCKS	(__ipmi_debug_locks)#define DEBUG_LOCKS_ENABLE() __ipmi_debug_locks = 1#define DEBUG_LOCKS_DISABLE() __ipmi_debug_locks = 0#endif /* _IPMI_LOCKS_H */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -