2011-12-22 15:19:25 +00:00
|
|
|
/*
|
|
|
|
* \brief plugin registry interface
|
|
|
|
* \author Christian Prochaska
|
|
|
|
* \date 2010-01-21
|
|
|
|
*
|
|
|
|
*/
|
|
|
|
|
|
|
|
/*
|
2013-01-10 20:44:47 +00:00
|
|
|
* Copyright (C) 2010-2013 Genode Labs GmbH
|
2011-12-22 15:19:25 +00:00
|
|
|
*
|
|
|
|
* This file is part of the Genode OS framework, which is distributed
|
|
|
|
* under the terms of the GNU General Public License version 2.
|
|
|
|
*/
|
|
|
|
|
|
|
|
#ifndef _LIBC_PLUGIN__PLUGIN_REGISTRY_H_
|
|
|
|
#define _LIBC_PLUGIN__PLUGIN_REGISTRY_H_
|
|
|
|
|
|
|
|
#include <util/list.h>
|
|
|
|
|
|
|
|
#include <libc-plugin/plugin.h>
|
|
|
|
|
|
|
|
namespace Libc {
|
|
|
|
|
|
|
|
class Plugin_registry : public List<Plugin>
|
|
|
|
{
|
|
|
|
public:
|
|
|
|
|
2012-10-08 12:44:31 +00:00
|
|
|
Plugin *get_plugin_for_execve(char const *filename, char *const argv[],
|
|
|
|
char *const envp[]);
|
2011-12-22 15:19:25 +00:00
|
|
|
Plugin *get_plugin_for_freeaddrinfo(struct addrinfo *res);
|
|
|
|
Plugin *get_plugin_for_getaddrinfo(const char *node, const char *service,
|
|
|
|
const struct addrinfo *hints,
|
|
|
|
struct addrinfo **res);
|
|
|
|
Plugin *get_plugin_for_mkdir(const char *path, mode_t mode);
|
|
|
|
Plugin *get_plugin_for_open(const char *pathname, int flags);
|
|
|
|
Plugin *get_plugin_for_pipe();
|
2012-10-08 12:44:31 +00:00
|
|
|
Plugin *get_plugin_for_readlink(const char *path, char *buf, size_t bufsiz);
|
2011-12-22 15:19:25 +00:00
|
|
|
Plugin *get_plugin_for_rename(const char *oldpath, const char *newpath);
|
2014-04-18 20:58:04 +00:00
|
|
|
Plugin *get_plugin_for_rmdir(const char *path);
|
2011-12-22 15:19:25 +00:00
|
|
|
Plugin *get_plugin_for_socket(int domain, int type, int protocol);
|
|
|
|
Plugin *get_plugin_for_stat(const char *path, struct stat *);
|
2012-10-08 12:44:31 +00:00
|
|
|
Plugin *get_plugin_for_symlink(const char *oldpath, const char *newpath);
|
2011-12-22 15:19:25 +00:00
|
|
|
Plugin *get_plugin_for_unlink(const char *path);
|
|
|
|
};
|
|
|
|
|
|
|
|
extern Plugin_registry *plugin_registry();
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
#endif /* _LIBC_PLUGIN__PLUGIN_REGISTRY_H_ */
|