19#ifndef _COPPERPLATE_REGISTRY_H
20#define _COPPERPLATE_REGISTRY_H
25#include <boilerplate/list.h>
26#include <boilerplate/hash.h>
27#include <boilerplate/obstack.h>
31#define REGISTRY_SHARED 1
32#define REGISTRY_ANON 2
34#ifdef CONFIG_XENO_REGISTRY
36struct registry_operations {
37 int (*open)(
struct fsobj *fsobj,
void *priv);
38 int (*release)(
struct fsobj *fsobj,
void *priv);
39 ssize_t (*read)(
struct fsobj *fsobj,
40 char *buf,
size_t size, off_t offset,
42 ssize_t (*write)(
struct fsobj *fsobj,
43 const char *buf,
size_t size, off_t offset,
55 struct regfs_dir *dir;
56 struct timespec ctime;
57 struct timespec mtime;
58 const struct registry_operations *ops;
60 struct pvhashobj hobj;
67int registry_add_dir(
const char *fmt, ...);
69int registry_init_file(
struct fsobj *fsobj,
70 const struct registry_operations *ops,
73int registry_add_file(
struct fsobj *fsobj,
75 const char *fmt, ...);
77void registry_destroy_file(
struct fsobj *fsobj);
79void registry_touch_file(
struct fsobj *fsobj);
81int __registry_pkg_init(
const char *arg0,
85int registry_pkg_init(
const char *arg0,
88void registry_pkg_destroy(
void);
99struct registry_operations {
103int registry_add_dir(
const char *fmt, ...)
109void registry_init_file(
struct fsobj *fsobj,
110 const struct registry_operations *ops,
116int registry_add_file(
struct fsobj *fsobj,
118 const char *fmt, ...)
124void registry_destroy_file(
struct fsobj *fsobj)
129void registry_touch_file(
struct fsobj *fsobj)
134int __registry_pkg_init(
const char *arg0,
135 char *mountpt,
int flags)
141int registry_pkg_init(
const char *arg0,
148void registry_pkg_destroy(
void)