summaryrefslogtreecommitdiff
path: root/arch/arm/plat-omap/include/syslink/nameserver_remotenotify.h
blob: cb9b6218930d1bc614d6326da3220369a4086e46 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
/*
 *  nameserver_remotenotify.h
 *
 *  The nameserver_remotenotify module provides functionality to get name
 *  value pair from a remote nameserver.
 *
 *  Copyright (C) 2008-2009 Texas Instruments, Inc.
 *
 *  This package is free software; you can redistribute it and/or modify
 *  it under the terms of the GNU General Public License version 2 as
 *  published by the Free Software Foundation.
 *
 *  THIS PACKAGE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR
 *  IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED
 *  WARRANTIES OF MERCHANTIBILITY AND FITNESS FOR A PARTICULAR
 *  PURPOSE.
 */

#ifndef _NAMESERVER_REMOTENOTIFY_H_
#define _NAMESERVER_REMOTENOTIFY_H_

#include <linux/types.h>

/*
 *  NAMESERVERREMOTENOTIFY_MODULEID
 *  Unique module ID
 */
#define NAMESERVERREMOTENOTIFY_MODULEID      (0x08FD)

/*
 *  Module configuration structure
 */
struct nameserver_remotenotify_config {
	u32 notify_event_id;
	/* Notify event number */
};

/*
  * Module configuration structure
 */
struct nameserver_remotenotify_params {
	void *shared_addr; /* Address of the shared memory */
	void *gatemp; /* Handle to the gatemp used for protecting the
			nameserver_remotenotify instance. Using the default
			value of NULL will result in the default gatemp being
			used for context protection */
};

/* Function to get the default configuration for the nameserver_remotenotify
 * module */
void nameserver_remotenotify_get_config(
				struct nameserver_remotenotify_config *cfg);

/* Function to setup the nameserver_remotenotify module */
int nameserver_remotenotify_setup(struct nameserver_remotenotify_config *cfg);

/* Function to destroy the nameserver_remotenotify module */
int nameserver_remotenotify_destroy(void);

/* Function to get the current configuration values */
void nameserver_remotenotify_params_init(
				struct nameserver_remotenotify_params *params);

/* Function to create the nameserver_remotenotify object */
void *nameserver_remotenotify_create(u16 remote_proc_id,
			const struct nameserver_remotenotify_params *params);

/* Function to delete the nameserver_remotenotify object */
int nameserver_remotenotify_delete(void **handle);

/* Function to get a name/value from remote nameserver */
int nameserver_remotenotify_get(void *handle,
				const char *instance_name, const char *name,
				void *value, u32 *value_len, void *reserved);

/* Get the shared memory requirements for the nameserver_remotenotify */
uint nameserver_remotenotify_shared_mem_req(
			const struct nameserver_remotenotify_params *params);

/* Create all the NameServerRemoteNotify drivers. */
int nameserver_remotenotify_start(void *shared_addr);

/* Attaches to remote processor */
int nameserver_remotenotify_attach(u16 remote_proc_id, void *shared_addr);

/* Detaches from remote processor */
int nameserver_remotenotify_detach(u16 remote_proc_id);


#endif /* _NAMESERVER_REMOTENOTIFY_H_ */