Skip to content

Commit

Permalink
Merge changes I7c1c0f3d,I670cb0b7,Id426d5c5
Browse files Browse the repository at this point in the history
* changes:
  liblog: replace "frontend" with "transport"
  liblog: stay away from C++ keyword private
  liblog: specify clang format
  • Loading branch information
Treehugger Robot authored and Gerrit Code Review committed Mar 10, 2017
2 parents ac13718 + 81321a7 commit ce7ee08
Show file tree
Hide file tree
Showing 57 changed files with 10,382 additions and 10,669 deletions.
9 changes: 9 additions & 0 deletions liblog/.clang-format
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
BasedOnStyle: Google
AllowShortFunctionsOnASingleLine: false

CommentPragmas: NOLINT:.*
DerivePointerAlignment: false
PointerAlignment: Left
PenaltyExcessCharacter: 32

Cpp11BracedListStyle: false
18 changes: 9 additions & 9 deletions liblog/README
Original file line number Diff line number Diff line change
Expand Up @@ -108,10 +108,10 @@ SYNOPSIS

int android_log_destroy(android_log_context *ctx)

#include <log/log_frontend.h>
#include <log/log_transport.h>

int android_set_log_frontend(int frontend_flag)
int android_get_log_frontend()
int android_set_log_transport(int transport_flag)
int android_get_log_transport()

Link with -llog

Expand Down Expand Up @@ -167,12 +167,12 @@ DESCRIPTION
when opening the sub-log. It is recommended to open the log
ANDROID_LOG_RDONLY in these cases.

android_set_log_frontend() selects frontend filters. Argument is either
LOGGER_DEFAULT, LOGGER_LOGD, LOGGER_NULL or LOGGER_LOCAL. Log to logger
daemon for default or logd, drop contents on floor, or log into local
memory respectively. Both android_set_log_frontend() and
android_get_log_frontend() return the current frontend mask, or a
negative errno for any problems.
android_set_log_transport() selects transport filters. Argument is
either LOGGER_DEFAULT, LOGGER_LOGD, LOGGER_NULL or LOGGER_LOCAL. Log to
logger daemon for default or logd, drop contents on floor, or log into
local memory respectively. Both android_set_log_transport()
and android_get_log_transport() return the current transport mask, or
a negative errno for any problems.

ERRORS
If messages fail, a negative error code will be returned to the caller.
Expand Down
96 changes: 47 additions & 49 deletions liblog/config_read.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,75 +14,73 @@
* limitations under the License.
*/

#include <log/log_frontend.h>
#include <log/log_transport.h>

#include "config_read.h"
#include "logger.h"

LIBLOG_HIDDEN struct listnode __android_log_transport_read =
{ &__android_log_transport_read, &__android_log_transport_read };
LIBLOG_HIDDEN struct listnode __android_log_persist_read =
{ &__android_log_persist_read, &__android_log_persist_read };
LIBLOG_HIDDEN struct listnode __android_log_transport_read = {
&__android_log_transport_read, &__android_log_transport_read
};
LIBLOG_HIDDEN struct listnode __android_log_persist_read = {
&__android_log_persist_read, &__android_log_persist_read
};

static void __android_log_add_transport(
struct listnode *list, struct android_log_transport_read *transport) {
size_t i;
struct listnode* list, struct android_log_transport_read* transport) {
size_t i;

/* Try to keep one functioning transport for each log buffer id */
for (i = LOG_ID_MIN; i < LOG_ID_MAX; i++) {
struct android_log_transport_read *transp;
/* Try to keep one functioning transport for each log buffer id */
for (i = LOG_ID_MIN; i < LOG_ID_MAX; i++) {
struct android_log_transport_read* transp;

if (list_empty(list)) {
if (!transport->available || ((*transport->available)(i) >= 0)) {
list_add_tail(list, &transport->node);
return;
}
} else {
read_transport_for_each(transp, list) {
if (!transp->available) {
return;
}
if (((*transp->available)(i) < 0) &&
(!transport->available ||
((*transport->available)(i) >= 0))) {
list_add_tail(list, &transport->node);
return;
}
}
if (list_empty(list)) {
if (!transport->available || ((*transport->available)(i) >= 0)) {
list_add_tail(list, &transport->node);
return;
}
} else {
read_transport_for_each(transp, list) {
if (!transp->available) {
return;
}
if (((*transp->available)(i) < 0) &&
(!transport->available || ((*transport->available)(i) >= 0))) {
list_add_tail(list, &transport->node);
return;
}
}
}
}
}

LIBLOG_HIDDEN void __android_log_config_read() {
if (__android_log_frontend & LOGGER_LOCAL) {
extern struct android_log_transport_read localLoggerRead;
if (__android_log_transport & LOGGER_LOCAL) {
extern struct android_log_transport_read localLoggerRead;

__android_log_add_transport(&__android_log_transport_read,
&localLoggerRead);
}
__android_log_add_transport(&__android_log_transport_read, &localLoggerRead);
}

#if (FAKE_LOG_DEVICE == 0)
if ((__android_log_frontend == LOGGER_DEFAULT) ||
(__android_log_frontend & LOGGER_LOGD)) {
extern struct android_log_transport_read logdLoggerRead;
extern struct android_log_transport_read pmsgLoggerRead;
if ((__android_log_transport == LOGGER_DEFAULT) ||
(__android_log_transport & LOGGER_LOGD)) {
extern struct android_log_transport_read logdLoggerRead;
extern struct android_log_transport_read pmsgLoggerRead;

__android_log_add_transport(&__android_log_transport_read,
&logdLoggerRead);
__android_log_add_transport(&__android_log_persist_read,
&pmsgLoggerRead);
}
__android_log_add_transport(&__android_log_transport_read, &logdLoggerRead);
__android_log_add_transport(&__android_log_persist_read, &pmsgLoggerRead);
}
#endif
}

LIBLOG_HIDDEN void __android_log_config_read_close() {
struct android_log_transport_read *transport;
struct listnode *n;
struct android_log_transport_read* transport;
struct listnode* n;

read_transport_for_each_safe(transport, n, &__android_log_transport_read) {
list_remove(&transport->node);
}
read_transport_for_each_safe(transport, n, &__android_log_persist_read) {
list_remove(&transport->node);
}
read_transport_for_each_safe(transport, n, &__android_log_transport_read) {
list_remove(&transport->node);
}
read_transport_for_each_safe(transport, n, &__android_log_persist_read) {
list_remove(&transport->node);
}
}
44 changes: 20 additions & 24 deletions liblog/config_read.h
Original file line number Diff line number Diff line change
Expand Up @@ -26,30 +26,26 @@ __BEGIN_DECLS
extern LIBLOG_HIDDEN struct listnode __android_log_transport_read;
extern LIBLOG_HIDDEN struct listnode __android_log_persist_read;

#define read_transport_for_each(transp, transports) \
for ((transp) = node_to_item((transports)->next, \
struct android_log_transport_read, node); \
((transp) != node_to_item((transports), \
struct android_log_transport_read, \
node)) && \
((transp) != node_to_item((transp)->node.next, \
struct android_log_transport_read, \
node)); \
(transp) = node_to_item((transp)->node.next, \
struct android_log_transport_read, node))

#define read_transport_for_each_safe(transp, n, transports) \
for ((transp) = node_to_item((transports)->next, \
struct android_log_transport_read, node), \
(n) = (transp)->node.next; \
((transp) != node_to_item((transports), \
struct android_log_transport_read, \
node)) && \
((transp) != node_to_item((n), struct android_log_transport_read, \
node)); \
(transp) = node_to_item((n), struct android_log_transport_read, \
node), \
(n) = (transp)->node.next)
#define read_transport_for_each(transp, transports) \
for ((transp) = node_to_item((transports)->next, \
struct android_log_transport_read, node); \
((transp) != node_to_item((transports), \
struct android_log_transport_read, node)) && \
((transp) != node_to_item((transp)->node.next, \
struct android_log_transport_read, node)); \
(transp) = node_to_item((transp)->node.next, \
struct android_log_transport_read, node))

#define read_transport_for_each_safe(transp, n, transports) \
for ((transp) = node_to_item((transports)->next, \
struct android_log_transport_read, node), \
(n) = (transp)->node.next; \
((transp) != node_to_item((transports), \
struct android_log_transport_read, node)) && \
((transp) != \
node_to_item((n), struct android_log_transport_read, node)); \
(transp) = node_to_item((n), struct android_log_transport_read, node), \
(n) = (transp)->node.next)

LIBLOG_HIDDEN void __android_log_config_read();
LIBLOG_HIDDEN void __android_log_config_read_close();
Expand Down
146 changes: 73 additions & 73 deletions liblog/config_write.c
Original file line number Diff line number Diff line change
Expand Up @@ -14,105 +14,105 @@
* limitations under the License.
*/

#include <log/log_frontend.h>
#include <log/log_transport.h>

#include "config_write.h"
#include "logger.h"

LIBLOG_HIDDEN struct listnode __android_log_transport_write =
{ &__android_log_transport_write, &__android_log_transport_write };
LIBLOG_HIDDEN struct listnode __android_log_persist_write =
{ &__android_log_persist_write, &__android_log_persist_write};
LIBLOG_HIDDEN struct listnode __android_log_transport_write = {
&__android_log_transport_write, &__android_log_transport_write
};
LIBLOG_HIDDEN struct listnode __android_log_persist_write = {
&__android_log_persist_write, &__android_log_persist_write
};

static void __android_log_add_transport(
struct listnode *list, struct android_log_transport_write *transport) {
size_t i;
struct listnode* list, struct android_log_transport_write* transport) {
size_t i;

/* Try to keep one functioning transport for each log buffer id */
for (i = LOG_ID_MIN; i < LOG_ID_MAX; i++) {
struct android_log_transport_write *transp;
/* Try to keep one functioning transport for each log buffer id */
for (i = LOG_ID_MIN; i < LOG_ID_MAX; i++) {
struct android_log_transport_write* transp;

if (list_empty(list)) {
if (!transport->available || ((*transport->available)(i) >= 0)) {
list_add_tail(list, &transport->node);
return;
}
} else {
write_transport_for_each(transp, list) {
if (!transp->available) {
return;
}
if (((*transp->available)(i) < 0) &&
(!transport->available ||
((*transport->available)(i) >= 0))) {
list_add_tail(list, &transport->node);
return;
}
}
if (list_empty(list)) {
if (!transport->available || ((*transport->available)(i) >= 0)) {
list_add_tail(list, &transport->node);
return;
}
} else {
write_transport_for_each(transp, list) {
if (!transp->available) {
return;
}
if (((*transp->available)(i) < 0) &&
(!transport->available || ((*transport->available)(i) >= 0))) {
list_add_tail(list, &transport->node);
return;
}
}
}
}
}

LIBLOG_HIDDEN void __android_log_config_write() {
if (__android_log_frontend & LOGGER_LOCAL) {
extern struct android_log_transport_write localLoggerWrite;
if (__android_log_transport & LOGGER_LOCAL) {
extern struct android_log_transport_write localLoggerWrite;

__android_log_add_transport(&__android_log_transport_write,
&localLoggerWrite);
}
__android_log_add_transport(&__android_log_transport_write,
&localLoggerWrite);
}

if ((__android_log_frontend == LOGGER_DEFAULT) ||
(__android_log_frontend & LOGGER_LOGD)) {
if ((__android_log_transport == LOGGER_DEFAULT) ||
(__android_log_transport & LOGGER_LOGD)) {
#if (FAKE_LOG_DEVICE == 0)
extern struct android_log_transport_write logdLoggerWrite;
extern struct android_log_transport_write pmsgLoggerWrite;
extern struct android_log_transport_write logdLoggerWrite;
extern struct android_log_transport_write pmsgLoggerWrite;

__android_log_add_transport(&__android_log_transport_write,
&logdLoggerWrite);
__android_log_add_transport(&__android_log_persist_write,
&pmsgLoggerWrite);
__android_log_add_transport(&__android_log_transport_write,
&logdLoggerWrite);
__android_log_add_transport(&__android_log_persist_write, &pmsgLoggerWrite);
#else
extern struct android_log_transport_write fakeLoggerWrite;
extern struct android_log_transport_write fakeLoggerWrite;

__android_log_add_transport(&__android_log_transport_write,
&fakeLoggerWrite);
__android_log_add_transport(&__android_log_transport_write,
&fakeLoggerWrite);
#endif
}
}

if (__android_log_frontend & LOGGER_STDERR) {
extern struct android_log_transport_write stderrLoggerWrite;
if (__android_log_transport & LOGGER_STDERR) {
extern struct android_log_transport_write stderrLoggerWrite;

/*
* stderr logger should be primary if we can be the only one, or if
* already in the primary list. Otherwise land in the persist list.
* Remember we can be called here if we are already initialized.
*/
if (list_empty(&__android_log_transport_write)) {
__android_log_add_transport(&__android_log_transport_write,
&stderrLoggerWrite);
} else {
struct android_log_transport_write *transp;
write_transport_for_each(transp, &__android_log_transport_write) {
if (transp == &stderrLoggerWrite) {
return;
}
}
__android_log_add_transport(&__android_log_persist_write,
&stderrLoggerWrite);
/*
* stderr logger should be primary if we can be the only one, or if
* already in the primary list. Otherwise land in the persist list.
* Remember we can be called here if we are already initialized.
*/
if (list_empty(&__android_log_transport_write)) {
__android_log_add_transport(&__android_log_transport_write,
&stderrLoggerWrite);
} else {
struct android_log_transport_write* transp;
write_transport_for_each(transp, &__android_log_transport_write) {
if (transp == &stderrLoggerWrite) {
return;
}
}
__android_log_add_transport(&__android_log_persist_write,
&stderrLoggerWrite);
}
}
}

LIBLOG_HIDDEN void __android_log_config_write_close() {
struct android_log_transport_write *transport;
struct listnode *n;
struct android_log_transport_write* transport;
struct listnode* n;

write_transport_for_each_safe(transport, n, &__android_log_transport_write) {
transport->logMask = 0;
list_remove(&transport->node);
}
write_transport_for_each_safe(transport, n, &__android_log_persist_write) {
transport->logMask = 0;
list_remove(&transport->node);
}
write_transport_for_each_safe(transport, n, &__android_log_transport_write) {
transport->logMask = 0;
list_remove(&transport->node);
}
write_transport_for_each_safe(transport, n, &__android_log_persist_write) {
transport->logMask = 0;
list_remove(&transport->node);
}
}
Loading

0 comments on commit ce7ee08

Please sign in to comment.