| /* libminijail-private.h |
| * Copyright (c) 2011 The Chromium OS Authors. All rights reserved. |
| * Use of this source code is governed by a BSD-style license that can be |
| * found in the LICENSE file. |
| * |
| * Values shared between libminijailpreload and libminijail, but not visible to |
| * the outside world. |
| */ |
| |
| #ifndef LIBMINIJAIL_PRIVATE_H |
| #define LIBMINIJAIL_PRIVATE_H |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| /* Explicitly declare exported functions so that -fvisibility tricks |
| * can be used for testing and minimal symbol leakage occurs. |
| */ |
| #define API __attribute__ ((visibility("default"))) |
| |
| static const char *kFdEnvVar = "__MINIJAIL_FD"; |
| static const char *kLdPreloadEnvVar = "LD_PRELOAD"; |
| |
| struct minijail; |
| |
| /* minijail_size: returns the size (in bytes) of @j if marshalled |
| * @j jail to compute size of |
| * |
| * Returns 0 on error. |
| */ |
| extern size_t minijail_size(const struct minijail *j); |
| |
| /* minijail_marshal: serializes @j to @buf |
| * @j minijail to serialize |
| * @buf buffer to serialize to |
| * @size size of @buf |
| * |
| * Returns 0 on success. |
| * |
| * Writes |j| to |buf| such that it can be reparsed by the same |
| * library on the same architecture. This is meant to be used |
| * by minijail0.c and libminijailpreload.c. minijail flags that |
| * require minijail_run() will be excluded. |
| * |
| * The marshalled data is not robust to differences between the child |
| * and parent process (personality, etc). |
| */ |
| extern int minijail_marshal(const struct minijail *j, |
| char *buf, |
| size_t size); |
| |
| /* minijail_unmarshal: initializes @j from @serialized |
| * @j minijail to initialize |
| * @serialized serialized jail buffer |
| * @length length of buffer |
| * |
| * Returns 0 on success. |
| */ |
| extern int minijail_unmarshal(struct minijail *j, |
| char *serialized, |
| size_t length); |
| |
| /* minijail_from_fd: builds @j from @fd |
| * @j minijail to initialize |
| * @fd fd to initialize from |
| * |
| * Returns 0 on success. |
| */ |
| extern int minijail_from_fd(int fd, struct minijail *j); |
| |
| /* minijail_to_fd: sends @j over @fd |
| * @j minijail to send |
| * @fd fd to send over |
| * |
| * Returns 0 on success. |
| */ |
| extern int minijail_to_fd(struct minijail *j, int fd); |
| |
| /* minijail_preexec: strips @j of all options handled by minijail_enter() |
| * @j jail to strip |
| */ |
| extern void minijail_preexec(struct minijail *j); |
| |
| /* minijail_preenter: strips @j of all options handled by minijail_run() |
| * @j jail to strip |
| */ |
| extern void minijail_preenter(struct minijail *j); |
| |
| #ifdef __cplusplus |
| }; /* extern "C" */ |
| #endif |
| |
| #endif /* !LIBMINIJAIL_PRIVATE_H */ |