| /* |
| * routeup.h - routeup library interface |
| * Copyright (c) 2012 The Chromium Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| * |
| * Call routeup_setup() to initialize a routeup context, then call |
| * routeup_once() until it returns nonzero (indicating an error) or until |
| * you're no longer interested in route changes. Call routeup_teardown() |
| * when you're done with an routeup context. |
| */ |
| |
| #ifndef ROUTEUP_H |
| #define ROUTEUP_H |
| |
| struct routeup |
| { |
| int netlinkfd; /* AF_NETLINK event socket */ |
| }; |
| |
| #ifdef TARGET_OS_LINUX |
| int routeup_setup (struct routeup *ifc); |
| int routeup_once (struct routeup *ifc, unsigned int timeout); |
| int routeup_process (struct routeup *rtc); |
| void routeup_teardown (struct routeup *ifc); |
| #else |
| static inline int routeup_setup (struct routeup *ifc) |
| { |
| return 1; /* Fail for platforms without support. */ |
| } |
| static inline int routeup_once (struct routeup *ifc, unsigned int timeout) |
| { |
| return -1; |
| } |
| static inline int routeup_process (struct routeup *rtc) |
| { |
| return -1; |
| } |
| static inline void routeup_teardown (struct routeup *ifc) |
| { |
| } |
| #endif |
| |
| #endif /* !ROUTEUP_H */ |