| | 109 | #endif |
|---|
| | 110 | |
|---|
| | 111 | #if LINUX_VERSION_CODE < KERNEL_VERSION(2,4,23) |
|---|
| | 112 | static inline struct net_device *_alloc_netdev(int sizeof_priv, const char *mask, |
|---|
| | 113 | void (*setup)(struct net_device *)) |
|---|
| | 114 | { |
|---|
| | 115 | struct net_device *dev; |
|---|
| | 116 | int alloc_size; |
|---|
| | 117 | |
|---|
| | 118 | /* ensure 32-byte alignment of the private area */ |
|---|
| | 119 | alloc_size = sizeof (*dev) + sizeof_priv + 31; |
|---|
| | 120 | |
|---|
| | 121 | dev = (struct net_device *) kmalloc (alloc_size, GFP_KERNEL); |
|---|
| | 122 | if (dev == NULL) |
|---|
| | 123 | { |
|---|
| | 124 | printk(KERN_ERR "alloc_dev: Unable to allocate device memory.\n"); |
|---|
| | 125 | return NULL; |
|---|
| | 126 | } |
|---|
| | 127 | |
|---|
| | 128 | memset(dev, 0, alloc_size); |
|---|
| | 129 | |
|---|
| | 130 | if (sizeof_priv) |
|---|
| | 131 | dev->priv = (void *) (((long)(dev + 1) + 31) & ~31); |
|---|
| | 132 | |
|---|
| | 133 | setup(dev); |
|---|
| | 134 | strcpy(dev->name, mask); |
|---|
| | 135 | |
|---|
| | 136 | return dev; |
|---|
| | 137 | } |
|---|
| | 138 | |
|---|
| | 139 | /* Avoid name collision - some vendor kernels backport alloc_netdev() */ |
|---|
| | 140 | #undef alloc_netdev |
|---|
| | 141 | #define alloc_netdev(s,m,d) _alloc_netdev(s,m,d) |
|---|
| | 142 | |
|---|
| | 143 | static inline struct proc_dir_entry *PDE(const struct inode *inode) |
|---|
| | 144 | { |
|---|
| | 145 | return (struct proc_dir_entry *)inode->u.generic_ip; |
|---|
| | 146 | } |
|---|