Blob Blame History Raw
#ifndef TOKSVC_LOG_IMPL_H
#define TOKSVC_LOG_IMPL_H

#include <psxtypes/psxtypes.h>
#include <ntapi/nt_tty.h>

#define TOKS_LOG_LEVEL(dctx,x)       \
	if (dctx->cctx->loglevel < x) \
		return

#define TOKS_LOG_CHILD_EXIT_STATUS(x)	(((x) & 0xff00) >> 8)
#define TOKS_LOG_CHILD_KILL_STATUS(x)	(((x) & 0x7f))

enum toks_log_entry_type {
	TOKS_LOG_ENTRY_SERVER_STATUS,
	TOKS_LOG_ENTRY_SERVER_INFO,
	TOKS_LOG_ENTRY_SERVER_ERROR,
	TOKS_LOG_ENTRY_CLIENT_STATUS,
	TOKS_LOG_ENTRY_CLIENT_INFO,
	TOKS_LOG_ENTRY_CLIENT_ERROR,
	TOKS_LOG_ENTRY_SUB_LEVEL_1,
	TOKS_LOG_ENTRY_SUB_LEVEL_2,
	TOKS_LOG_ENTRY_SUB_LEVEL_3,
	TOKS_LOG_ENTRY_SUB_LEVEL_4,
	TOKS_LOG_ENTRY_SUB_LEVEL_5,
	TOKS_LOG_ENTRY_SUB_LEVEL_6,
};

struct toks_daemon_ctx;

const char * toks_log_basename(const char * path);

void toks_log_header(
	const struct toks_driver_ctx *,
	enum toks_log_entry_type,
	const char *,
	...);

void toks_log_write(
	const struct toks_driver_ctx *,
	enum toks_log_entry_type,
	const char *,
	...);

void toks_log_get_process_name(
	void *, char *, size_t);

void toks_log_get_arbitrary_process_name(
	nt_cid *, char *, size_t);

void toks_log_lpc_request(
	struct toks_daemon_ctx *,
	const nt_tty_port_msg *);

void toks_log_lpc_reply(
	struct toks_daemon_ctx *,
	const nt_tty_port_msg *);

#endif