diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-09-19 23:20:44 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2010-09-19 23:20:44 +0200 |
commit | ec91b8ae6735a3f2977dc886ea63ff28e1aeef41 (patch) | |
tree | 67ac2a696cdd345b543d8415c74166bed11e9d4f /linux/dev/glue/net.c | |
parent | 9d952fb2d44ec2199a1d08999ff7a68aa26e9507 (diff) | |
parent | 45fcd2d09c15820e58e2334b80f7367d2f98ebb7 (diff) |
Merge branch 'master' into HEAD
Conflicts:
ChangeLog
kern/bootstrap.c
kern/debug.c
vm/vm_object.c
Diffstat (limited to 'linux/dev/glue/net.c')
-rw-r--r-- | linux/dev/glue/net.c | 26 |
1 files changed, 26 insertions, 0 deletions
diff --git a/linux/dev/glue/net.c b/linux/dev/glue/net.c index b76e0986..095428d3 100644 --- a/linux/dev/glue/net.c +++ b/linux/dev/glue/net.c @@ -533,6 +533,17 @@ static io_return_t device_get_status (void *d, dev_flavor_t flavor, dev_status_t status, mach_msg_type_number_t *count) { + if (flavor == NET_FLAGS) + { + struct net_data *net = (struct net_data *) d; + + if (*count != 1) + return D_INVALID_SIZE; + + status[0] = net->dev->flags; + return D_SUCCESS; + } + if(flavor >= SIOCIWFIRST && flavor <= SIOCIWLAST) { /* handle wireless ioctl */ @@ -592,6 +603,21 @@ static io_return_t device_set_status(void *d, dev_flavor_t flavor, dev_status_t status, mach_msg_type_number_t count) { + if (flavor == NET_FLAGS) + { + if (count != 1) + return D_INVALID_SIZE; + + short flags = status[0]; + struct net_data *net = (struct net_data *) d; + + dev_change_flags (net->dev, flags); + + /* Change the flags of the Mach device, too. */ + net->ifnet.if_flags = net->dev->flags; + return D_SUCCESS; + } + if(flavor < SIOCIWFIRST || flavor > SIOCIWLAST) return D_INVALID_OPERATION; |