X-Git-Url: https://git.librecmc.org/?a=blobdiff_plain;f=libubus-internal.h;h=0eddf9e1b382a03fa0e36068009abc9ff8b110b0;hb=b79e808944675040ec2cbc2534592a5d4e62477b;hp=86ba6bd17347cf94a77ec6bd9a6044fe4ee9c63f;hpb=7cd33a8e3a64a2b181fe9722b599302b62c7147c;p=oweals%2Fubus.git diff --git a/libubus-internal.h b/libubus-internal.h index 86ba6bd..0eddf9e 100644 --- a/libubus-internal.h +++ b/libubus-internal.h @@ -1,5 +1,5 @@ /* - * Copyright (C) 2011-2012 Felix Fietkau + * Copyright (C) 2011-2014 Felix Fietkau * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU Lesser General Public License version 2.1 @@ -14,18 +14,26 @@ #ifndef __LIBUBUS_IO_H #define __LIBUBUS_IO_H -#define __hidden __attribute__((visibility ("hidden"))) - extern struct blob_buf b; +extern const struct ubus_method watch_method; + +static inline struct blob_attr * +ubus_msghdr_data(struct ubus_msghdr *hdr) +{ + struct ubus_msghdr_buf *hdrbuf = container_of(hdr, struct ubus_msghdr_buf, hdr); + return hdrbuf->data; +} struct blob_attr **ubus_parse_msg(struct blob_attr *msg); void ubus_handle_data(struct uloop_fd *u, unsigned int events); int ubus_send_msg(struct ubus_context *ctx, uint32_t seq, - struct blob_attr *msg, int cmd, uint32_t peer); -void ubus_process_msg(struct ubus_context *ctx, struct ubus_msghdr *hdr); + struct blob_attr *msg, int cmd, uint32_t peer, int fd); +void ubus_process_msg(struct ubus_context *ctx, struct ubus_msghdr *hdr, int fd); int __hidden ubus_start_request(struct ubus_context *ctx, struct ubus_request *req, struct blob_attr *msg, int cmd, uint32_t peer); void ubus_process_obj_msg(struct ubus_context*ctx, struct ubus_msghdr *hdr); -extern const struct ubus_method watch_method; +void ubus_process_req_msg(struct ubus_context *ctx, struct ubus_msghdr *hdr, int fd); +void __hidden ubus_poll_data(struct ubus_context *ctx, int timeout); + #endif