2012-12-24 15:36:14 +04:00
|
|
|
#ifndef __CR_PROTOBUF_H__
|
|
|
|
#define __CR_PROTOBUF_H__
|
2012-07-17 07:00:18 +04:00
|
|
|
|
2013-05-28 22:11:59 +04:00
|
|
|
#include "protobuf-desc.h"
|
|
|
|
|
2013-01-09 17:02:47 +04:00
|
|
|
#include "asm/types.h"
|
2012-07-17 07:00:18 +04:00
|
|
|
#include "compiler.h"
|
|
|
|
#include "util.h"
|
|
|
|
|
2012-08-07 02:42:58 +04:00
|
|
|
extern int do_pb_read_one(int fd, void **objp, int type, bool eof);
|
2012-07-17 07:00:18 +04:00
|
|
|
|
2012-08-07 02:42:58 +04:00
|
|
|
#define pb_read_one(fd, objp, type) do_pb_read_one(fd, (void **)objp, type, false)
|
|
|
|
#define pb_read_one_eof(fd, objp, type) do_pb_read_one(fd, (void **)objp, type, true)
|
2012-07-17 07:00:18 +04:00
|
|
|
|
2012-08-07 02:26:50 +04:00
|
|
|
extern int pb_write_one(int fd, void *obj, int type);
|
2012-07-17 07:00:18 +04:00
|
|
|
|
|
|
|
#define pb_pksize(__obj, __proto_message_name) \
|
|
|
|
(__proto_message_name ##__get_packed_size(__obj) + sizeof(u32))
|
|
|
|
|
|
|
|
#define pb_repeated_size(__obj, __member) \
|
2013-01-18 11:08:39 +04:00
|
|
|
((size_t)(sizeof(*(__obj)->__member) * (__obj)->n_ ##__member))
|
2012-07-17 07:00:18 +04:00
|
|
|
|
2012-08-09 13:16:46 +04:00
|
|
|
#define pb_msg(__base, __type) \
|
|
|
|
container_of(__base, __type, base)
|
|
|
|
|
2012-07-18 19:09:51 +04:00
|
|
|
#include <google/protobuf-c/protobuf-c.h>
|
|
|
|
|
2012-08-07 02:51:34 +04:00
|
|
|
extern void do_pb_show_plain(int fd, int type, int single_entry,
|
2013-05-08 00:00:24 +04:00
|
|
|
void (*payload_hadler)(int fd, void *obj),
|
|
|
|
const char *pretty_fmt);
|
2012-07-18 19:09:51 +04:00
|
|
|
|
2012-08-14 14:49:40 +04:00
|
|
|
/* Don't have objects at hands to also do typechecking here */
|
2013-05-08 00:00:24 +04:00
|
|
|
#define pb_show_plain_payload_pretty(__fd, __type, payload_hadler, pretty) \
|
|
|
|
do_pb_show_plain(__fd, __type, 0, payload_hadler, pretty)
|
2012-08-14 14:49:40 +04:00
|
|
|
|
2013-05-08 00:00:24 +04:00
|
|
|
#define pb_show_plain_payload(__fd, __proto_message_name, payload_hadler) \
|
|
|
|
pb_show_plain_payload_pretty(__fd, __proto_message_name, payload_hadler, NULL)
|
2012-08-14 14:49:40 +04:00
|
|
|
|
|
|
|
#define pb_show_plain_pretty(__fd, __proto_message_name, __pretty) \
|
2013-05-08 00:00:24 +04:00
|
|
|
pb_show_plain_payload_pretty(__fd, __proto_message_name, NULL, __pretty)
|
2012-08-07 02:51:34 +04:00
|
|
|
|
2013-08-21 03:27:06 +04:00
|
|
|
struct collect_image_info {
|
|
|
|
int fd_type;
|
|
|
|
int pb_type;
|
|
|
|
unsigned int priv_size;
|
|
|
|
int (*collect)(void *, ProtobufCMessage *);
|
|
|
|
unsigned flags;
|
|
|
|
};
|
|
|
|
|
|
|
|
#define COLLECT_SHARED 0x1 /* use shared memory for obj-s */
|
|
|
|
#define COLLECT_OPTIONAL 0x2 /* image file may be missing */
|
2014-08-06 21:08:28 +04:00
|
|
|
#define COLLECT_HAPPENED 0x4 /* image was opened and collected */
|
2013-08-21 03:27:06 +04:00
|
|
|
|
2013-11-15 14:04:48 +04:00
|
|
|
extern int collect_image(struct collect_image_info *);
|
2012-12-25 22:40:24 +04:00
|
|
|
|
|
|
|
#endif /* __CR_PROTOBUF_H__ */
|