InterfaceController.h revision 2eab1f762badb7ba46b95716e62ea4548a979903
12eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt/* 22eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * Copyright (C) 2012 The Android Open Source Project 32eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * 42eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * Licensed under the Apache License, Version 2.0 (the "License"); 52eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * you may not use this file except in compliance with the License. 62eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * You may obtain a copy of the License at 72eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * 82eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * http://www.apache.org/licenses/LICENSE-2.0 92eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * 102eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * Unless required by applicable law or agreed to in writing, software 112eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * distributed under the License is distributed on an "AS IS" BASIS, 122eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 132eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * See the License for the specific language governing permissions and 142eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt * limitations under the License. 152eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt */ 162eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt 172eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt#ifndef _INTERFACE_CONTROLLER_H 182eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt#define _INTERFACE_CONTROLLER_H 192eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt 202eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt#include <linux/in.h> 212eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt#include <net/if.h> 222eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt 232eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidttypedef struct android_wifi_priv_cmd { 242eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt char *buf; 252eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt int used_len; 262eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt int total_len; 272eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt} android_wifi_priv_cmd; 282eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt 292eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt#define INTERFACE_MAX_BUFFER_SIZE 256 302eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt 312eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidtclass InterfaceController { 322eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt int iSock; 332eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt char *iBuf; 342eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt 352eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt int sendCommand(char *iface, char *cmd, char *buf, int buf_len); 362eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidtpublic: 372eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt InterfaceController(); 382eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt virtual ~InterfaceController(); 392eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt 402eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt int interfaceCommand(int argc, char *argv[], char **rbuf); 412eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt}; 422eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt 432eab1f762badb7ba46b95716e62ea4548a979903Dmitry Shmidt#endif 44