Moved headers from include/libutils and include/libsysutils to libutils/include and libsysutils/include respectively, so they can be exported via these libs. They needed to be moved since Soong does not allow export from external folder. Added symlink from old locations. They are needed since Soong includes system/core/include by default. Once all modules are cleaned up to explicitly add the required libs, the symlinks will be removed. Moved headers of libutils to libutils_headers. They should be used by modules for header-only inlines. Added libutils_headers as dependency of libutils. Split of C++ headers into those that have no dependency and those that have dependency on libutils.so will be handled in a later CL. Test: Add above libs to shared lib of local module Change-Id: I122db72056b26b1f39bad1d9a0c2a1c5efda3550
69 lines
1.9 KiB
C++
69 lines
1.9 KiB
C++
/*
|
|
* Copyright (C) 2008 The Android Open Source Project
|
|
*
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
* you may not use this file except in compliance with the License.
|
|
* You may obtain a copy of the License at
|
|
*
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
*
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
* See the License for the specific language governing permissions and
|
|
* limitations under the License.
|
|
*/
|
|
#ifndef _NETLINKEVENT_H
|
|
#define _NETLINKEVENT_H
|
|
|
|
#include <sysutils/NetlinkListener.h>
|
|
|
|
#define NL_PARAMS_MAX 32
|
|
|
|
class NetlinkEvent {
|
|
public:
|
|
enum class Action {
|
|
kUnknown = 0,
|
|
kAdd = 1,
|
|
kRemove = 2,
|
|
kChange = 3,
|
|
kLinkUp = 4,
|
|
kLinkDown = 5,
|
|
kAddressUpdated = 6,
|
|
kAddressRemoved = 7,
|
|
kRdnss = 8,
|
|
kRouteUpdated = 9,
|
|
kRouteRemoved = 10,
|
|
};
|
|
|
|
private:
|
|
int mSeq;
|
|
char *mPath;
|
|
Action mAction;
|
|
char *mSubsystem;
|
|
char *mParams[NL_PARAMS_MAX];
|
|
|
|
public:
|
|
NetlinkEvent();
|
|
virtual ~NetlinkEvent();
|
|
|
|
bool decode(char *buffer, int size, int format = NetlinkListener::NETLINK_FORMAT_ASCII);
|
|
const char *findParam(const char *paramName);
|
|
|
|
const char *getSubsystem() { return mSubsystem; }
|
|
Action getAction() { return mAction; }
|
|
|
|
void dump();
|
|
|
|
protected:
|
|
bool parseBinaryNetlinkMessage(char *buffer, int size);
|
|
bool parseAsciiNetlinkMessage(char *buffer, int size);
|
|
bool parseIfInfoMessage(const struct nlmsghdr *nh);
|
|
bool parseIfAddrMessage(const struct nlmsghdr *nh);
|
|
bool parseUlogPacketMessage(const struct nlmsghdr *nh);
|
|
bool parseNfPacketMessage(struct nlmsghdr *nh);
|
|
bool parseRtMessage(const struct nlmsghdr *nh);
|
|
bool parseNdUserOptMessage(const struct nlmsghdr *nh);
|
|
};
|
|
|
|
#endif
|