/usr/include/iphbd/iphb_internal.h is in libiphb-dev 1.2.4+15.10.20150929-0ubuntu1.
This file is owned by root:root, with mode 0o644.
The actual contents of the file can be viewed below.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 | /**
@brief Internal iphb service definitions
@file iphb_internal.h
Internal iphb service definitions
<p>
Copyright (C) 2008-2011 Nokia. All rights reserved.
@author Raimo Vuonnala <raimo.vuonnala@nokia.com>
@author Semi Malinen <semi.malinen@nokia.com>
This file is part of Dsme.
Dsme is free software; you can redistribute it and/or modify
it under the terms of the GNU Lesser General Public License
version 2.1 as published by the Free Software Foundation.
Dsme is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
Lesser General Public License for more details.
You should have received a copy of the GNU Lesser General Public
License along with Dsme. If not, see <http://www.gnu.org/licenses/>.
*/
#ifndef IPHB_INTERNAL_H
#define IPHB_INTERNAL_H
#include <sys/types.h>
#include <stdint.h>
#define HB_SOCKET_PATH "/dev/shm/iphb" /**@brief IPC path between client and iphbd */
#define HB_KERNEL_DEVICE "/dev/iphb" /**@brief Device between kernel module and iphbd */
#define HB_KERNEL_DEVICE_TEST "/tmp/iphb" /**@brief Test device between kernel module and iphbd */
#if 0
#define HB_MINTIME(__interval) (__interval - __interval/3) /* Default minimum heartbeat wait time */
#define HB_MAXTIME(__interval) (__interval + __interval/3) /* Default maximum heartbeat wait time */
#endif
#define HB_LKM_KICK_ME_PERIOD "30" /**@brief Period (seconds) the kernel sends messages to iphbd when IP traffic is seen */
#include <dsme/messages.h>
/**@brief Message from client to iphbd ("wake me up") */
struct _iphb_wait_req_t {
uint16_t mintime; /*!< minimum wait time in seconds, zero means use default */
uint16_t maxtime; /*!< maximum wait time in seconds, zero means use default */
pid_t pid; /*!< client process ID (PID) */
// sizeof = 8
/* Since 1.1.0 */
uint8_t wakeup; /*!< Flag for use with dsme internal waits.
* If set to non-zero value, device will
* wakeup to handle the internal wakeup
* instead of handling it while woken up
* due to external activity. */
// sizeof = 9
/* Since 1.2.0 */
uint8_t version; /*!< Request structure version:
* 0 < 1.2.0
* 1 >= 1.2.0
*/
uint16_t mintime_hi; /*!< Extend minimum wait time to 32bit range */
uint16_t maxtime_hi; /*!< Extend maximum wait time to 32bit range */
// sizeof = 14
/* Note: The size of this structure can grow up to 64 bytes without causing
* binary compatibility breaks, see struct _iphb_req_t below */
};
/**@brief Message from iphbd to client ("wake up!") */
struct _iphb_wait_resp_t {
time_t waited; /*!< time in secs client really waited */
};
/**@brief Command code */
enum _iphb_cmd_t {
IPHB_WAIT = 0, /*!< wait heartbeat */
IPHB_STAT = 1, /*!< get statistics */
};
/**@brief Request */
struct _iphb_req_t {
enum _iphb_cmd_t cmd; /*!< command code */
union {
struct _iphb_wait_req_t wait; /*!< wait request */
char dummy[64];
}
u;
};
enum {
DSME_MSG_ENUM(DSM_MSGTYPE_WAIT, 0x00000600),
DSME_MSG_ENUM(DSM_MSGTYPE_WAKEUP, 0x00000601),
};
typedef struct {
DSMEMSG_PRIVATE_FIELDS
struct _iphb_wait_req_t req;
void* data;
} DSM_MSGTYPE_WAIT;
typedef struct {
DSMEMSG_PRIVATE_FIELDS
struct _iphb_wait_resp_t resp;
void* data;
} DSM_MSGTYPE_WAKEUP;
#endif /* IPHB_INTERNAL_H */
|