Sponsored Content
Top Forums Programming Compiling virtual network adapter driver problem (net_device struct) Post 302465852 by Chrisdot on Sunday 24th of October 2010 03:48:27 PM
Old 10-24-2010
Yes, I have made a little research and found that net_device struct is a little bit different since 2009. I am trying to fit this code to new net_device struct that is no so easy.
Have you got any samples of network drivers basic source code?

I got now:

Code:
#include <linux/module.h>
#include <linux/config.h>
#include <linux/netdevice.h>


int virtualNIC_open(struct net_device *dev) {
 printk("virtualNIC_open called\n");
 netif_start_queue(dev);
 return 0;
}

int virtualNIC_release(struct net_device *dev) {
 printk("virtualNIC_release called\n");
 netif_stop_queue(dev);
 return 0;
}

static int virtualNIC_xmit(struct sk_buff *skb, struct net_device *dev) {
 printk("dummy xmit function called...\n");
 dev_kfree_skb(skb);
 return 0;
}

int virtualNIC_init(struct net_device *dev);


static const struct net_device_ops my_netdev_ops = {
 .ndo_init = virtualNIC_init,
 .ndo_open = virtualNIC_open,
 .ndo_stop = virtualNIC_release,
 .ndo_start_xmit = virtualNIC_xmit,
};

int virtualNIC_init(struct net_device *dev) {
 dev->netdev_ops = &my_netdev_ops;
 printk("virtualNIC device initialized\n");

struct net_device virtualNIC = {
 .netdev_ops = &my_netdev_ops
/* .netdev_ops.ndo_init: virtualNIC_init*/
};

int virtualNIC_init_module(void) {
 int result;
 strcpy(virtualNIC.name, "virtual network adapter");
 if((result = register_netdev(&virtualNIC))) {
  printk("virtualNIC: Error %d initalizing card ...", result);
  return result;
 }
 return 0;
}

I can compile it, but if I type 'insmod mymodule' then segmentation fault occurs. Don't know solution.

Last edited by Chrisdot; 10-24-2010 at 05:42 PM..
 

10 More Discussions You Might Find Interesting

1. Programming

freeBSD device driver (use struct uio)

Hi, everybody I have next problem... 1) My Example program code void main() { int fd; int len; int buf; fd=open("mydev", O_RDONLY); lseek(fd, 0, SEEK_SET); len=read(fd, buf, sizeof(buf)); } 2) My Example Driver code static int mydev_read(dev_t dev, ?, ?, struct uio* uio) {... (0 Replies)
Discussion started by: Alex_T
0 Replies

2. AIX

Power6 Virtual Fibre Channel Adapter

Hello, Searched in all IBM Redbooks and on the internet and couldn't find anything about the new feature of POWER 6 which Virtual Fibre ( Fiber ) channel adapter. It is similar to virtual scsi adapter. In my client partition I created the virtual Fibre Adapter mapped it with the VIO... (1 Reply)
Discussion started by: filosophizer
1 Replies

3. AIX

How to active this network adapter?

When I configure two VIO Servers, VIOS1 used to ping its gateway, after I configured second VIOS2, VIOS1 cannpt ping its gateway, when I run this command: entstat -all ent#|grep -i priority Priority: 5 Active: False How to make Active to True? (1 Reply)
Discussion started by: rainbow_bean
1 Replies

4. UNIX for Dummies Questions & Answers

Simulated driver for Network Interface Adapter

Hi all, I got sort of a task to do. I have to write in C "simulated network driver". What does it mean? - It has to run on all network adapters - It has to be as simple as it can be - It has to run on all linux distributions (or at least most of them) - It does not have to run a network... (4 Replies)
Discussion started by: Chrisdot
4 Replies

5. AIX

Setting up an Integrated Virtual Ethernet adapter

All I am trying allocate an IVE to an LPAR (not a VIO) running AIX 7.1. I am getting the error: HSCL068A Explanation Logical port can not be assigned to Logical Partition because this Logical Partition is not the promiscuous LPAR for the physical port. Has anyone encountered this... (1 Reply)
Discussion started by: johnf
1 Replies

6. Programming

Storing C++-struct in file - problem when adding new item in struct

Hi, I have received an application that stores some properties in a file. The existing struct looks like this: struct TData { UINT uSizeIncludingStrings; // copy of Telnet data struct UINT uSize; // basic properties: TCHAR szHost; //defined in Sshconfig UINT iPortNr; TCHAR... (2 Replies)
Discussion started by: Powerponken
2 Replies

7. AIX

Adding Virtual Adapter to LPAR

Hello, hopefully someone can help me out with this, I have created a virtual Ethernet adapter on the VIO but would like to add it to my new LPAR. On my VIO only my disk is mapped. $ lsmap -all SVSA Physloc Client Partition ID --------------- --------------------------------------------... (5 Replies)
Discussion started by: audis$
5 Replies

8. IP Networking

Virtual Adapter MAC address..

Hi, I just want to know whether two MAC address can exist in a adapter.. I mean one there will be mandatory one And another as user defined one.. Any replies will be more helpful.. Please help.. :wall: (0 Replies)
Discussion started by: Priya Amaresh
0 Replies

9. Hardware

Need Sun 10-Gigabit Ethernet Adapter CD or ixge driver

Hi, Does anybody have a "Sun 10-Gigabit Ethernet Adapter installation CD" or driver ixge for Sun 10-Gigabit Ethernet PCI-X adapter? I need it but can't find it anywhere. So if you know where I can download it or purchase it, please let me know. (Already tried Oracle's website, don't have it) ... (5 Replies)
Discussion started by: Lhao
5 Replies

10. Solaris

Attach Solaris 11.1 rwn driver to RaLink RT8200/8260 Wi Fi Adapter

I installed Solaris 11.1 on a X86 PC. It's working except for one glaring problem : I cannot get a driver attached to the RaLink RT2800 (Wi Fi Adapter). Can someone point me in the direction where " the correct" driver exists, or let me know how I can tell Solaris to attach the device to the... (1 Reply)
Discussion started by: JWH
1 Replies
PTM(4)							   BSD Kernel Interfaces Manual 						    PTM(4)

NAME
ptm -- pseudo-terminal multiplexor device SYNOPSIS
pseudo-device pty [count] DESCRIPTION
The ptm driver is the backend for the /dev/ptm device. It supports three ioctl(2)s. The first is TIOCPTMGET, which allocates a free pseudo- terminal device, sets its user ID to the calling user, revoke(2)s it, and returns the opened file descriptors for both the master and the slave pseudo-terminal device to the caller in a struct ptmget. This struct has the following content: struct ptmget { int cfd; int sfd; char cn[16]; char sn[16]; }; where cfd and sfd contain the master resp. slave device's file descriptor and cn and sn the corresponding paths in the file system. The /dev/ptmx device supports two more ioctl(2)s, TIOCGRANTPT, which is used by grantpt(3), TIOCPTSNAME, which is used by ptsname(3). The ptm device is included with the pseudo-device pty(4). It can be disabled by adding ``options NO_DEV_PTM'' to the kernel configuration. FILES
/dev/ptm ptm access device /dev/ptmx ptm cloning device, used to implement Unix98 ptys SEE ALSO
grantpt(3), openpty(3), posix_openpt(3), ptsname(3), unlockpt(3), pty(4) HISTORY
The /dev/ptm device appeared in OpenBSD 3.5 and was ported to NetBSD 3.0. BSD
November 12, 2005 BSD
All times are GMT -4. The time now is 04:00 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy