PageRenderTime 25ms CodeModel.GetById 19ms app.highlight 4ms RepoModel.GetById 1ms app.codeStats 0ms

/drivers/ieee1394/ieee1394_types.h

https://bitbucket.org/evzijst/gittest
C Header | 101 lines | 72 code | 27 blank | 2 comment | 2 complexity | 6cbb5b13cd1e046d87fbb4f8fcb8295f MD5 | raw file
  1
  2#ifndef _IEEE1394_TYPES_H
  3#define _IEEE1394_TYPES_H
  4
  5#include <linux/kernel.h>
  6#include <linux/types.h>
  7#include <linux/list.h>
  8#include <linux/init.h>
  9#include <linux/spinlock.h>
 10#include <linux/string.h>
 11
 12#include <asm/semaphore.h>
 13#include <asm/byteorder.h>
 14
 15
 16/* Transaction Label handling */
 17struct hpsb_tlabel_pool {
 18	DECLARE_BITMAP(pool, 64);
 19	spinlock_t lock;
 20	u8 next;
 21	u32 allocations;
 22	struct semaphore count;
 23};
 24
 25#define HPSB_TPOOL_INIT(_tp)			\
 26do {						\
 27	bitmap_zero((_tp)->pool, 64);		\
 28	spin_lock_init(&(_tp)->lock);		\
 29	(_tp)->next = 0;			\
 30	(_tp)->allocations = 0;			\
 31	sema_init(&(_tp)->count, 63);		\
 32} while (0)
 33
 34
 35typedef u32 quadlet_t;
 36typedef u64 octlet_t;
 37typedef u16 nodeid_t;
 38
 39typedef u8  byte_t;
 40typedef u64 nodeaddr_t;
 41typedef u16 arm_length_t;
 42
 43#define BUS_MASK  0xffc0
 44#define BUS_SHIFT 6
 45#define NODE_MASK 0x003f
 46#define LOCAL_BUS 0xffc0
 47#define ALL_NODES 0x003f
 48
 49#define NODEID_TO_BUS(nodeid)	((nodeid & BUS_MASK) >> BUS_SHIFT)
 50#define NODEID_TO_NODE(nodeid)	(nodeid & NODE_MASK)
 51
 52/* Can be used to consistently print a node/bus ID. */
 53#define NODE_BUS_FMT		"%d-%02d:%04d"
 54#define NODE_BUS_ARGS(__host, __nodeid)	\
 55	__host->id, NODEID_TO_NODE(__nodeid), NODEID_TO_BUS(__nodeid)
 56
 57#define HPSB_PRINT(level, fmt, args...) printk(level "ieee1394: " fmt "\n" , ## args)
 58
 59#define HPSB_DEBUG(fmt, args...) HPSB_PRINT(KERN_DEBUG, fmt , ## args)
 60#define HPSB_INFO(fmt, args...) HPSB_PRINT(KERN_INFO, fmt , ## args)
 61#define HPSB_NOTICE(fmt, args...) HPSB_PRINT(KERN_NOTICE, fmt , ## args)
 62#define HPSB_WARN(fmt, args...) HPSB_PRINT(KERN_WARNING, fmt , ## args)
 63#define HPSB_ERR(fmt, args...) HPSB_PRINT(KERN_ERR, fmt , ## args)
 64
 65#ifdef CONFIG_IEEE1394_VERBOSEDEBUG
 66#define HPSB_VERBOSE(fmt, args...) HPSB_PRINT(KERN_DEBUG, fmt , ## args)
 67#else
 68#define HPSB_VERBOSE(fmt, args...)
 69#endif
 70
 71#define HPSB_PANIC(fmt, args...) panic("ieee1394: " fmt "\n" , ## args)
 72
 73#define HPSB_TRACE() HPSB_PRINT(KERN_INFO, "TRACE - %s, %s(), line %d", __FILE__, __FUNCTION__, __LINE__)
 74
 75
 76#ifdef __BIG_ENDIAN
 77
 78static __inline__ void *memcpy_le32(u32 *dest, const u32 *__src, size_t count)
 79{
 80        void *tmp = dest;
 81	u32 *src = (u32 *)__src;
 82
 83        count /= 4;
 84
 85        while (count--) {
 86                *dest++ = swab32p(src++);
 87        }
 88
 89        return tmp;
 90}
 91
 92#else
 93
 94static __inline__ void *memcpy_le32(u32 *dest, const u32 *src, size_t count)
 95{
 96        return memcpy(dest, src, count);
 97}
 98
 99#endif /* __BIG_ENDIAN */
100
101#endif /* _IEEE1394_TYPES_H */