mirror of
https://github.com/genodelabs/genode.git
synced 2025-02-14 23:12:09 +00:00
base/os: remove deprecated APIs
This commit removes APIs that were previously marked as deprecated. This change has the following implications: - The use of the global 'env()' accessor is not possible anymore. - Boolean accessor methods are no longer prefixed with 'is_'. E.g., instead of 'is_valid()', use 'valid()'. - The last traces of 'Ram_session' are gone now. The 'Env::ram()' accessor returns the 'Ram_allocator' interface, which is a subset of the 'Pd_session' interface. - All connection constructors need the 'Env' as argument. - The 'Reporter' constructor needs an 'Env' argument now because the reporter creates a report connection. - The old overload 'Child_policy::resolve_session_request' that returned a 'Service' does not exist anymore. - The base/printf.h header has been removed, use base/log.h instead. - The old notion of 'Signal_dispatcher' is gone. Use 'Signal_handler'. - Transitional headers like os/server.h, cap_session/, volatile_object.h, os/attached*_dataspace.h, signal_rpc_dispatcher.h have been removed. - The distinction between 'Thread_state' and 'Thread_state_base' does not exist anymore. - The header cpu_thread/capability.h along with the type definition of 'Cpu_thread_capability' has been removed. Use the type 'Thread_capability' define in cpu_session/cpu_session.h instead. - Several XML utilities (i.e., at os/include/decorator) could be removed because their functionality is nowadays covered by util/xml_node.h. - The 'os/ram_session_guard.h' has been removed. Use 'Constrained_ram_allocator' provided by base/ram_allocator.h instead. Issue #1987
This commit is contained in:
parent
ffeb8e2af0
commit
5ed5fddb7c
@ -200,7 +200,7 @@ Genode::Pager_object &Platform_thread::pager()
|
|||||||
|
|
||||||
Thread_state Platform_thread::state()
|
Thread_state Platform_thread::state()
|
||||||
{
|
{
|
||||||
Thread_state_base bstate(*_kobj.kernel_object()->regs);
|
Thread_state bstate(*_kobj.kernel_object()->regs);
|
||||||
return Thread_state(bstate);
|
return Thread_state(bstate);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -133,9 +133,7 @@ class Genode::Platform_env : public Platform_env_base
|
|||||||
** Env_deprecated interface **
|
** Env_deprecated interface **
|
||||||
******************************/
|
******************************/
|
||||||
|
|
||||||
Parent *parent() override { return &_parent(); }
|
Parent *parent() override { return &_parent(); }
|
||||||
Allocator *heap() override { return &_heap; }
|
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__BASE__INTERNAL__PLATFORM_ENV_H_ */
|
#endif /* _INCLUDE__BASE__INTERNAL__PLATFORM_ENV_H_ */
|
||||||
|
@ -52,7 +52,7 @@ void Child::Initial_thread::start(addr_t) { }
|
|||||||
*/
|
*/
|
||||||
Child::Process::Loaded_executable::Loaded_executable(Type,
|
Child::Process::Loaded_executable::Loaded_executable(Type,
|
||||||
Dataspace_capability,
|
Dataspace_capability,
|
||||||
Ram_session &,
|
Ram_allocator &,
|
||||||
Region_map &,
|
Region_map &,
|
||||||
Region_map &,
|
Region_map &,
|
||||||
Parent_capability) { }
|
Parent_capability) { }
|
||||||
|
@ -164,12 +164,6 @@ struct Genode::Range_allocator : Allocator
|
|||||||
|
|
||||||
bool ok() const { return value == OK; }
|
bool ok() const { return value == OK; }
|
||||||
bool error() const { return !ok(); }
|
bool error() const { return !ok(); }
|
||||||
|
|
||||||
/*
|
|
||||||
* \deprecated use 'ok' and 'error' instead
|
|
||||||
*/
|
|
||||||
bool is_ok() const { return ok(); }
|
|
||||||
bool is_error() const { return error(); }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -338,7 +338,7 @@ class Genode::Allocator_avl_tpl : public Allocator_avl_base
|
|||||||
explicit Allocator_avl_tpl(Allocator *metadata_chunk_alloc) :
|
explicit Allocator_avl_tpl(Allocator *metadata_chunk_alloc) :
|
||||||
Allocator_avl_base(&_metadata, sizeof(Block)),
|
Allocator_avl_base(&_metadata, sizeof(Block)),
|
||||||
_metadata((metadata_chunk_alloc) ? metadata_chunk_alloc : this,
|
_metadata((metadata_chunk_alloc) ? metadata_chunk_alloc : this,
|
||||||
(Slab_block *)&_initial_md_block) { }
|
(Block *)&_initial_md_block) { }
|
||||||
|
|
||||||
~Allocator_avl_tpl() { _revert_allocations_and_ranges(); }
|
~Allocator_avl_tpl() { _revert_allocations_and_ranges(); }
|
||||||
|
|
||||||
|
@ -63,16 +63,6 @@ class Genode::Attached_dataspace : Noncopyable
|
|||||||
Attached_dataspace(Region_map &rm, Dataspace_capability ds)
|
Attached_dataspace(Region_map &rm, Dataspace_capability ds)
|
||||||
: _ds(_check(ds)), _rm(rm), _local_addr(_rm.attach(_ds)) { }
|
: _ds(_check(ds)), _rm(rm), _local_addr(_rm.attach(_ds)) { }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Region_map &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Attached_dataspace(Dataspace_capability ds) __attribute__((deprecated))
|
|
||||||
: _ds(_check(ds)), _rm(*env_deprecated()->rm_session()), _local_addr(_rm.attach(_ds)) { }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destructor
|
* Destructor
|
||||||
*/
|
*/
|
||||||
|
@ -31,16 +31,15 @@ class Genode::Attached_io_mem_dataspace
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
/*
|
Region_map &_env_rm;
|
||||||
* Noncopyable
|
Io_mem_connection _mmio;
|
||||||
*/
|
Io_mem_dataspace_capability _ds;
|
||||||
Attached_io_mem_dataspace(Attached_io_mem_dataspace const &);
|
Region_map::Local_addr _local_addr;
|
||||||
Attached_io_mem_dataspace &operator = (Attached_io_mem_dataspace const &);
|
|
||||||
|
|
||||||
Region_map &_env_rm;
|
static void *_with_sub_page_offset(void *local, addr_t io_base)
|
||||||
Io_mem_connection _mmio;
|
{
|
||||||
Io_mem_dataspace_capability _ds;
|
return (void *)((addr_t)local | (io_base & (addr_t)0xfff));
|
||||||
void *_local_addr;
|
}
|
||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
@ -65,30 +64,8 @@ class Genode::Attached_io_mem_dataspace
|
|||||||
_env_rm(env.rm()),
|
_env_rm(env.rm()),
|
||||||
_mmio(env, base, size, write_combined),
|
_mmio(env, base, size, write_combined),
|
||||||
_ds(_mmio.dataspace()),
|
_ds(_mmio.dataspace()),
|
||||||
_local_addr(env.rm().attach(_ds))
|
_local_addr(_with_sub_page_offset(env.rm().attach(_ds), base))
|
||||||
{
|
{ }
|
||||||
/* apply sub-page offset to virtual address */
|
|
||||||
_local_addr = (void *)((addr_t)_local_addr | (base & (addr_t)0xfff));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Attached_io_mem_dataspace(Genode::addr_t base, Genode::size_t size,
|
|
||||||
bool write_combined = false) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
_env_rm(*env_deprecated()->rm_session()),
|
|
||||||
_mmio(false, base, size, write_combined),
|
|
||||||
_ds(_mmio.dataspace()),
|
|
||||||
_local_addr(_env_rm.attach(_ds))
|
|
||||||
{
|
|
||||||
/* apply sub-page offset to virtual address */
|
|
||||||
_local_addr = (void *)((addr_t)_local_addr | (base & (addr_t)0xfff));
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destructor
|
* Destructor
|
||||||
|
@ -107,21 +107,6 @@ class Genode::Attached_ram_dataspace
|
|||||||
_alloc_and_attach();
|
_alloc_and_attach();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with the 'Ram_allocator &' and
|
|
||||||
* 'Region_map &' arguments instead.
|
|
||||||
*/
|
|
||||||
Attached_ram_dataspace(Ram_allocator *ram, size_t size,
|
|
||||||
Cache_attribute cached = CACHED) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
_size(size), _ram(ram), _rm(env_deprecated()->rm_session()), _cached(cached)
|
|
||||||
{
|
|
||||||
_alloc_and_attach();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destructor
|
* Destructor
|
||||||
*/
|
*/
|
||||||
|
@ -74,17 +74,6 @@ class Genode::Attached_rom_dataspace
|
|||||||
Attached_rom_dataspace(Env &env, char const *name)
|
Attached_rom_dataspace(Env &env, char const *name)
|
||||||
: _rm(env.rm()), _rom(env, name) { _try_attach(); }
|
: _rm(env.rm()), _rom(env, name) { _try_attach(); }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Attached_rom_dataspace(char const *name) __attribute__((deprecated))
|
|
||||||
: _rm(*env_deprecated()->rm_session()), _rom(false /* deprecated */, name)
|
|
||||||
{ _try_attach(); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return capability of the used dataspace
|
* Return capability of the used dataspace
|
||||||
*/
|
*/
|
||||||
@ -129,14 +118,6 @@ class Genode::Attached_rom_dataspace
|
|||||||
*/
|
*/
|
||||||
bool valid() const { return _ds.constructed(); }
|
bool valid() const { return _ds.constructed(); }
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true of content is present
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated use 'valid' instead
|
|
||||||
*/
|
|
||||||
bool is_valid() const { return valid(); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return dataspace content as XML node
|
* Return dataspace content as XML node
|
||||||
*
|
*
|
||||||
|
@ -26,7 +26,6 @@
|
|||||||
#include <cpu_session/connection.h>
|
#include <cpu_session/connection.h>
|
||||||
#include <log_session/connection.h>
|
#include <log_session/connection.h>
|
||||||
#include <rom_session/connection.h>
|
#include <rom_session/connection.h>
|
||||||
#include <ram_session/capability.h>
|
|
||||||
#include <parent/capability.h>
|
#include <parent/capability.h>
|
||||||
|
|
||||||
namespace Genode {
|
namespace Genode {
|
||||||
@ -66,20 +65,6 @@ struct Genode::Child_policy
|
|||||||
*/
|
*/
|
||||||
virtual Linker_name linker_name() const { return "ld.lib.so"; }
|
virtual Linker_name linker_name() const { return "ld.lib.so"; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Determine service to provide a session request
|
|
||||||
*
|
|
||||||
* \return service to be contacted for the new session
|
|
||||||
* \deprecated
|
|
||||||
*
|
|
||||||
* \throw Service_denied
|
|
||||||
*/
|
|
||||||
virtual Service &resolve_session_request(Service::Name const &,
|
|
||||||
Session_state::Args const &)
|
|
||||||
{
|
|
||||||
throw Service_denied();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Routing destination of a session request
|
* Routing destination of a session request
|
||||||
*/
|
*/
|
||||||
@ -98,11 +83,7 @@ struct Genode::Child_policy
|
|||||||
* \throw Service_denied
|
* \throw Service_denied
|
||||||
*/
|
*/
|
||||||
virtual Route resolve_session_request(Service::Name const &,
|
virtual Route resolve_session_request(Service::Name const &,
|
||||||
Session_label const &)
|
Session_label const &) = 0;
|
||||||
{
|
|
||||||
/* \deprecated make pure virtual once the old version is gone */
|
|
||||||
throw Service_denied();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Apply transformations to session arguments
|
* Apply transformations to session arguments
|
||||||
@ -336,9 +317,6 @@ class Genode::Child : protected Rpc_object<Parent>,
|
|||||||
|
|
||||||
typedef Session_state::Args Args;
|
typedef Session_state::Args Args;
|
||||||
|
|
||||||
static Child_policy::Route _resolve_session_request(Child_policy &,
|
|
||||||
Service::Name const &,
|
|
||||||
char const *);
|
|
||||||
/*
|
/*
|
||||||
* Members that are initialized not before the child's environment is
|
* Members that are initialized not before the child's environment is
|
||||||
* complete.
|
* complete.
|
||||||
@ -381,7 +359,7 @@ class Genode::Child : protected Rpc_object<Parent>,
|
|||||||
*/
|
*/
|
||||||
Loaded_executable(Type type,
|
Loaded_executable(Type type,
|
||||||
Dataspace_capability ldso_ds,
|
Dataspace_capability ldso_ds,
|
||||||
Ram_session &ram,
|
Ram_allocator &ram,
|
||||||
Region_map &local_rm,
|
Region_map &local_rm,
|
||||||
Region_map &remote_rm,
|
Region_map &remote_rm,
|
||||||
Parent_capability parent_cap);
|
Parent_capability parent_cap);
|
||||||
@ -512,7 +490,7 @@ class Genode::Child : protected Rpc_object<Parent>,
|
|||||||
/**
|
/**
|
||||||
* Service (Ram_transfer::Account) interface
|
* Service (Ram_transfer::Account) interface
|
||||||
*/
|
*/
|
||||||
void transfer(Ram_session_capability to, Ram_quota amount) override
|
void transfer(Pd_session_capability to, Ram_quota amount) override
|
||||||
{
|
{
|
||||||
Ram_transfer::Account &from = _service;
|
Ram_transfer::Account &from = _service;
|
||||||
from.transfer(to, amount);
|
from.transfer(to, amount);
|
||||||
@ -521,7 +499,7 @@ class Genode::Child : protected Rpc_object<Parent>,
|
|||||||
/**
|
/**
|
||||||
* Service (Ram_transfer::Account) interface
|
* Service (Ram_transfer::Account) interface
|
||||||
*/
|
*/
|
||||||
Ram_session_capability cap(Ram_quota) const override
|
Pd_session_capability cap(Ram_quota) const override
|
||||||
{
|
{
|
||||||
Ram_transfer::Account &to = _service;
|
Ram_transfer::Account &to = _service;
|
||||||
return to.cap(Ram_quota());
|
return to.cap(Ram_quota());
|
||||||
@ -596,9 +574,8 @@ class Genode::Child : protected Rpc_object<Parent>,
|
|||||||
|
|
||||||
try {
|
try {
|
||||||
Child_policy::Route const route =
|
Child_policy::Route const route =
|
||||||
_child._resolve_session_request(_child._policy,
|
_child._policy.resolve_session_request(_service_name(),
|
||||||
_service_name(),
|
label_from_args(_args.string()));
|
||||||
_args.string());
|
|
||||||
_env_service.construct(_child, route.service);
|
_env_service.construct(_child, route.service);
|
||||||
_connection.construct(*_env_service, _child._id_space, _client_id,
|
_connection.construct(*_env_service, _child._id_space, _client_id,
|
||||||
_args, _child._policy.filter_session_affinity(Affinity()),
|
_args, _child._policy.filter_session_affinity(Affinity()),
|
||||||
@ -772,16 +749,15 @@ class Genode::Child : protected Rpc_object<Parent>,
|
|||||||
return _effective_quota(quota, env_cap_quota());
|
return _effective_quota(quota, env_cap_quota());
|
||||||
}
|
}
|
||||||
|
|
||||||
Ram_session_capability ram_session_cap() const { return _pd.cap(); }
|
Pd_session_capability pd_session_cap() const { return _pd.cap(); }
|
||||||
Pd_session_capability pd_session_cap() const { return _pd.cap(); }
|
|
||||||
|
|
||||||
Parent_capability parent_cap() const { return cap(); }
|
Parent_capability parent_cap() const { return cap(); }
|
||||||
|
|
||||||
Ram_session &ram() { return _pd.session(); }
|
Ram_allocator &ram() { return _pd.session(); }
|
||||||
Ram_session const &ram() const { return _pd.session(); }
|
Ram_allocator const &ram() const { return _pd.session(); }
|
||||||
Cpu_session &cpu() { return _cpu.session(); }
|
Cpu_session &cpu() { return _cpu.session(); }
|
||||||
Pd_session &pd() { return _pd .session(); }
|
Pd_session &pd() { return _pd.session(); }
|
||||||
Pd_session const &pd() const { return _pd .session(); }
|
Pd_session const &pd() const { return _pd.session(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Request factory for creating session-state objects
|
* Request factory for creating session-state objects
|
||||||
|
@ -131,15 +131,6 @@ class Genode::Connection : public Connection_base
|
|||||||
Connection_base(env), _cap(_request_cap())
|
Connection_base(env), _cap(_request_cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(Capability<SESSION_TYPE>) : _cap(_request_cap()) { }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Destructor
|
* Destructor
|
||||||
*/
|
*/
|
||||||
@ -175,37 +166,6 @@ class Genode::Connection : public Connection_base
|
|||||||
_session(parent, affinity, format_args, list);
|
_session(parent, affinity, format_args, list);
|
||||||
return Capability<SESSION_TYPE>();
|
return Capability<SESSION_TYPE>();
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Shortcut for env()->parent()->session()
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated to be removed along with Genode::env()
|
|
||||||
*/
|
|
||||||
Capability<SESSION_TYPE> session(const char *format_args, ...)
|
|
||||||
{
|
|
||||||
va_list list;
|
|
||||||
va_start(list, format_args);
|
|
||||||
|
|
||||||
_session(*env_deprecated()->parent(), Affinity(), format_args, list);
|
|
||||||
return Capability<SESSION_TYPE>();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Shortcut for env()->parent()->session()
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated to be removed along with Genode::env()
|
|
||||||
*/
|
|
||||||
Capability<SESSION_TYPE> session(Affinity const &affinity,
|
|
||||||
char const *format_args, ...)
|
|
||||||
{
|
|
||||||
va_list list;
|
|
||||||
va_start(list, format_args);
|
|
||||||
|
|
||||||
_session(affinity, format_args, list);
|
|
||||||
return Capability<SESSION_TYPE>();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__BASE__CONNECTION_H_ */
|
#endif /* _INCLUDE__BASE__CONNECTION_H_ */
|
||||||
|
@ -16,14 +16,8 @@
|
|||||||
|
|
||||||
#include <parent/parent.h>
|
#include <parent/parent.h>
|
||||||
#include <base/entrypoint.h>
|
#include <base/entrypoint.h>
|
||||||
#include <ram_session/capability.h>
|
|
||||||
#include <cpu_session/capability.h>
|
#include <cpu_session/capability.h>
|
||||||
#include <pd_session/capability.h>
|
#include <pd_session/capability.h>
|
||||||
#include <rm_session/rm_session.h>
|
|
||||||
|
|
||||||
/* maintain compatibility to deprecated API */
|
|
||||||
#include <deprecated/env.h>
|
|
||||||
|
|
||||||
|
|
||||||
namespace Genode { struct Env; }
|
namespace Genode { struct Env; }
|
||||||
|
|
||||||
@ -32,14 +26,6 @@ struct Genode::Env : Interface
|
|||||||
{
|
{
|
||||||
virtual Parent &parent() = 0;
|
virtual Parent &parent() = 0;
|
||||||
|
|
||||||
/**
|
|
||||||
* RAM allocator of the component
|
|
||||||
*
|
|
||||||
* The RAM allocator is backed with the RAM budget of the component's PD
|
|
||||||
* session. This budget can be used to allocate RAM dataspaces.
|
|
||||||
*/
|
|
||||||
virtual Ram_session &ram() { return pd(); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CPU session of the component
|
* CPU session of the component
|
||||||
*
|
*
|
||||||
@ -57,19 +43,16 @@ struct Genode::Env : Interface
|
|||||||
*/
|
*/
|
||||||
virtual Pd_session &pd() = 0;
|
virtual Pd_session &pd() = 0;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Memory allocator
|
||||||
|
*/
|
||||||
|
Ram_allocator &ram() { return pd(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Entrypoint for handling RPC requests and signals
|
* Entrypoint for handling RPC requests and signals
|
||||||
*/
|
*/
|
||||||
virtual Entrypoint &ep() = 0;
|
virtual Entrypoint &ep() = 0;
|
||||||
|
|
||||||
/**
|
|
||||||
* Deprecated
|
|
||||||
*
|
|
||||||
* \deprecated the RAM session has become part of the PD session
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
virtual Ram_session_capability ram_session_cap() { return pd_session_cap(); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return the CPU-session capability of the component
|
* Return the CPU-session capability of the component
|
||||||
*/
|
*/
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
#include <base/lock.h>
|
#include <base/lock.h>
|
||||||
|
|
||||||
namespace Genode {
|
namespace Genode {
|
||||||
|
|
||||||
class Heap;
|
class Heap;
|
||||||
class Sliced_heap;
|
class Sliced_heap;
|
||||||
}
|
}
|
||||||
@ -196,15 +196,6 @@ class Genode::Sliced_heap : public Allocator
|
|||||||
*/
|
*/
|
||||||
static constexpr size_t meta_data_size() { return sizeof(Block); }
|
static constexpr size_t meta_data_size() { return sizeof(Block); }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \deprecated Use the other constructor that takes reference
|
|
||||||
* arguments
|
|
||||||
*/
|
|
||||||
Sliced_heap(Ram_allocator *ram_alloc, Region_map *region_map)
|
|
||||||
: Sliced_heap(*ram_alloc, *region_map) { }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
|
@ -1,123 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief Native capability template.
|
|
||||||
* \author Stefan Kalkowski
|
|
||||||
* \date 2011-03-07
|
|
||||||
*
|
|
||||||
* This file is a generic variant of the Native_capability, which is
|
|
||||||
* suitable many platforms such as Fiasco, Pistachio, OKL4, Linux,
|
|
||||||
* and some more.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2012-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__BASE__NATIVE_CAPABILITY_TPL_H_
|
|
||||||
#define _INCLUDE__BASE__NATIVE_CAPABILITY_TPL_H_
|
|
||||||
|
|
||||||
namespace Genode { template <typename> class Native_capability_tpl; }
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Generic parts of the platform-specific 'Native_capability'
|
|
||||||
*
|
|
||||||
* \param POLICY policy class that provides the type used as capability
|
|
||||||
* destination and functions for checking the validity of
|
|
||||||
* the platform-specific destination type and for
|
|
||||||
* invalid destinations.
|
|
||||||
*
|
|
||||||
* The struct passed as 'POLICY' argument must have the following
|
|
||||||
* interface:
|
|
||||||
*
|
|
||||||
* ! typedef Dst;
|
|
||||||
* ! static bool valid(Dst dst);
|
|
||||||
* ! static Dst invalid();
|
|
||||||
*
|
|
||||||
* The 'Dst' type is the platform-specific destination type (e.g., the ID
|
|
||||||
* of the destination thread targeted by the capability). The 'valid'
|
|
||||||
* method returns true if the specified destination is valid. The
|
|
||||||
* 'invalid' method produces an invalid destination.
|
|
||||||
*/
|
|
||||||
template <typename POLICY>
|
|
||||||
class Genode::Native_capability_tpl
|
|
||||||
{
|
|
||||||
public:
|
|
||||||
|
|
||||||
typedef typename POLICY::Dst Dst;
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Compound object used to copy raw capability members
|
|
||||||
*
|
|
||||||
* This type is a utility solely used to communicate the
|
|
||||||
* information about the parent capability from the parent to the
|
|
||||||
* new process.
|
|
||||||
*/
|
|
||||||
struct Raw { Dst dst; long local_name; };
|
|
||||||
|
|
||||||
private:
|
|
||||||
|
|
||||||
Dst _dst;
|
|
||||||
long _local_name;
|
|
||||||
|
|
||||||
protected:
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor for a local capability
|
|
||||||
*
|
|
||||||
* A local capability just encapsulates a pointer to some
|
|
||||||
* local object. This constructor is only used by a factory
|
|
||||||
* method for local-capabilities in the generic Capability
|
|
||||||
* class.
|
|
||||||
*
|
|
||||||
* \param ptr address of the local object
|
|
||||||
*/
|
|
||||||
Native_capability_tpl(void* ptr)
|
|
||||||
: _dst(POLICY::invalid()), _local_name((long)ptr) { }
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor for an invalid capability
|
|
||||||
*/
|
|
||||||
Native_capability_tpl() : _dst(POLICY::invalid()), _local_name(0) { }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Publicly available constructor
|
|
||||||
*
|
|
||||||
* \param tid kernel-specific thread id
|
|
||||||
* \param local_name ID used as key to lookup the 'Rpc_object'
|
|
||||||
* that corresponds to the capability.
|
|
||||||
*/
|
|
||||||
Native_capability_tpl(Dst tid, long local_name)
|
|
||||||
: _dst(tid), _local_name(local_name) { }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true when the capability is valid
|
|
||||||
*/
|
|
||||||
bool valid() const { return POLICY::valid(_dst); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return ID used to lookup the 'Rpc_object' by its capability
|
|
||||||
*/
|
|
||||||
long local_name() const { return _local_name; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return pointer to object referenced by a local-capability
|
|
||||||
*/
|
|
||||||
void* local() const { return (void*)_local_name; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return capability destination
|
|
||||||
*/
|
|
||||||
Dst dst() const { return _dst; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return raw data representation of the capability
|
|
||||||
*/
|
|
||||||
Raw raw() const { return { _dst, _local_name }; }
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__BASE__NATIVE_CAPABILITY_TPL_H_ */
|
|
@ -1,90 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief Interface of the printf back end
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2006-04-08
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2006-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__BASE__PRINTF_H_
|
|
||||||
#define _INCLUDE__BASE__PRINTF_H_
|
|
||||||
|
|
||||||
#include <stdarg.h>
|
|
||||||
|
|
||||||
namespace Genode {
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Output format string to LOG session
|
|
||||||
*/
|
|
||||||
void printf(const char *format, ...) __attribute__((format(printf, 1, 2)));
|
|
||||||
|
|
||||||
void vprintf(const char *format, va_list) __attribute__((format(printf, 1, 0)));
|
|
||||||
}
|
|
||||||
|
|
||||||
#define ESC_LOG "\033[33m"
|
|
||||||
#define ESC_DBG "\033[33m"
|
|
||||||
#define ESC_INF "\033[32m"
|
|
||||||
#define ESC_WRN "\033[34m"
|
|
||||||
#define ESC_ERR "\033[31m"
|
|
||||||
#define ESC_END "\033[0m"
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Remove colored output from release version
|
|
||||||
*/
|
|
||||||
#ifdef GENODE_RELEASE
|
|
||||||
#undef ESC_LOG
|
|
||||||
#undef ESC_DBG
|
|
||||||
#undef ESC_INF
|
|
||||||
#undef ESC_WRN
|
|
||||||
#undef ESC_ERR
|
|
||||||
#undef ESC_END
|
|
||||||
#define ESC_LOG
|
|
||||||
#define ESC_DBG
|
|
||||||
#define ESC_INF
|
|
||||||
#define ESC_WRN
|
|
||||||
#define ESC_ERR
|
|
||||||
#define ESC_END
|
|
||||||
#endif /* GENODE_RELEASE */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Suppress debug messages in release version
|
|
||||||
*/
|
|
||||||
#ifdef GENODE_RELEASE
|
|
||||||
#define DO_PWRN false
|
|
||||||
#else
|
|
||||||
#define DO_PWRN true
|
|
||||||
#endif /* GENODE_RELEASE */
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Print log message
|
|
||||||
*/
|
|
||||||
#define PLOG(fmt, ...) \
|
|
||||||
Genode::printf(ESC_LOG fmt ESC_END "\n", ##__VA_ARGS__ )
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Print status-information message
|
|
||||||
*/
|
|
||||||
#define PINF(fmt, ...) \
|
|
||||||
Genode::printf(ESC_INF fmt ESC_END "\n", ##__VA_ARGS__ )
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Print warning message
|
|
||||||
*/
|
|
||||||
#define PWRN(fmt, ...) \
|
|
||||||
do { \
|
|
||||||
if (DO_PWRN) \
|
|
||||||
Genode::printf(ESC_WRN fmt ESC_END "\n", ##__VA_ARGS__ ); \
|
|
||||||
} while (0)
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Print error message
|
|
||||||
*/
|
|
||||||
#define PERR(fmt, ...) \
|
|
||||||
Genode::printf(ESC_ERR fmt ESC_END "\n", ##__VA_ARGS__ )
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__BASE__PRINTF_H_ */
|
|
@ -15,15 +15,14 @@
|
|||||||
#define _INCLUDE__BASE__QUOTA_TRANSFER_H_
|
#define _INCLUDE__BASE__QUOTA_TRANSFER_H_
|
||||||
|
|
||||||
#include <base/capability.h>
|
#include <base/capability.h>
|
||||||
#include <ram_session/ram_session.h>
|
|
||||||
#include <pd_session/pd_session.h>
|
#include <pd_session/pd_session.h>
|
||||||
|
|
||||||
namespace Genode {
|
namespace Genode {
|
||||||
|
|
||||||
template <typename SESSION, typename UNIT> class Quota_transfer;
|
template <typename SESSION, typename UNIT> class Quota_transfer;
|
||||||
|
|
||||||
typedef Quota_transfer<Ram_session, Ram_quota> Ram_transfer;
|
typedef Quota_transfer<Pd_session, Ram_quota> Ram_transfer;
|
||||||
typedef Quota_transfer<Pd_session, Cap_quota> Cap_transfer;
|
typedef Quota_transfer<Pd_session, Cap_quota> Cap_transfer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -110,14 +110,6 @@ class Genode::Rpc_in_buffer : public Rpc_in_buffer_base
|
|||||||
bool valid_string() const {
|
bool valid_string() const {
|
||||||
return (_size <= MAX_SIZE) && (_size > 0) && (_base[_size - 1] == '\0'); }
|
return (_size <= MAX_SIZE) && (_size > 0) && (_base[_size - 1] == '\0'); }
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if buffer contains a valid null-terminated string
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated use valid_string instead
|
|
||||||
*/
|
|
||||||
bool is_valid_string() const { return valid_string(); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return buffer content as null-terminated string
|
* Return buffer content as null-terminated string
|
||||||
*
|
*
|
||||||
|
@ -198,13 +198,6 @@ class Genode::Rpc_client : public RPC_INTERFACE
|
|||||||
return _cap.template call<IF>(args...);
|
return _cap.template call<IF>(args...);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return RPC capablity for client object
|
|
||||||
*
|
|
||||||
* \deprecated use 'rpc_cap' accessor instead
|
|
||||||
*/
|
|
||||||
operator Capability<RPC_INTERFACE>() const { return _cap; }
|
|
||||||
|
|
||||||
Capability<RPC_INTERFACE> rpc_cap() const { return _cap; }
|
Capability<RPC_INTERFACE> rpc_cap() const { return _cap; }
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -226,7 +226,6 @@ class Genode::Local_service : public Service
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@ -237,10 +236,6 @@ class Genode::Parent_service : public Service
|
|||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
|
|
||||||
/*
|
|
||||||
* \deprecated
|
|
||||||
*/
|
|
||||||
Env &_env_deprecated();
|
|
||||||
Env &_env;
|
Env &_env;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
@ -251,14 +246,6 @@ class Genode::Parent_service : public Service
|
|||||||
Parent_service(Env &env, Service::Name const &name)
|
Parent_service(Env &env, Service::Name const &name)
|
||||||
: Service(name), _env(env) { }
|
: Service(name), _env(env) { }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \deprecated
|
|
||||||
*/
|
|
||||||
Parent_service(Service::Name const &name)
|
|
||||||
: Service(name), _env(_env_deprecated()) { }
|
|
||||||
|
|
||||||
void initiate_request(Session_state &session) override
|
void initiate_request(Session_state &session) override
|
||||||
{
|
{
|
||||||
switch (session.phase) {
|
switch (session.phase) {
|
||||||
@ -430,7 +417,7 @@ class Genode::Child_service : public Async_service
|
|||||||
/**
|
/**
|
||||||
* Ram_transfer::Account interface
|
* Ram_transfer::Account interface
|
||||||
*/
|
*/
|
||||||
void transfer(Ram_session_capability to, Ram_quota amount) override
|
void transfer(Pd_session_capability to, Ram_quota amount) override
|
||||||
{
|
{
|
||||||
if (to.valid()) _pd.transfer_quota(to, amount);
|
if (to.valid()) _pd.transfer_quota(to, amount);
|
||||||
}
|
}
|
||||||
@ -438,7 +425,7 @@ class Genode::Child_service : public Async_service
|
|||||||
/**
|
/**
|
||||||
* Ram_transfer::Account interface
|
* Ram_transfer::Account interface
|
||||||
*/
|
*/
|
||||||
Pd_session_capability cap(Ram_quota) const override { return _pd; }
|
Pd_session_capability cap(Ram_quota) const override { return _pd.rpc_cap(); }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Cap_transfer::Account interface
|
* Cap_transfer::Account interface
|
||||||
@ -451,7 +438,7 @@ class Genode::Child_service : public Async_service
|
|||||||
/**
|
/**
|
||||||
* Cap_transfer::Account interface
|
* Cap_transfer::Account interface
|
||||||
*/
|
*/
|
||||||
Pd_session_capability cap(Cap_quota) const override { return _pd; }
|
Pd_session_capability cap(Cap_quota) const override { return _pd.rpc_cap(); }
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__BASE__SERVICE_H_ */
|
#endif /* _INCLUDE__BASE__SERVICE_H_ */
|
||||||
|
@ -143,7 +143,7 @@ class Genode::Session_state : public Parent::Client, public Parent::Server
|
|||||||
|
|
||||||
~Session_state()
|
~Session_state()
|
||||||
{
|
{
|
||||||
if (id_at_parent.is_constructed())
|
if (id_at_parent.constructed())
|
||||||
error("dangling session in parent-side ID space: ", *this);
|
error("dangling session in parent-side ID space: ", *this);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -38,8 +38,6 @@ namespace Genode {
|
|||||||
class Signal;
|
class Signal;
|
||||||
class Signal_dispatcher_base;
|
class Signal_dispatcher_base;
|
||||||
|
|
||||||
template <typename> class Signal_dispatcher;
|
|
||||||
template <typename> class Io_signal_dispatcher;
|
|
||||||
template <typename, typename> class Signal_handler;
|
template <typename, typename> class Signal_handler;
|
||||||
template <typename, typename> class Io_signal_handler;
|
template <typename, typename> class Io_signal_handler;
|
||||||
|
|
||||||
@ -151,13 +149,11 @@ class Genode::Signal_transmitter
|
|||||||
*/
|
*/
|
||||||
void context(Signal_context_capability context);
|
void context(Signal_context_capability context);
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return signal context
|
* Return signal context
|
||||||
*/
|
*/
|
||||||
Signal_context_capability context();
|
Signal_context_capability context();
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Trigger signal submission to context
|
* Trigger signal submission to context
|
||||||
*
|
*
|
||||||
@ -258,18 +254,6 @@ class Genode::Signal_context : Interface, Noncopyable
|
|||||||
|
|
||||||
List_element<Signal_context> *deferred_le() { return &_deferred_le; }
|
List_element<Signal_context> *deferred_le() { return &_deferred_le; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Local signal submission (DEPRECATED)
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*
|
|
||||||
* Trigger local signal submission (within the same address space), the
|
|
||||||
* context has to be bound to a sginal receiver beforehand.
|
|
||||||
*
|
|
||||||
* \param num number of pending signals
|
|
||||||
*/
|
|
||||||
void submit(unsigned num);
|
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* Signal contexts are never invoked but only used as arguments for
|
* Signal contexts are never invoked but only used as arguments for
|
||||||
* 'Signal_session' methods. Hence, there exists a capability
|
* 'Signal_session' methods. Hence, there exists a capability
|
||||||
@ -453,67 +437,6 @@ struct Genode::Signal_dispatcher_base : Signal_context
|
|||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Adapter for directing signals to object methods
|
|
||||||
*
|
|
||||||
* This utility associates object methods with signals. It is intended to
|
|
||||||
* be used as a member variable of the class that handles incoming signals
|
|
||||||
* of a certain type. The constructor takes a pointer-to-member to the
|
|
||||||
* signal handling method as argument. If a signal is received at the
|
|
||||||
* common signal reception code, this method will be invoked by calling
|
|
||||||
* 'Signal_dispatcher_base::dispatch'.
|
|
||||||
*
|
|
||||||
* \param T type of signal-handling class
|
|
||||||
*/
|
|
||||||
template <typename T>
|
|
||||||
class Genode::Signal_dispatcher : public Signal_dispatcher_base
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
|
|
||||||
Signal_context_capability _cap;
|
|
||||||
T &obj;
|
|
||||||
void (T::*member) (unsigned);
|
|
||||||
Signal_receiver &sig_rec;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \param sig_rec signal receiver to associate the signal
|
|
||||||
* handler with
|
|
||||||
* \param obj,member object and method to call when
|
|
||||||
* the signal occurs
|
|
||||||
*/
|
|
||||||
Signal_dispatcher(Signal_receiver &sig_rec,
|
|
||||||
T &obj, void (T::*member)(unsigned))
|
|
||||||
:
|
|
||||||
_cap(sig_rec.manage(this)),
|
|
||||||
obj(obj), member(member),
|
|
||||||
sig_rec(sig_rec)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
~Signal_dispatcher() { sig_rec.dissolve(this); }
|
|
||||||
|
|
||||||
void dispatch(unsigned num) override { (obj.*member)(num); }
|
|
||||||
|
|
||||||
operator Capability<Signal_context>() const { return _cap; }
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Signal dispatcher for I/O-level signals
|
|
||||||
*/
|
|
||||||
template <typename T>
|
|
||||||
struct Genode::Io_signal_dispatcher : Signal_dispatcher<T>
|
|
||||||
{
|
|
||||||
Io_signal_dispatcher(Signal_receiver &sig_rec,
|
|
||||||
T &obj, void (T::*member)(unsigned))
|
|
||||||
: Signal_dispatcher<T>(sig_rec, obj, member)
|
|
||||||
{ Signal_context::_level = Signal_context::Level::Io; }
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Signal dispatcher for handling signals by an object method
|
* Signal dispatcher for handling signals by an object method
|
||||||
*
|
*
|
||||||
|
@ -19,17 +19,7 @@
|
|||||||
|
|
||||||
namespace Genode { class Slab; }
|
namespace Genode { class Slab; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Transitional type definition, for API compatibility only
|
|
||||||
*
|
|
||||||
* \deprecated To be removed once all Slab users are updated.
|
|
||||||
*/
|
|
||||||
namespace Genode { typedef void Slab_block; }
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Slab allocator
|
|
||||||
*/
|
|
||||||
class Genode::Slab : public Allocator
|
class Genode::Slab : public Allocator
|
||||||
{
|
{
|
||||||
private:
|
private:
|
||||||
@ -52,7 +42,7 @@ class Genode::Slab : public Allocator
|
|||||||
*/
|
*/
|
||||||
Block *_curr_sb = nullptr;
|
Block *_curr_sb = nullptr;
|
||||||
|
|
||||||
Allocator *_backing_store;
|
Allocator *_backing_store;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Allocate and initialize new slab block
|
* Allocate and initialize new slab block
|
||||||
|
@ -20,7 +20,6 @@
|
|||||||
#include <base/trace/logger.h>
|
#include <base/trace/logger.h>
|
||||||
#include <cpu/consts.h>
|
#include <cpu/consts.h>
|
||||||
#include <util/string.h>
|
#include <util/string.h>
|
||||||
#include <ram_session/ram_session.h> /* for 'Ram_dataspace_capability' type */
|
|
||||||
#include <cpu_session/cpu_session.h> /* for 'Thread_capability' type */
|
#include <cpu_session/cpu_session.h> /* for 'Thread_capability' type */
|
||||||
|
|
||||||
namespace Genode {
|
namespace Genode {
|
||||||
|
@ -2,9 +2,6 @@
|
|||||||
* \brief Thread state
|
* \brief Thread state
|
||||||
* \author Norman Feske
|
* \author Norman Feske
|
||||||
* \date 2007-07-30
|
* \date 2007-07-30
|
||||||
*
|
|
||||||
* This file provides a generic implementation of the 'Thread state' class.
|
|
||||||
* Base platforms can provide their own version of this file.
|
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/*
|
/*
|
||||||
@ -17,14 +14,17 @@
|
|||||||
#ifndef _INCLUDE__BASE__THREAD_STATE_H_
|
#ifndef _INCLUDE__BASE__THREAD_STATE_H_
|
||||||
#define _INCLUDE__BASE__THREAD_STATE_H_
|
#define _INCLUDE__BASE__THREAD_STATE_H_
|
||||||
|
|
||||||
#include <base/thread_state_base.h>
|
#include <cpu/cpu_state.h>
|
||||||
|
|
||||||
namespace Genode { struct Thread_state; }
|
namespace Genode { struct Thread_state; }
|
||||||
|
|
||||||
struct Genode::Thread_state : Thread_state_base
|
struct Genode::Thread_state : Cpu_state
|
||||||
{
|
{
|
||||||
Thread_state() {}
|
bool unresolved_page_fault = false;
|
||||||
Thread_state(Thread_state_base &base) : Thread_state_base(base) {}
|
bool exception = false;
|
||||||
|
|
||||||
|
Thread_state() { };
|
||||||
|
Thread_state(Cpu_state &c) : Cpu_state(c) { };
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__BASE__THREAD_STATE_H_ */
|
#endif /* _INCLUDE__BASE__THREAD_STATE_H_ */
|
||||||
|
@ -1,32 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief Thread state base class
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2007-07-30
|
|
||||||
*
|
|
||||||
* This file contains the generic part of the thread state.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2007-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__BASE__THREAD_STATE_BASE_H_
|
|
||||||
#define _INCLUDE__BASE__THREAD_STATE_BASE_H_
|
|
||||||
|
|
||||||
#include <cpu/cpu_state.h>
|
|
||||||
|
|
||||||
namespace Genode { struct Thread_state_base; }
|
|
||||||
|
|
||||||
struct Genode::Thread_state_base : Cpu_state
|
|
||||||
{
|
|
||||||
bool unresolved_page_fault = false;
|
|
||||||
bool exception = false;
|
|
||||||
|
|
||||||
Thread_state_base() { };
|
|
||||||
Thread_state_base(Cpu_state &c) : Cpu_state(c) { };
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__BASE__THREAD_STATE_BASE_H_ */
|
|
@ -155,11 +155,6 @@ class Genode::Trace::Buffer
|
|||||||
* +--------------------------+------------+-------------+---+---------------------+
|
* +--------------------------+------------+-------------+---+---------------------+
|
||||||
*/
|
*/
|
||||||
bool last() const { return _entry == 0; }
|
bool last() const { return _entry == 0; }
|
||||||
|
|
||||||
/*
|
|
||||||
* \deprecated use 'last' instead
|
|
||||||
*/
|
|
||||||
bool is_last() const { return last(); }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
Entry first() const
|
Entry first() const
|
||||||
|
@ -351,14 +351,6 @@ struct Genode::Locked_ptr : Genode::Locked_ptr_base
|
|||||||
* the attempt will result in a null-pointer access.
|
* the attempt will result in a null-pointer access.
|
||||||
*/
|
*/
|
||||||
bool valid() const { return curr != nullptr; }
|
bool valid() const { return curr != nullptr; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Returns true if the locked pointer is valid
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated use 'valid' instead
|
|
||||||
*/
|
|
||||||
bool is_valid() const { return valid(); }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief CAP-session interface
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2006-06-23
|
|
||||||
*
|
|
||||||
* \deprecated
|
|
||||||
*
|
|
||||||
* This header is scheduled for removal. It exists for API compatiblity only.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef INCLUDED_BY_ENTRYPOINT_CC
|
|
||||||
#warning cap_session/cap_session.h is deprecated
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2006-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__CAP_SESSION__CAP_SESSION_H_
|
|
||||||
#define _INCLUDE__CAP_SESSION__CAP_SESSION_H_
|
|
||||||
|
|
||||||
#include <pd_session/pd_session.h>
|
|
||||||
|
|
||||||
namespace Genode { typedef Pd_session Cap_session; }
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__CAP_SESSION__CAP_SESSION_H_ */
|
|
@ -1,47 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief Connection to CAP service
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2008-08-22
|
|
||||||
*
|
|
||||||
* \deprecated
|
|
||||||
*
|
|
||||||
* This header is scheduled for removal. It exists for API compatiblity only.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2008-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__CAP_SESSION__CONNECTION_H_
|
|
||||||
#define _INCLUDE__CAP_SESSION__CONNECTION_H_
|
|
||||||
|
|
||||||
#include <cap_session/cap_session.h>
|
|
||||||
#include <pd_session/client.h>
|
|
||||||
#include <base/env.h>
|
|
||||||
|
|
||||||
namespace Genode { struct Cap_connection; }
|
|
||||||
|
|
||||||
#ifndef INCLUDED_BY_ENTRYPOINT_CC
|
|
||||||
#warning cap_session.h is deprecated
|
|
||||||
#endif
|
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* There are no CAP connections anymore. The only situation where CAP
|
|
||||||
* connections were created was inside old-fashioned servers that used
|
|
||||||
* to create an 'Rpc_entrypoint' manually. The 'Rpc_entrypoint' requires
|
|
||||||
* a CAP session as constructor argument. We accommodate this use case
|
|
||||||
* by allocating RPC capabilities from the server's protection domain.
|
|
||||||
*
|
|
||||||
* Modern components no longer create 'Rpc_entrypoint' objects directly
|
|
||||||
* but instead use the new 'Entrypoint' interface.
|
|
||||||
*/
|
|
||||||
struct Genode::Cap_connection : Pd_session_client
|
|
||||||
{
|
|
||||||
Cap_connection() : Pd_session_client(env_deprecated()->pd_session_cap()) { }
|
|
||||||
} __attribute__((deprecated));
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__CAP_SESSION__CONNECTION_H_ */
|
|
@ -24,19 +24,6 @@ struct Genode::Cpu_connection : Connection<Cpu_session>, Cpu_session_client
|
|||||||
{
|
{
|
||||||
enum { RAM_QUOTA = 36*1024 };
|
enum { RAM_QUOTA = 36*1024 };
|
||||||
|
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Capability<Cpu_session> _session(Parent &parent, char const *label,
|
|
||||||
long priority, Affinity const &affinity)
|
|
||||||
{
|
|
||||||
return session(parent, affinity,
|
|
||||||
"priority=0x%lx, ram_quota=128K, cap_quota=%u, label=\"%s\"",
|
|
||||||
priority, CAP_QUOTA, label);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -47,21 +34,11 @@ struct Genode::Cpu_connection : Connection<Cpu_session>, Cpu_session_client
|
|||||||
Cpu_connection(Env &env, const char *label = "", long priority = DEFAULT_PRIORITY,
|
Cpu_connection(Env &env, const char *label = "", long priority = DEFAULT_PRIORITY,
|
||||||
Affinity const &affinity = Affinity())
|
Affinity const &affinity = Affinity())
|
||||||
:
|
:
|
||||||
Connection<Cpu_session>(env, _session(env.parent(), label, priority, affinity)),
|
Connection<Cpu_session>(env,
|
||||||
Cpu_session_client(cap())
|
session(env.parent(), affinity,
|
||||||
{ }
|
"priority=0x%lx, ram_quota=%u, "
|
||||||
|
"cap_quota=%u, label=\"%s\"",
|
||||||
/**
|
priority, RAM_QUOTA, CAP_QUOTA, label)),
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Cpu_connection(const char *label = "", long priority = DEFAULT_PRIORITY,
|
|
||||||
Affinity const &affinity = Affinity()) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Connection<Cpu_session>(_session(*env_deprecated()->parent(), label, priority, affinity)),
|
|
||||||
Cpu_session_client(cap())
|
Cpu_session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
@ -18,7 +18,6 @@
|
|||||||
#include <cpu_thread/cpu_thread.h>
|
#include <cpu_thread/cpu_thread.h>
|
||||||
#include <base/stdint.h>
|
#include <base/stdint.h>
|
||||||
#include <base/rpc_args.h>
|
#include <base/rpc_args.h>
|
||||||
#include <thread/capability.h>
|
|
||||||
#include <session/session.h>
|
#include <session/session.h>
|
||||||
#include <dataspace/capability.h>
|
#include <dataspace/capability.h>
|
||||||
#include <pd_session/pd_session.h>
|
#include <pd_session/pd_session.h>
|
||||||
@ -27,6 +26,8 @@ namespace Genode {
|
|||||||
|
|
||||||
struct Cpu_session;
|
struct Cpu_session;
|
||||||
struct Cpu_session_client;
|
struct Cpu_session_client;
|
||||||
|
|
||||||
|
typedef Capability<Cpu_thread> Thread_capability;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -1,22 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief Thread capability type
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2016-05-11
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2016-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__CPU_THREAD__CAPABILITY_H_
|
|
||||||
#define _INCLUDE__CPU_THREAD__CAPABILITY_H_
|
|
||||||
|
|
||||||
#include <cpu_thread/cpu_thread.h>
|
|
||||||
#include <base/capability.h>
|
|
||||||
|
|
||||||
namespace Genode { typedef Capability<Cpu_thread> Cpu_thread_capability; }
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__CPU_THREAD__CAPABILITY_H_ */
|
|
@ -20,8 +20,6 @@
|
|||||||
#include <parent/capability.h>
|
#include <parent/capability.h>
|
||||||
#include <parent/parent.h>
|
#include <parent/parent.h>
|
||||||
#include <region_map/region_map.h>
|
#include <region_map/region_map.h>
|
||||||
#include <rm_session/rm_session.h> /* deprecated, kept for API compatibility only */
|
|
||||||
#include <ram_session/capability.h>
|
|
||||||
#include <cpu_session/cpu_session.h>
|
#include <cpu_session/cpu_session.h>
|
||||||
#include <cpu_session/capability.h>
|
#include <cpu_session/capability.h>
|
||||||
#include <pd_session/capability.h>
|
#include <pd_session/capability.h>
|
||||||
@ -68,16 +66,6 @@ struct Genode::Env_deprecated : Interface
|
|||||||
*/
|
*/
|
||||||
virtual Parent *parent() = 0;
|
virtual Parent *parent() = 0;
|
||||||
|
|
||||||
/**
|
|
||||||
* RAM session of the component
|
|
||||||
*
|
|
||||||
* The RAM Session represents a budget of memory (quota) that is
|
|
||||||
* available to the component. This budget can be used to allocate
|
|
||||||
* RAM dataspaces.
|
|
||||||
*/
|
|
||||||
virtual Ram_session *ram_session() { return pd_session(); }
|
|
||||||
virtual Ram_session_capability ram_session_cap() { return pd_session_cap(); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* CPU session of the component
|
* CPU session of the component
|
||||||
*
|
*
|
||||||
@ -101,11 +89,6 @@ struct Genode::Env_deprecated : Interface
|
|||||||
virtual Pd_session *pd_session() = 0;
|
virtual Pd_session *pd_session() = 0;
|
||||||
virtual Pd_session_capability pd_session_cap() = 0;
|
virtual Pd_session_capability pd_session_cap() = 0;
|
||||||
|
|
||||||
/**
|
|
||||||
* Heap backed by the RAM session of the environment
|
|
||||||
*/
|
|
||||||
virtual Allocator *heap() = 0;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Reload parent capability and reinitialize environment resources
|
* Reload parent capability and reinitialize environment resources
|
||||||
*
|
*
|
||||||
|
@ -22,18 +22,6 @@ namespace Genode { struct Io_mem_connection; }
|
|||||||
|
|
||||||
struct Genode::Io_mem_connection : Connection<Io_mem_session>, Io_mem_session_client
|
struct Genode::Io_mem_connection : Connection<Io_mem_session>, Io_mem_session_client
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Capability<Io_mem_session> _session(Parent &, addr_t base, size_t size,
|
|
||||||
bool write_combined)
|
|
||||||
{
|
|
||||||
return session("cap_quota=%u, ram_quota=6K, base=0x%p, size=0x%lx, wc=%s",
|
|
||||||
CAP_QUOTA, base, size, write_combined ? "yes" : "no");
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -43,36 +31,12 @@ struct Genode::Io_mem_connection : Connection<Io_mem_session>, Io_mem_session_cl
|
|||||||
*/
|
*/
|
||||||
Io_mem_connection(Env &env, addr_t base, size_t size, bool write_combined = false)
|
Io_mem_connection(Env &env, addr_t base, size_t size, bool write_combined = false)
|
||||||
:
|
:
|
||||||
Connection<Io_mem_session>(env, _session(env.parent(), base, size, write_combined)),
|
Connection<Io_mem_session>(env,
|
||||||
Io_mem_session_client(cap())
|
session(env.parent(),
|
||||||
{ }
|
"cap_quota=%u, ram_quota=6K, "
|
||||||
|
"base=0x%p, size=0x%lx, wc=%s",
|
||||||
/**
|
CAP_QUOTA, base, size,
|
||||||
* Constructor
|
write_combined ? "yes" : "no")),
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Io_mem_connection(addr_t base, size_t size, bool write_combined = false) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Connection<Io_mem_session>(_session(*env_deprecated()->parent(), base, size, write_combined)),
|
|
||||||
Io_mem_session_client(cap())
|
|
||||||
{ }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*
|
|
||||||
* This variant is solely meant to be called from deprecated functions.
|
|
||||||
* It will be removed along with these functions.
|
|
||||||
*/
|
|
||||||
Io_mem_connection(bool, addr_t base, size_t size, bool write_combined = false)
|
|
||||||
:
|
|
||||||
Connection<Io_mem_session>(_session(*env_deprecated()->parent(), base, size, write_combined)),
|
|
||||||
Io_mem_session_client(cap())
|
Io_mem_session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
@ -42,20 +42,11 @@ struct Genode::Io_port_connection : Connection<Io_port_session>,
|
|||||||
*/
|
*/
|
||||||
Io_port_connection(Env &env, unsigned base, unsigned size)
|
Io_port_connection(Env &env, unsigned base, unsigned size)
|
||||||
:
|
:
|
||||||
Connection<Io_port_session>(env, _session(env.parent(), base, size)),
|
Connection<Io_port_session>(env,
|
||||||
Io_port_session_client(cap())
|
session(env.parent(),
|
||||||
{ }
|
"ram_quota=6K, cap_quota=%u, "
|
||||||
|
"io_port_base=%u, io_port_size=%u",
|
||||||
/**
|
CAP_QUOTA, base, size)),
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Io_port_connection(unsigned base, unsigned size) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Connection<Io_port_session>(_session(*env_deprecated()->parent(), base, size)),
|
|
||||||
Io_port_session_client(cap())
|
Io_port_session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
@ -21,22 +21,6 @@ namespace Genode { struct Irq_connection; }
|
|||||||
|
|
||||||
struct Genode::Irq_connection : Connection<Irq_session>, Irq_session_client
|
struct Genode::Irq_connection : Connection<Irq_session>, Irq_session_client
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Capability<Irq_session> _session(Parent &,
|
|
||||||
unsigned irq,
|
|
||||||
Irq_session::Trigger trigger,
|
|
||||||
Irq_session::Polarity polarity,
|
|
||||||
Genode::addr_t device_config_phys)
|
|
||||||
{
|
|
||||||
return session("ram_quota=6K, cap_quota=4, irq_number=%u, irq_trigger=%u, "
|
|
||||||
" irq_polarity=%u, device_config_phys=0x%lx",
|
|
||||||
irq, trigger, polarity, device_config_phys);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -50,25 +34,11 @@ struct Genode::Irq_connection : Connection<Irq_session>, Irq_session_client
|
|||||||
Irq_session::Polarity polarity = Irq_session::POLARITY_UNCHANGED,
|
Irq_session::Polarity polarity = Irq_session::POLARITY_UNCHANGED,
|
||||||
Genode::addr_t device_config_phys = 0)
|
Genode::addr_t device_config_phys = 0)
|
||||||
:
|
:
|
||||||
Connection<Irq_session>(env, _session(env.parent(), irq, trigger,
|
Connection<Irq_session>(env, session(env.parent(),
|
||||||
polarity, device_config_phys)),
|
"ram_quota=6K, cap_quota=4, "
|
||||||
Irq_session_client(cap())
|
"irq_number=%u, irq_trigger=%u, "
|
||||||
{ }
|
"irq_polarity=%u, device_config_phys=0x%lx",
|
||||||
|
irq, trigger, polarity, device_config_phys)),
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Irq_connection(unsigned irq,
|
|
||||||
Irq_session::Trigger trigger = Irq_session::TRIGGER_UNCHANGED,
|
|
||||||
Irq_session::Polarity polarity = Irq_session::POLARITY_UNCHANGED,
|
|
||||||
Genode::addr_t device_config_phys = 0) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Connection<Irq_session>(_session(*Genode::env_deprecated()->parent(), irq,
|
|
||||||
trigger, polarity, device_config_phys)),
|
|
||||||
Irq_session_client(cap())
|
Irq_session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
@ -35,20 +35,6 @@ struct Genode::Log_connection : Connection<Log_session>, Log_session_client
|
|||||||
RAM_QUOTA, CAP_QUOTA, label.string())),
|
RAM_QUOTA, CAP_QUOTA, label.string())),
|
||||||
Log_session_client(cap())
|
Log_session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Log_connection(Session_label label = Session_label()) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Connection<Log_session>(session("ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
|
|
||||||
RAM_QUOTA, CAP_QUOTA, label.string())),
|
|
||||||
Log_session_client(cap())
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__LOG_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__LOG_SESSION__CONNECTION_H_ */
|
||||||
|
@ -86,8 +86,8 @@ struct Genode::Pd_session_client : Rpc_client<Pd_session>
|
|||||||
return ds.valid() ? Dataspace_client(ds).size() : 0;
|
return ds.valid() ? Dataspace_client(ds).size() : 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
void transfer_quota(Pd_session_capability ram_session, Ram_quota amount) override {
|
void transfer_quota(Pd_session_capability pd_session, Ram_quota amount) override {
|
||||||
call<Rpc_transfer_ram_quota>(ram_session, amount); }
|
call<Rpc_transfer_ram_quota>(pd_session, amount); }
|
||||||
|
|
||||||
Ram_quota ram_quota() const override { return call<Rpc_ram_quota>(); }
|
Ram_quota ram_quota() const override { return call<Rpc_ram_quota>(); }
|
||||||
Ram_quota used_ram() const override { return call<Rpc_used_ram>(); }
|
Ram_quota used_ram() const override { return call<Rpc_used_ram>(); }
|
||||||
|
@ -37,19 +37,6 @@ struct Genode::Pd_connection : Connection<Pd_session>, Pd_session_client
|
|||||||
RAM_QUOTA, CAP_QUOTA, label, space)),
|
RAM_QUOTA, CAP_QUOTA, label, space)),
|
||||||
Pd_session_client(cap())
|
Pd_session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Pd_connection(char const *label = "") __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Connection<Pd_session>(session("ram_quota=%u, label=\"%s\"", RAM_QUOTA, label)),
|
|
||||||
Pd_session_client(cap())
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__PD_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__PD_SESSION__CONNECTION_H_ */
|
||||||
|
@ -16,7 +16,6 @@
|
|||||||
#define _INCLUDE__PD_SESSION__PD_SESSION_H_
|
#define _INCLUDE__PD_SESSION__PD_SESSION_H_
|
||||||
|
|
||||||
#include <base/exception.h>
|
#include <base/exception.h>
|
||||||
#include <thread/capability.h>
|
|
||||||
#include <session/session.h>
|
#include <session/session.h>
|
||||||
#include <region_map/region_map.h>
|
#include <region_map/region_map.h>
|
||||||
#include <base/ram_allocator.h>
|
#include <base/ram_allocator.h>
|
||||||
|
@ -1,29 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief RAM-session capability type
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2008-08-16
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2008-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__RAM_SESSION__CAPABILITY_H_
|
|
||||||
#define _INCLUDE__RAM_SESSION__CAPABILITY_H_
|
|
||||||
|
|
||||||
#include <base/capability.h>
|
|
||||||
|
|
||||||
namespace Genode {
|
|
||||||
|
|
||||||
/*
|
|
||||||
* We cannot include 'ram_session/ram_session.h' because this file relies
|
|
||||||
* on the the 'Ram_session_capability' type.
|
|
||||||
*/
|
|
||||||
class Pd_session;
|
|
||||||
typedef Capability<Pd_session> Ram_session_capability;
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__RAM_SESSION__CAPABILITY_H_ */
|
|
@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief RAM session interface
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2006-05-11
|
|
||||||
*
|
|
||||||
* \deprecated The RAM session interface is integrated in the PD session now.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2006-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__RAM_SESSION__RAM_SESSION_H_
|
|
||||||
#define _INCLUDE__RAM_SESSION__RAM_SESSION_H_
|
|
||||||
|
|
||||||
#include <pd_session/pd_session.h>
|
|
||||||
|
|
||||||
namespace Genode { typedef Pd_session Ram_session; }
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__RAM_SESSION__RAM_SESSION_H_ */
|
|
@ -19,7 +19,6 @@
|
|||||||
#include <base/signal.h>
|
#include <base/signal.h>
|
||||||
#include <base/quota_guard.h>
|
#include <base/quota_guard.h>
|
||||||
#include <dataspace/capability.h>
|
#include <dataspace/capability.h>
|
||||||
#include <thread/capability.h>
|
|
||||||
|
|
||||||
namespace Genode { struct Region_map; }
|
namespace Genode { struct Region_map; }
|
||||||
|
|
||||||
|
@ -35,19 +35,6 @@ struct Genode::Rm_connection : Connection<Rm_session>, Rm_session_client
|
|||||||
Rm_session_client(cap())
|
Rm_session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Rm_connection() __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Connection<Rm_session>(session("ram_quota=%u, cap_quota=%u", RAM_QUOTA, CAP_QUOTA)),
|
|
||||||
Rm_session_client(cap())
|
|
||||||
{ }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Wrapper over 'create' that handles resource requests
|
* Wrapper over 'create' that handles resource requests
|
||||||
* from the server.
|
* from the server.
|
||||||
|
@ -21,82 +21,32 @@
|
|||||||
namespace Genode { class Rom_connection; }
|
namespace Genode { class Rom_connection; }
|
||||||
|
|
||||||
|
|
||||||
class Genode::Rom_connection : public Connection<Rom_session>,
|
struct Genode::Rom_connection : Connection<Rom_session>,
|
||||||
public Rom_session_client
|
Rom_session_client
|
||||||
{
|
{
|
||||||
public:
|
class Rom_connection_failed : public Service_denied { };
|
||||||
|
|
||||||
class Rom_connection_failed : public Service_denied { };
|
enum { RAM_QUOTA = 6*1024UL };
|
||||||
|
|
||||||
enum { RAM_QUOTA = 6*1024UL };
|
/**
|
||||||
|
* Constructor
|
||||||
private:
|
*
|
||||||
|
* \param label request label and name of ROM module
|
||||||
Rom_session_capability _session(Parent &, char const *label)
|
*
|
||||||
{
|
* \throw Rom_connection_failed
|
||||||
return session("ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
|
*/
|
||||||
RAM_QUOTA, CAP_QUOTA, label);
|
Rom_connection(Env &env, const char *label)
|
||||||
}
|
try :
|
||||||
|
Connection<Rom_session>(env,
|
||||||
public:
|
session(env.parent(),
|
||||||
|
"ram_quota=%ld, cap_quota=%ld, label=\"%s\"",
|
||||||
/**
|
RAM_QUOTA, CAP_QUOTA, label)),
|
||||||
* Constructor
|
Rom_session_client(cap())
|
||||||
*
|
{ }
|
||||||
* \param label request label and name of ROM module
|
catch (...) {
|
||||||
*
|
error("Could not open ROM session for \"", label, "\"");
|
||||||
* \throw Rom_connection_failed
|
throw Rom_connection_failed();
|
||||||
*/
|
}
|
||||||
Rom_connection(Env &env, const char *label)
|
|
||||||
try :
|
|
||||||
Connection<Rom_session>(env, _session(env.parent(), label)),
|
|
||||||
Rom_session_client(cap())
|
|
||||||
{ }
|
|
||||||
catch (...) {
|
|
||||||
error("Could not open ROM session for \"", label, "\"");
|
|
||||||
throw Rom_connection_failed();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Rom_connection(const char *label) __attribute__((deprecated))
|
|
||||||
try :
|
|
||||||
Connection<Rom_session>(_session(*env_deprecated()->parent(), label)),
|
|
||||||
Rom_session_client(cap())
|
|
||||||
{ }
|
|
||||||
catch (...) {
|
|
||||||
error("Could not open ROM session for \"", label, "\"");
|
|
||||||
throw Rom_connection_failed();
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*
|
|
||||||
* This version is deliberately used by functions that are marked as
|
|
||||||
* deprecated. If such a function called directly the
|
|
||||||
* __attribute__((deprecate)) version, we would always get a warning,
|
|
||||||
* even if the outer deprecated function is not called.
|
|
||||||
*
|
|
||||||
* It will be removed as soon as they are gone.
|
|
||||||
*/
|
|
||||||
Rom_connection(bool, const char *label)
|
|
||||||
try :
|
|
||||||
Connection<Rom_session>(_session(*env_deprecated()->parent(), label)),
|
|
||||||
Rom_session_client(cap())
|
|
||||||
{ }
|
|
||||||
catch (...) {
|
|
||||||
error("Could not open ROM session for \"", label, "\"");
|
|
||||||
throw Rom_connection_failed();
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__ROM_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__ROM_SESSION__CONNECTION_H_ */
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief Thread capability type
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2008-08-16
|
|
||||||
*
|
|
||||||
* \deprecated Use cpu_thread/capability.h instead
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2008-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__THREAD__CAPABILITY_H_
|
|
||||||
#define _INCLUDE__THREAD__CAPABILITY_H_
|
|
||||||
|
|
||||||
#include <cpu_thread/capability.h>
|
|
||||||
|
|
||||||
namespace Genode { typedef Cpu_thread_capability Thread_capability; }
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__THREAD__CAPABILITY_H_ */
|
|
@ -261,15 +261,6 @@ class Timer::Connection : public Genode::Connection<Session>,
|
|||||||
*/
|
*/
|
||||||
Connection(Genode::Env &env, char const *label = "");
|
Connection(Genode::Env &env, char const *label = "");
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection() __attribute__((deprecated));
|
|
||||||
|
|
||||||
~Connection() { _sig_rec.dissolve(&_default_sigh_ctx); }
|
~Connection() { _sig_rec.dissolve(&_default_sigh_ctx); }
|
||||||
|
|
||||||
/*
|
/*
|
||||||
|
@ -23,21 +23,6 @@ namespace Genode { namespace Trace { struct Connection; } }
|
|||||||
struct Genode::Trace::Connection : Genode::Connection<Genode::Trace::Session>,
|
struct Genode::Trace::Connection : Genode::Connection<Genode::Trace::Session>,
|
||||||
Genode::Trace::Session_client
|
Genode::Trace::Session_client
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Capability<Trace::Session> _session(Parent &parent,
|
|
||||||
size_t ram_quota,
|
|
||||||
size_t arg_buffer_size,
|
|
||||||
unsigned parent_levels)
|
|
||||||
{
|
|
||||||
return session(parent,
|
|
||||||
"ram_quota=%lu, arg_buffer_size=%lu, parent_levels=%u",
|
|
||||||
ram_quota + 2048, arg_buffer_size, parent_levels);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -47,25 +32,11 @@ struct Genode::Trace::Connection : Genode::Connection<Genode::Trace::Session>,
|
|||||||
*/
|
*/
|
||||||
Connection(Env &env, size_t ram_quota, size_t arg_buffer_size, unsigned parent_levels)
|
Connection(Env &env, size_t ram_quota, size_t arg_buffer_size, unsigned parent_levels)
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), ram_quota,
|
Genode::Connection<Session>(env,
|
||||||
arg_buffer_size, parent_levels)),
|
session(env.parent(), "ram_quota=%lu, arg_buffer_size=%lu, parent_levels=%u",
|
||||||
|
ram_quota + 2048, arg_buffer_size, parent_levels)),
|
||||||
Session_client(env.rm(), cap())
|
Session_client(env.rm(), cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(size_t ram_quota, size_t arg_buffer_size, unsigned parent_levels) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(_session(*env_deprecated()->parent(),
|
|
||||||
ram_quota, arg_buffer_size,
|
|
||||||
parent_levels)),
|
|
||||||
Session_client(*env_deprecated()->rm_session(), cap())
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__TRACE_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__TRACE_SESSION__CONNECTION_H_ */
|
||||||
|
@ -129,13 +129,6 @@ class Genode::Reconstructible : Noncopyable
|
|||||||
*/
|
*/
|
||||||
bool constructed() const { return _constructed; }
|
bool constructed() const { return _constructed; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true of volatile object contains a constructed object
|
|
||||||
*
|
|
||||||
* \deprecated use 'constructed' instead
|
|
||||||
*/
|
|
||||||
bool is_constructed() const { return constructed(); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Construct or destruct volatile object according to 'condition'
|
* Construct or destruct volatile object according to 'condition'
|
||||||
*/
|
*/
|
||||||
|
@ -721,81 +721,6 @@ class Genode::Register_set : Noncopyable
|
|||||||
wait_for<CONDITIONS...>(Attempts(500), Microseconds(1000),
|
wait_for<CONDITIONS...>(Attempts(500), Microseconds(1000),
|
||||||
delayer, conditions...);
|
delayer, conditions...);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Wait until register 'T' contains the specified 'value'
|
|
||||||
*
|
|
||||||
* \param value value to wait for
|
|
||||||
* \param delayer sleeping facility to be used when the
|
|
||||||
* value is not reached yet
|
|
||||||
* \param max_attempts number of register probing attempts
|
|
||||||
* \param us number of microseconds between attempts
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated use 'template <typename... CONDITIONS> wait_for'
|
|
||||||
*/
|
|
||||||
template <typename T>
|
|
||||||
inline bool
|
|
||||||
wait_for(typename T::Register_base::access_t const value,
|
|
||||||
Delayer & delayer,
|
|
||||||
unsigned max_attempts = 500,
|
|
||||||
unsigned us = 1000) __attribute__ ((deprecated));
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Wait until bitfield 'T' contains the specified 'value'
|
|
||||||
*
|
|
||||||
* \param value value to wait for
|
|
||||||
* \param delayer sleeping facility to be used when the
|
|
||||||
* value is not reached yet
|
|
||||||
* \param max_attempts number of bitfield probing attempts
|
|
||||||
* \param us number of microseconds between attempts
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated use 'template <typename... CONDITIONS> wait_for'
|
|
||||||
*/
|
|
||||||
template <typename T>
|
|
||||||
inline bool
|
|
||||||
wait_for(typename T::Bitfield_base::Compound_reg::access_t const value,
|
|
||||||
Delayer & delayer,
|
|
||||||
unsigned max_attempts = 500,
|
|
||||||
unsigned us = 1000) __attribute__ ((deprecated));
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
template <typename PLAIN_ACCESS>
|
|
||||||
template <typename T>
|
|
||||||
bool Genode::Register_set<PLAIN_ACCESS>::
|
|
||||||
wait_for(typename T::Register_base::access_t const value,
|
|
||||||
Delayer &delayer,
|
|
||||||
unsigned max_attempts,
|
|
||||||
unsigned us)
|
|
||||||
{
|
|
||||||
typedef typename T::Register_base Register;
|
|
||||||
for (unsigned i = 0; i < max_attempts; i++, delayer.usleep(us))
|
|
||||||
{
|
|
||||||
if (read<Register>() == value) {
|
|
||||||
return true; }
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
template <typename PLAIN_ACCESS>
|
|
||||||
template <typename T>
|
|
||||||
bool Genode::Register_set<PLAIN_ACCESS>::
|
|
||||||
wait_for(typename T::Bitfield_base::Compound_reg::access_t const value,
|
|
||||||
Delayer &delayer,
|
|
||||||
unsigned max_attempts,
|
|
||||||
unsigned us)
|
|
||||||
{
|
|
||||||
typedef typename T::Bitfield_base Bitfield;
|
|
||||||
for (unsigned i = 0; i < max_attempts; i++, delayer.usleep(us))
|
|
||||||
{
|
|
||||||
if (read<Bitfield>() == value) {
|
|
||||||
return true; }
|
|
||||||
}
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__UTIL__REGISTER_SET_H_ */
|
#endif /* _INCLUDE__UTIL__REGISTER_SET_H_ */
|
||||||
|
@ -1,38 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief Utility for manual in-place construction of objects
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2014-01-10
|
|
||||||
*
|
|
||||||
* \deprecated use 'util/reconstructible.h' instead
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2014-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__UTIL__VOLATILE_OBJECT_H_
|
|
||||||
#define _INCLUDE__UTIL__VOLATILE_OBJECT_H_
|
|
||||||
|
|
||||||
#include <util/reconstructible.h>
|
|
||||||
|
|
||||||
#warning "'util/volatile_object.h' is deprecated, use 'util/reconstructible.h' instead (see https://github.com/genodelabs/genode/issues/2151)"
|
|
||||||
|
|
||||||
namespace Genode {
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
struct Volatile_object : Reconstructible<T>
|
|
||||||
{
|
|
||||||
using Reconstructible<T>::Reconstructible;
|
|
||||||
};
|
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
struct Lazy_volatile_object : Constructible<T>
|
|
||||||
{
|
|
||||||
using Constructible<T>::Constructible;
|
|
||||||
};
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__UTIL__VOLATILE_OBJECT_H_ */
|
|
@ -52,21 +52,6 @@ struct Genode::Vm_connection : Connection<Vm_session>, Vm_session_client
|
|||||||
Vm_session_client(cap())
|
Vm_session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Vm_connection(const char *label = "",
|
|
||||||
long priority = Cpu_session::DEFAULT_PRIORITY,
|
|
||||||
unsigned long affinity = 0) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Connection<Vm_session>(_session(*env_deprecated()->parent(), label, priority, affinity)),
|
|
||||||
Vm_session_client(cap())
|
|
||||||
{ }
|
|
||||||
|
|
||||||
template <typename FUNC>
|
template <typename FUNC>
|
||||||
auto with_upgrade(FUNC func) -> decltype(func())
|
auto with_upgrade(FUNC func) -> decltype(func())
|
||||||
{
|
{
|
||||||
|
@ -17,8 +17,9 @@
|
|||||||
/* Genode includes */
|
/* Genode includes */
|
||||||
#include <base/rpc_args.h>
|
#include <base/rpc_args.h>
|
||||||
#include <base/signal.h>
|
#include <base/signal.h>
|
||||||
|
#include <base/ram_allocator.h>
|
||||||
|
#include <cpu_session/cpu_session.h>
|
||||||
#include <session/session.h>
|
#include <session/session.h>
|
||||||
#include <ram_session/ram_session.h>
|
|
||||||
|
|
||||||
namespace Genode { struct Vm_session; }
|
namespace Genode { struct Vm_session; }
|
||||||
|
|
||||||
|
@ -94,7 +94,6 @@ class Genode::Core_env : public Env_deprecated, Noncopyable
|
|||||||
Parent *parent() override { return nullptr; }
|
Parent *parent() override { return nullptr; }
|
||||||
Region_map *rm_session() override { return &_region_map; }
|
Region_map *rm_session() override { return &_region_map; }
|
||||||
Pd_session *pd_session() override { return &_pd_session; }
|
Pd_session *pd_session() override { return &_pd_session; }
|
||||||
Allocator *heap() override { ASSERT_NEVER_CALLED; }
|
|
||||||
Cpu_session *cpu_session() override { ASSERT_NEVER_CALLED; }
|
Cpu_session *cpu_session() override { ASSERT_NEVER_CALLED; }
|
||||||
Cpu_session_capability cpu_session_cap() override { ASSERT_NEVER_CALLED; }
|
Cpu_session_capability cpu_session_cap() override { ASSERT_NEVER_CALLED; }
|
||||||
Pd_session_capability pd_session_cap() override { return _pd_session.cap(); }
|
Pd_session_capability pd_session_cap() override { return _pd_session.cap(); }
|
||||||
|
@ -113,7 +113,6 @@ class Genode::Platform_env : public Platform_env_base
|
|||||||
Pd_session *pd_session() override { return &_resources.pd; }
|
Pd_session *pd_session() override { return &_resources.pd; }
|
||||||
Pd_session_capability pd_session_cap() override { return _resources.pd.rpc_cap(); }
|
Pd_session_capability pd_session_cap() override { return _resources.pd.rpc_cap(); }
|
||||||
Region_map *rm_session() override { return &_resources.rm; }
|
Region_map *rm_session() override { return &_resources.rm; }
|
||||||
Allocator *heap() override { return &_heap; }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__BASE__INTERNAL__PLATFORM_ENV_H_ */
|
#endif /* _INCLUDE__BASE__INTERNAL__PLATFORM_ENV_H_ */
|
||||||
|
@ -135,34 +135,6 @@ create_session(Child_policy::Name const &child_name, Service &service,
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* \deprecated Temporary wrapper around 'Child_policy::resolve_session_request'
|
|
||||||
* that tries both overloads.
|
|
||||||
*
|
|
||||||
* \throw Service_denied
|
|
||||||
*/
|
|
||||||
Child_policy::Route Child::_resolve_session_request(Child_policy &policy,
|
|
||||||
Service::Name const &name,
|
|
||||||
char const *argbuf)
|
|
||||||
{
|
|
||||||
Session_label const label = label_from_args(argbuf);
|
|
||||||
|
|
||||||
/*
|
|
||||||
* \deprecated Try old interface, remove once all 'Child_policy'
|
|
||||||
* implementations are updated.
|
|
||||||
*/
|
|
||||||
try {
|
|
||||||
|
|
||||||
Session_state::Args args(argbuf);
|
|
||||||
return { policy.resolve_session_request(name, args), label,
|
|
||||||
session_diag_from_args(argbuf) };
|
|
||||||
}
|
|
||||||
catch (Service_denied) { }
|
|
||||||
|
|
||||||
return policy.resolve_session_request(name, label);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
Session_capability Child::session(Parent::Client::Id id,
|
Session_capability Child::session(Parent::Client::Id id,
|
||||||
Parent::Service_name const &name,
|
Parent::Service_name const &name,
|
||||||
Parent::Session_args const &args,
|
Parent::Session_args const &args,
|
||||||
@ -176,9 +148,9 @@ Session_capability Child::session(Parent::Client::Id id,
|
|||||||
strncpy(argbuf, args.string(), sizeof(argbuf));
|
strncpy(argbuf, args.string(), sizeof(argbuf));
|
||||||
|
|
||||||
/* prefix session label */
|
/* prefix session label */
|
||||||
Session_label const orig_label(label_from_args(argbuf));
|
Session_label const label = prefixed_label(_policy.name(), label_from_args(argbuf));
|
||||||
Arg_string::set_arg_string(argbuf, sizeof(argbuf), "label",
|
|
||||||
prefixed_label(_policy.name(), orig_label).string());
|
Arg_string::set_arg_string(argbuf, sizeof(argbuf), "label", label.string());
|
||||||
|
|
||||||
/* filter session arguments according to the child policy */
|
/* filter session arguments according to the child policy */
|
||||||
_policy.filter_session_args(name.string(), argbuf, sizeof(argbuf));
|
_policy.filter_session_args(name.string(), argbuf, sizeof(argbuf));
|
||||||
@ -202,7 +174,8 @@ Session_capability Child::session(Parent::Client::Id id,
|
|||||||
Arg_string::set_arg(argbuf, sizeof(argbuf), "ram_quota", forward_ram_quota.value);
|
Arg_string::set_arg(argbuf, sizeof(argbuf), "ram_quota", forward_ram_quota.value);
|
||||||
|
|
||||||
/* may throw a 'Service_denied' exception */
|
/* may throw a 'Service_denied' exception */
|
||||||
Child_policy::Route route = _resolve_session_request(_policy, name.string(), argbuf);
|
Child_policy::Route route = _policy.resolve_session_request(name.string(), label);
|
||||||
|
|
||||||
Service &service = route.service;
|
Service &service = route.service;
|
||||||
|
|
||||||
/* propagate diag flag */
|
/* propagate diag flag */
|
||||||
|
@ -26,7 +26,7 @@ using namespace Genode;
|
|||||||
|
|
||||||
Child::Process::Loaded_executable::Loaded_executable(Type type,
|
Child::Process::Loaded_executable::Loaded_executable(Type type,
|
||||||
Dataspace_capability ldso_ds,
|
Dataspace_capability ldso_ds,
|
||||||
Ram_session &ram,
|
Ram_allocator &ram,
|
||||||
Region_map &local_rm,
|
Region_map &local_rm,
|
||||||
Region_map &remote_rm,
|
Region_map &remote_rm,
|
||||||
Parent_capability parent_cap)
|
Parent_capability parent_cap)
|
||||||
|
@ -48,11 +48,3 @@ Connection_base::Connection_base()
|
|||||||
_env(internal_env()),
|
_env(internal_env()),
|
||||||
_id_space_element(_parent_client, _env.id_space())
|
_id_space_element(_parent_client, _env.id_space())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
|
|
||||||
/*
|
|
||||||
* \deprecated
|
|
||||||
*/
|
|
||||||
Env &Parent_service::_env_deprecated() { return internal_env(); }
|
|
||||||
|
|
||||||
|
|
||||||
|
@ -140,17 +140,6 @@ Timer::Connection::Connection(Genode::Env &env, char const *label)
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
Timer::Connection::Connection()
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(session("ram_quota=10K")),
|
|
||||||
Session_client(cap()),
|
|
||||||
_signal_handler(internal_env().ep(), *this, &Connection::_handle_timeout)
|
|
||||||
{
|
|
||||||
/* register default signal handler */
|
|
||||||
Session_client::sigh(_default_sigh_cap);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
void Timer::Connection::_schedule_one_shot(Timeout &timeout, Microseconds duration)
|
void Timer::Connection::_schedule_one_shot(Timeout &timeout, Microseconds duration)
|
||||||
{
|
{
|
||||||
_enable_modern_mode();
|
_enable_modern_mode();
|
||||||
|
@ -23,17 +23,6 @@ namespace Audio_out { struct Connection; }
|
|||||||
|
|
||||||
struct Audio_out::Connection : Genode::Connection<Session>, Audio_out::Session_client
|
struct Audio_out::Connection : Genode::Connection<Session>, Audio_out::Session_client
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Genode::Capability<Audio_out::Session> _session(Genode::Parent &parent, char const *channel)
|
|
||||||
{
|
|
||||||
return session(parent, "ram_quota=%ld, cap_quota=%ld, channel=\"%s\"",
|
|
||||||
2*4096 + 2048 + sizeof(Stream), CAP_QUOTA, channel);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -49,24 +38,12 @@ struct Audio_out::Connection : Genode::Connection<Session>, Audio_out::Session_c
|
|||||||
bool alloc_signal = true,
|
bool alloc_signal = true,
|
||||||
bool progress_signal = false)
|
bool progress_signal = false)
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), channel)),
|
Genode::Connection<Session>(env,
|
||||||
|
session(env.parent(),
|
||||||
|
"ram_quota=%ld, cap_quota=%ld, channel=\"%s\"",
|
||||||
|
2*4096 + 2048 + sizeof(Stream), CAP_QUOTA, channel)),
|
||||||
Session_client(env.rm(), cap(), alloc_signal, progress_signal)
|
Session_client(env.rm(), cap(), alloc_signal, progress_signal)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(const char *channel,
|
|
||||||
bool alloc_signal = true,
|
|
||||||
bool progress_signal = false) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(_session(*Genode::env_deprecated()->parent(), channel)),
|
|
||||||
Session_client(*Genode::env_deprecated()->rm_session(), cap(), alloc_signal, progress_signal)
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__AUDIO_OUT_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__AUDIO_OUT_SESSION__CONNECTION_H_ */
|
||||||
|
@ -22,19 +22,6 @@ namespace Block { struct Connection; }
|
|||||||
|
|
||||||
struct Block::Connection : Genode::Connection<Session>, Session_client
|
struct Block::Connection : Genode::Connection<Session>, Session_client
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Genode::Capability<Block::Session> _session(Genode::Parent &parent,
|
|
||||||
char const *label,
|
|
||||||
Genode::size_t tx_buf_size)
|
|
||||||
{
|
|
||||||
return session(parent, "ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"",
|
|
||||||
14*1024 + tx_buf_size, CAP_QUOTA, tx_buf_size, label);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -47,24 +34,12 @@ struct Block::Connection : Genode::Connection<Session>, Session_client
|
|||||||
Genode::size_t tx_buf_size = 128*1024,
|
Genode::size_t tx_buf_size = 128*1024,
|
||||||
const char *label = "")
|
const char *label = "")
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), label, tx_buf_size)),
|
Genode::Connection<Session>(env,
|
||||||
|
session(env.parent(),
|
||||||
|
"ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"",
|
||||||
|
14*1024 + tx_buf_size, CAP_QUOTA, tx_buf_size, label)),
|
||||||
Session_client(cap(), *tx_block_alloc, env.rm())
|
Session_client(cap(), *tx_block_alloc, env.rm())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(Genode::Range_allocator *tx_block_alloc,
|
|
||||||
Genode::size_t tx_buf_size = 128*1024,
|
|
||||||
const char *label = "") __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(_session(*Genode::env_deprecated()->parent(), label, tx_buf_size)),
|
|
||||||
Session_client(cap(), *tx_block_alloc, *Genode::env_deprecated()->rm_session())
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__BLOCK_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__BLOCK_SESSION__CONNECTION_H_ */
|
||||||
|
@ -41,16 +41,6 @@ class Block::Session_rpc_object : public Genode::Rpc_object<Session, Session_rpc
|
|||||||
Genode::Rpc_entrypoint &ep)
|
Genode::Rpc_entrypoint &ep)
|
||||||
: _tx(tx_ds, local_rm, ep) { }
|
: _tx(tx_ds, local_rm, ep) { }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \deprecated
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Session_rpc_object(Genode::Dataspace_capability tx_ds,
|
|
||||||
Genode::Rpc_entrypoint &ep) __attribute__((deprecated))
|
|
||||||
: _tx(tx_ds, *Genode::env_deprecated()->rm_session(), ep) { }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return capability to packet-stream channel
|
* Return capability to packet-stream channel
|
||||||
*
|
*
|
||||||
|
@ -19,69 +19,20 @@
|
|||||||
|
|
||||||
namespace Decorator {
|
namespace Decorator {
|
||||||
|
|
||||||
template <typename T>
|
|
||||||
static T attribute(Xml_node const &, char const *, T);
|
|
||||||
|
|
||||||
template <size_t CAPACITY>
|
|
||||||
Genode::String<CAPACITY> string_attribute(Xml_node const &, char const *,
|
|
||||||
Genode::String<CAPACITY> const &);
|
|
||||||
|
|
||||||
static Point point_attribute(Xml_node const &);
|
static Point point_attribute(Xml_node const &);
|
||||||
|
static Area area_attribute(Xml_node const &);
|
||||||
static Area area_attribute(Xml_node const &);
|
static Rect rect_attribute(Xml_node const &);
|
||||||
|
|
||||||
static Rect rect_attribute(Xml_node const &);
|
|
||||||
|
|
||||||
template <typename FUNC>
|
|
||||||
static void for_each_sub_node(Xml_node, char const *, FUNC const &);
|
|
||||||
|
|
||||||
static Color color(Xml_node const &);
|
static Color color(Xml_node const &);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read attribute value from XML node
|
|
||||||
*
|
|
||||||
* \param node XML node
|
|
||||||
* \param name attribute name
|
|
||||||
* \param default_value value returned if no such attribute exists
|
|
||||||
*/
|
|
||||||
template <typename T>
|
|
||||||
static T
|
|
||||||
Decorator::attribute(Xml_node const &node, char const *name, T default_value)
|
|
||||||
{
|
|
||||||
T result = default_value;
|
|
||||||
if (node.has_attribute(name))
|
|
||||||
node.attribute(name).value(&result);
|
|
||||||
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Read string from XML node
|
|
||||||
*/
|
|
||||||
template <Genode::size_t CAPACITY>
|
|
||||||
Genode::String<CAPACITY>
|
|
||||||
Decorator::string_attribute(Xml_node const &node, char const *attr,
|
|
||||||
Genode::String<CAPACITY> const &default_value)
|
|
||||||
{
|
|
||||||
if (!node.has_attribute(attr))
|
|
||||||
return default_value;
|
|
||||||
|
|
||||||
char buf[CAPACITY];
|
|
||||||
node.attribute(attr).value(buf, sizeof(buf));
|
|
||||||
return Genode::String<CAPACITY>(Genode::Cstring(buf));
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read point position from XML node
|
* Read point position from XML node
|
||||||
*/
|
*/
|
||||||
static inline Decorator::Point Decorator::point_attribute(Genode::Xml_node const &point)
|
static inline Decorator::Point Decorator::point_attribute(Genode::Xml_node const &point)
|
||||||
{
|
{
|
||||||
return Point(attribute(point, "xpos", 0L),
|
return Point(point.attribute_value("xpos", 0L),
|
||||||
attribute(point, "ypos", 0L)); }
|
point.attribute_value("ypos", 0L)); }
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -89,8 +40,8 @@ static inline Decorator::Point Decorator::point_attribute(Genode::Xml_node const
|
|||||||
*/
|
*/
|
||||||
static inline Decorator::Area Decorator::area_attribute(Genode::Xml_node const &area)
|
static inline Decorator::Area Decorator::area_attribute(Genode::Xml_node const &area)
|
||||||
{
|
{
|
||||||
return Area(attribute(area, "width", 0UL),
|
return Area(area.attribute_value("width", 0UL),
|
||||||
attribute(area, "height", 0UL));
|
area.attribute_value("height", 0UL));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -103,33 +54,12 @@ static inline Decorator::Rect Decorator::rect_attribute(Genode::Xml_node const &
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Apply functor 'func' to all XML sub nodes of given type
|
|
||||||
*/
|
|
||||||
template <typename FUNC>
|
|
||||||
static void
|
|
||||||
Decorator::for_each_sub_node(Genode::Xml_node node, char const *type,
|
|
||||||
FUNC const &func)
|
|
||||||
{
|
|
||||||
if (!node.has_sub_node(type))
|
|
||||||
return;
|
|
||||||
|
|
||||||
for (node = node.sub_node(type); ; node = node.next()) {
|
|
||||||
|
|
||||||
if (node.has_type(type))
|
|
||||||
func(node);
|
|
||||||
|
|
||||||
if (node.last()) break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Read color attribute from XML node
|
* Read color attribute from XML node
|
||||||
*/
|
*/
|
||||||
static inline Genode::Color Decorator::color(Genode::Xml_node const &color)
|
static inline Genode::Color Decorator::color(Genode::Xml_node const &color)
|
||||||
{
|
{
|
||||||
return attribute(color, "color", Color(0, 0, 0));
|
return color.attribute_value("color", Color(0, 0, 0));
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif /* _INCLUDE__DECORATOR__XML_UTILS_H_ */
|
#endif /* _INCLUDE__DECORATOR__XML_UTILS_H_ */
|
||||||
|
@ -58,17 +58,6 @@ namespace File_system {
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if specified path is a base name (contains no path delimiters)
|
|
||||||
*
|
|
||||||
* \deprecated use !contains_path_delimiter instead
|
|
||||||
*/
|
|
||||||
static inline bool is_basename(char const *path)
|
|
||||||
{
|
|
||||||
return !contains_path_delimiter(path);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Return true if 'str' is a valid node name
|
* Return true if 'str' is a valid node name
|
||||||
*/
|
*/
|
||||||
|
@ -26,89 +26,14 @@ namespace File_system {
|
|||||||
|
|
||||||
/* recommended packet transmission buffer size */
|
/* recommended packet transmission buffer size */
|
||||||
enum { DEFAULT_TX_BUF_SIZE = 128*1024 };
|
enum { DEFAULT_TX_BUF_SIZE = 128*1024 };
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* The base implementation of a File_system connection
|
* The base implementation of a File_system connection
|
||||||
*/
|
*/
|
||||||
struct File_system::Connection_base : Genode::Connection<Session>, Session_client
|
struct File_system::Connection : Genode::Connection<Session>, Session_client
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Genode::Capability<File_system::Session> _session(Genode::Parent &parent,
|
|
||||||
char const *label,
|
|
||||||
char const *root,
|
|
||||||
bool writeable,
|
|
||||||
size_t tx_buf_size)
|
|
||||||
{
|
|
||||||
return session(parent,
|
|
||||||
"ram_quota=%ld, "
|
|
||||||
"cap_quota=%ld, "
|
|
||||||
"tx_buf_size=%ld, "
|
|
||||||
"label=\"%s\", "
|
|
||||||
"root=\"%s\", "
|
|
||||||
"writeable=%d",
|
|
||||||
8*1024*sizeof(long) + tx_buf_size,
|
|
||||||
CAP_QUOTA,
|
|
||||||
tx_buf_size,
|
|
||||||
label, root, writeable);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \param tx_buffer_alloc allocator used for managing the
|
|
||||||
* transmission buffer
|
|
||||||
* \param label session label
|
|
||||||
* \param root root directory of session
|
|
||||||
* \param writeable session is writable
|
|
||||||
* \param tx_buf_size size of transmission buffer in bytes
|
|
||||||
*/
|
|
||||||
Connection_base(Genode::Env &env,
|
|
||||||
Genode::Range_allocator &tx_block_alloc,
|
|
||||||
char const *label = "",
|
|
||||||
char const *root = "/",
|
|
||||||
bool writeable = true,
|
|
||||||
size_t tx_buf_size = DEFAULT_TX_BUF_SIZE)
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), label, root,
|
|
||||||
writeable, tx_buf_size)),
|
|
||||||
Session_client(cap(), tx_block_alloc, env.rm())
|
|
||||||
{ }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection_base(Genode::Range_allocator &tx_block_alloc,
|
|
||||||
size_t tx_buf_size = DEFAULT_TX_BUF_SIZE,
|
|
||||||
char const *label = "",
|
|
||||||
char const *root = "/",
|
|
||||||
bool writeable = true) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(_session(*Genode::env_deprecated()->parent(), label,
|
|
||||||
root, writeable, tx_buf_size)),
|
|
||||||
Session_client(cap(), tx_block_alloc, *Genode::env_deprecated()->rm_session())
|
|
||||||
{ }
|
|
||||||
};
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* A File_system connection that upgrades its RAM quota
|
|
||||||
*/
|
|
||||||
struct File_system::Connection : File_system::Connection_base
|
|
||||||
{
|
|
||||||
/* reuse constructor */
|
|
||||||
using Connection_base::Connection_base;
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Extend session quota on demand while calling an RPC function
|
* Extend session quota on demand while calling an RPC function
|
||||||
*
|
*
|
||||||
@ -122,13 +47,45 @@ struct File_system::Connection : File_system::Connection_base
|
|||||||
[&] () {
|
[&] () {
|
||||||
return Genode::retry<Out_of_caps>(
|
return Genode::retry<Out_of_caps>(
|
||||||
[&] () { return func(); },
|
[&] () { return func(); },
|
||||||
[&] () { File_system::Connection_base::upgrade_caps(2); },
|
[&] () { File_system::Connection::upgrade_caps(2); },
|
||||||
UPGRADE_ATTEMPTS);
|
UPGRADE_ATTEMPTS);
|
||||||
},
|
},
|
||||||
[&] () { File_system::Connection_base::upgrade_ram(8*1024); },
|
[&] () { File_system::Connection::upgrade_ram(8*1024); },
|
||||||
UPGRADE_ATTEMPTS);
|
UPGRADE_ATTEMPTS);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Constructor
|
||||||
|
*
|
||||||
|
* \param tx_buffer_alloc allocator used for managing the
|
||||||
|
* transmission buffer
|
||||||
|
* \param label session label
|
||||||
|
* \param root root directory of session
|
||||||
|
* \param writeable session is writable
|
||||||
|
* \param tx_buf_size size of transmission buffer in bytes
|
||||||
|
*/
|
||||||
|
Connection(Genode::Env &env,
|
||||||
|
Genode::Range_allocator &tx_block_alloc,
|
||||||
|
char const *label = "",
|
||||||
|
char const *root = "/",
|
||||||
|
bool writeable = true,
|
||||||
|
size_t tx_buf_size = DEFAULT_TX_BUF_SIZE)
|
||||||
|
:
|
||||||
|
Genode::Connection<Session>(env,
|
||||||
|
session(env.parent(),
|
||||||
|
"ram_quota=%ld, "
|
||||||
|
"cap_quota=%ld, "
|
||||||
|
"tx_buf_size=%ld, "
|
||||||
|
"label=\"%s\", "
|
||||||
|
"root=\"%s\", "
|
||||||
|
"writeable=%d",
|
||||||
|
8*1024*sizeof(long) + tx_buf_size,
|
||||||
|
CAP_QUOTA,
|
||||||
|
tx_buf_size,
|
||||||
|
label, root, writeable)),
|
||||||
|
Session_client(cap(), tx_block_alloc, env.rm())
|
||||||
|
{ }
|
||||||
|
|
||||||
Dir_handle dir(Path const &path, bool create) override
|
Dir_handle dir(Path const &path, bool create) override
|
||||||
{
|
{
|
||||||
return _retry([&] () {
|
return _retry([&] () {
|
||||||
|
@ -229,20 +229,6 @@ struct File_system::Status
|
|||||||
* Return true if node is a symbolic link
|
* Return true if node is a symbolic link
|
||||||
*/
|
*/
|
||||||
bool symlink() const { return mode & MODE_SYMLINK; }
|
bool symlink() const { return mode & MODE_SYMLINK; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if node is a directory
|
|
||||||
*
|
|
||||||
* \deprecated use 'directory' instead
|
|
||||||
*/
|
|
||||||
bool is_directory() const { return directory(); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if node is a symbolic link
|
|
||||||
*
|
|
||||||
* \deprecated use 'symlink' instead
|
|
||||||
*/
|
|
||||||
bool is_symlink() const { return symlink(); }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
|
@ -76,22 +76,6 @@ class Framebuffer::Connection : public Genode::Connection<Session>,
|
|||||||
mode.format())),
|
mode.format())),
|
||||||
Session_client(cap())
|
Session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(unsigned width = 0,
|
|
||||||
unsigned height = 0,
|
|
||||||
Mode::Format format = Mode::INVALID) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(_connect(*Genode::env_deprecated()->parent(),
|
|
||||||
width, height, format)),
|
|
||||||
Session_client(cap())
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__FRAMEBUFFER_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__FRAMEBUFFER_SESSION__CONNECTION_H_ */
|
||||||
|
@ -33,19 +33,6 @@ struct Gpio::Connection : Genode::Connection<Session>, Session_client
|
|||||||
CAP_QUOTA, gpio_pin)),
|
CAP_QUOTA, gpio_pin)),
|
||||||
Session_client(cap())
|
Session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(unsigned long gpio_pin) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(session("ram_quota=8K, gpio=%zd", gpio_pin)),
|
|
||||||
Session_client(cap())
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__GPIO_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__GPIO_SESSION__CONNECTION_H_ */
|
||||||
|
@ -41,18 +41,6 @@ class Input::Session_client : public Genode::Rpc_client<Session>
|
|||||||
_event_ds(local_rm, call<Rpc_dataspace>())
|
_event_ds(local_rm, call<Rpc_dataspace>())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \deprecated
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
explicit Session_client(Session_capability session) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Rpc_client<Session>(session),
|
|
||||||
_event_ds(*Genode::env_deprecated()->rm_session(), call<Rpc_dataspace>())
|
|
||||||
{ }
|
|
||||||
|
|
||||||
Genode::Dataspace_capability dataspace() override {
|
Genode::Dataspace_capability dataspace() override {
|
||||||
return call<Rpc_dataspace>(); }
|
return call<Rpc_dataspace>(); }
|
||||||
|
|
||||||
|
@ -21,38 +21,17 @@ namespace Input { struct Connection; }
|
|||||||
|
|
||||||
struct Input::Connection : Genode::Connection<Session>, Session_client
|
struct Input::Connection : Genode::Connection<Session>, Session_client
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Genode::Capability<Input::Session> _session(Genode::Parent &parent, char const *label) {
|
|
||||||
return session(parent, "ram_quota=18K, cap_quota=%u, label=\"%s\"",
|
|
||||||
CAP_QUOTA, label); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
Connection(Genode::Env &env, char const *label = "")
|
Connection(Genode::Env &env, char const *label = "")
|
||||||
:
|
:
|
||||||
Genode::Connection<Input::Session>(env, _session(env.parent(), label)),
|
Genode::Connection<Input::Session>(env,
|
||||||
|
session(env.parent(),
|
||||||
|
"ram_quota=18K, cap_quota=%u, label=\"%s\"",
|
||||||
|
CAP_QUOTA, label)),
|
||||||
Session_client(env.rm(), cap())
|
Session_client(env.rm(), cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection() __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Input::Session>(
|
|
||||||
session(*Genode::env_deprecated()->parent(),
|
|
||||||
"ram_quota=18K, cap_quota=3")),
|
|
||||||
Session_client(*Genode::env_deprecated()->rm_session(), cap())
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__INPUT_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__INPUT_SESSION__CONNECTION_H_ */
|
||||||
|
@ -50,14 +50,6 @@ struct Input::Session : Genode::Session
|
|||||||
*/
|
*/
|
||||||
virtual bool pending() const = 0;
|
virtual bool pending() const = 0;
|
||||||
|
|
||||||
/**
|
|
||||||
* Request input state
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated use 'pending' instead
|
|
||||||
*/
|
|
||||||
bool is_pending() const { return pending(); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Flush pending events to event buffer
|
* Flush pending events to event buffer
|
||||||
*
|
*
|
||||||
|
@ -34,19 +34,6 @@ struct Loader::Connection : Genode::Connection<Session>, Session_client
|
|||||||
CAP_QUOTA + cap_quota.value)),
|
CAP_QUOTA + cap_quota.value)),
|
||||||
Session_client(cap())
|
Session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(size_t ram_quota) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(session("ram_quota=%ld", ram_quota)),
|
|
||||||
Session_client(cap())
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__LOADER_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__LOADER_SESSION__CONNECTION_H_ */
|
||||||
|
@ -23,22 +23,6 @@ namespace Nic { struct Connection; }
|
|||||||
|
|
||||||
struct Nic::Connection : Genode::Connection<Session>, Session_client
|
struct Nic::Connection : Genode::Connection<Session>, Session_client
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Genode::Capability<Nic::Session> _session(Genode::Parent &parent,
|
|
||||||
char const *label,
|
|
||||||
Genode::size_t tx_buf_size,
|
|
||||||
Genode::size_t rx_buf_size)
|
|
||||||
{
|
|
||||||
return session(parent,
|
|
||||||
"ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, rx_buf_size=%ld, label=\"%s\"",
|
|
||||||
32*1024*sizeof(long) + tx_buf_size + rx_buf_size,
|
|
||||||
CAP_QUOTA, tx_buf_size, rx_buf_size, label);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -53,27 +37,14 @@ struct Nic::Connection : Genode::Connection<Session>, Session_client
|
|||||||
Genode::size_t rx_buf_size,
|
Genode::size_t rx_buf_size,
|
||||||
char const *label = "")
|
char const *label = "")
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), label,
|
Genode::Connection<Session>(env,
|
||||||
tx_buf_size, rx_buf_size)),
|
session(env.parent(),
|
||||||
|
"ram_quota=%ld, cap_quota=%ld, "
|
||||||
|
"tx_buf_size=%ld, rx_buf_size=%ld, label=\"%s\"",
|
||||||
|
32*1024*sizeof(long) + tx_buf_size + rx_buf_size,
|
||||||
|
CAP_QUOTA, tx_buf_size, rx_buf_size, label)),
|
||||||
Session_client(cap(), *tx_block_alloc, env.rm())
|
Session_client(cap(), *tx_block_alloc, env.rm())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(Genode::Range_allocator *tx_block_alloc,
|
|
||||||
Genode::size_t tx_buf_size,
|
|
||||||
Genode::size_t rx_buf_size,
|
|
||||||
char const *label = "") __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(_session(*Genode::env_deprecated()->parent(), label,
|
|
||||||
tx_buf_size, rx_buf_size)),
|
|
||||||
Session_client(cap(), *tx_block_alloc, *Genode::env_deprecated()->rm_session())
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__NIC_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__NIC_SESSION__CONNECTION_H_ */
|
||||||
|
@ -48,21 +48,8 @@ class Nic::Session_rpc_object : public Genode::Rpc_object<Session, Session_rpc_o
|
|||||||
Genode::Rpc_entrypoint &ep)
|
Genode::Rpc_entrypoint &ep)
|
||||||
:
|
:
|
||||||
_tx(tx_ds, rm, ep),
|
_tx(tx_ds, rm, ep),
|
||||||
_rx(rx_ds, rm, *rx_buffer_alloc, ep) { }
|
_rx(rx_ds, rm, *rx_buffer_alloc, ep)
|
||||||
|
{ }
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \deprecated
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Session_rpc_object(Genode::Dataspace_capability tx_ds,
|
|
||||||
Genode::Dataspace_capability rx_ds,
|
|
||||||
Genode::Range_allocator *rx_buffer_alloc,
|
|
||||||
Genode::Rpc_entrypoint &ep) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
_tx(tx_ds, *Genode::env_deprecated()->rm_session(), ep),
|
|
||||||
_rx(rx_ds, *Genode::env_deprecated()->rm_session(), *rx_buffer_alloc, ep) { }
|
|
||||||
|
|
||||||
Genode::Capability<Tx> _tx_cap() { return _tx.cap(); }
|
Genode::Capability<Tx> _tx_cap() { return _tx.cap(); }
|
||||||
Genode::Capability<Rx> _rx_cap() { return _rx.cap(); }
|
Genode::Capability<Rx> _rx_cap() { return _rx.cap(); }
|
||||||
|
@ -41,19 +41,6 @@ class Nitpicker::Session_client : public Genode::Rpc_client<Session>
|
|||||||
_command_buffer(*_command_ds.local_addr<Command_buffer>())
|
_command_buffer(*_command_ds.local_addr<Command_buffer>())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \deprecated
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
explicit Session_client(Session_capability session) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Rpc_client<Session>(session),
|
|
||||||
_command_ds(*Genode::env_deprecated()->rm_session(), command_dataspace()),
|
|
||||||
_command_buffer(*_command_ds.local_addr<Command_buffer>())
|
|
||||||
{ }
|
|
||||||
|
|
||||||
Framebuffer::Session_capability framebuffer_session() override {
|
Framebuffer::Session_capability framebuffer_session() override {
|
||||||
return call<Rpc_framebuffer_session>(); }
|
return call<Rpc_framebuffer_session>(); }
|
||||||
|
|
||||||
|
@ -74,24 +74,6 @@ class Nitpicker::Connection : public Genode::Connection<Session>,
|
|||||||
_input(env.rm(), input_session())
|
_input(env.rm(), input_session())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(char const *label = "") __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
/* establish nitpicker session */
|
|
||||||
Genode::Connection<Session>(_connect(*Genode::env_deprecated()->parent(), label)),
|
|
||||||
Session_client(*Genode::env_deprecated()->rm_session(), cap()),
|
|
||||||
|
|
||||||
/* request frame-buffer and input sub sessions */
|
|
||||||
_framebuffer(framebuffer_session()),
|
|
||||||
_input(*Genode::env_deprecated()->rm_session(), input_session())
|
|
||||||
{ }
|
|
||||||
|
|
||||||
void buffer(Framebuffer::Mode mode, bool use_alpha) override
|
void buffer(Framebuffer::Mode mode, bool use_alpha) override
|
||||||
{
|
{
|
||||||
Genode::size_t const needed = ram_quota(mode, use_alpha);
|
Genode::size_t const needed = ram_quota(mode, use_alpha);
|
||||||
|
@ -162,14 +162,6 @@ struct Nitpicker::Session : Genode::Session
|
|||||||
|
|
||||||
bool full() const { return _num >= MAX_COMMANDS; }
|
bool full() const { return _num >= MAX_COMMANDS; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if there is no space left in the command buffer
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated use 'full' instead
|
|
||||||
*/
|
|
||||||
bool is_full() const { return full(); }
|
|
||||||
|
|
||||||
unsigned num() const
|
unsigned num() const
|
||||||
{
|
{
|
||||||
/* copy out _num value to avoid use-after-check problems */
|
/* copy out _num value to avoid use-after-check problems */
|
||||||
|
@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief Dataspace utility
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2014-01-10
|
|
||||||
*
|
|
||||||
* \deprecated This header exists for API compatibility only.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2014-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#warning os/attached_dataspace.h is deprecated, use base/attached_dataspace.h instead
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__OS__ATTACHED_DATASPACE_H_
|
|
||||||
#define _INCLUDE__OS__ATTACHED_DATASPACE_H_
|
|
||||||
|
|
||||||
#include <base/attached_dataspace.h>
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__OS__ATTACHED_DATASPACE_H_ */
|
|
@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief I/O MEM dataspace utility
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2011-05-19
|
|
||||||
*
|
|
||||||
* \deprecated This header exists for API compatibility only.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2011-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#warning os/attached_io_mem_dataspace.h is deprecated, use base/attached_io_mem_dataspace.h instead
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__OS__ATTACHED_IO_MEM_DATASPACE_H_
|
|
||||||
#define _INCLUDE__OS__ATTACHED_IO_MEM_DATASPACE_H_
|
|
||||||
|
|
||||||
#include <base/attached_io_mem_dataspace.h>
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__OS__ATTACHED_IO_MEM_DATASPACE_H_ */
|
|
@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief RAM dataspace utility
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2008-03-22
|
|
||||||
*
|
|
||||||
* \deprecated This header exists for API compatibility only.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2008-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#warning os/attached_ram_dataspace.h is deprecated, use base/attached_ram_dataspace.h instead
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__OS__ATTACHED_RAM_DATASPACE_H_
|
|
||||||
#define _INCLUDE__OS__ATTACHED_RAM_DATASPACE_H_
|
|
||||||
|
|
||||||
#include <base/attached_ram_dataspace.h>
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__OS__ATTACHED_RAM_DATASPACE_H_ */
|
|
@ -1,23 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief ROM dataspace utility
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2012-01-09
|
|
||||||
*
|
|
||||||
* \deprecated This header exists for API compatibility only.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2012-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#warning os/attached_rom_dataspace.h is deprecated, use base/attached_rom_dataspace.h instead
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__OS__ATTACHED_ROM_DATASPACE_H_
|
|
||||||
#define _INCLUDE__OS__ATTACHED_ROM_DATASPACE_H_
|
|
||||||
|
|
||||||
#include <base/attached_rom_dataspace.h>
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__OS__ATTACHED_ROM_DATASPACE_H_ */
|
|
@ -38,14 +38,6 @@ class Genode::Path_base
|
|||||||
return path[0] == '/';
|
return path[0] == '/';
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if path starts with a '/'
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated use 'absolute' instead
|
|
||||||
*/
|
|
||||||
static bool is_absolute(char const *path) { return absolute(path); }
|
|
||||||
|
|
||||||
static bool ends_with(char c, char const *path)
|
static bool ends_with(char c, char const *path)
|
||||||
{
|
{
|
||||||
return path[0] && (path[strlen(path) - 1] == c);
|
return path[0] && (path[strlen(path) - 1] == c);
|
||||||
@ -85,13 +77,6 @@ class Genode::Path_base
|
|||||||
return strlen(path) == 0;
|
return strlen(path) == 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if path contains no characters
|
|
||||||
*
|
|
||||||
* \deprecated use 'empty' instead
|
|
||||||
*/
|
|
||||||
static bool is_empty(char const *path) { return empty(path); }
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Remove superfluous single dots followed by a slash from path
|
* Remove superfluous single dots followed by a slash from path
|
||||||
*/
|
*/
|
||||||
|
@ -1,103 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief RAM session guard
|
|
||||||
* \author Stefan Kalkowski
|
|
||||||
* \date 2016-06-03
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2016-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__OS__RAM_SESSION_GUARD_H_
|
|
||||||
#define _INCLUDE__OS__RAM_SESSION_GUARD_H_
|
|
||||||
|
|
||||||
#include <base/ram_allocator.h>
|
|
||||||
#include <pd_session/capability.h>
|
|
||||||
|
|
||||||
namespace Genode { struct Ram_session_guard; }
|
|
||||||
|
|
||||||
|
|
||||||
class Genode::Ram_session_guard : public Genode::Ram_allocator
|
|
||||||
{
|
|
||||||
private:
|
|
||||||
|
|
||||||
Ram_allocator &_ram_alloc;
|
|
||||||
|
|
||||||
size_t _quota;
|
|
||||||
size_t _used = 0;
|
|
||||||
size_t _withdraw = 0;
|
|
||||||
|
|
||||||
public:
|
|
||||||
|
|
||||||
Ram_session_guard(Ram_allocator &ram_alloc, size_t quota)
|
|
||||||
: _ram_alloc(ram_alloc), _quota(quota) { }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Extend allocation limit
|
|
||||||
*/
|
|
||||||
void upgrade(size_t additional_amount) {
|
|
||||||
_quota += additional_amount; }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Consume bytes without actually allocating them
|
|
||||||
*/
|
|
||||||
bool withdraw(size_t size)
|
|
||||||
{
|
|
||||||
if ((_quota - _used) < size)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
_used += size;
|
|
||||||
_withdraw += size;
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Revert withdraw
|
|
||||||
*/
|
|
||||||
bool revert_withdraw(size_t size)
|
|
||||||
{
|
|
||||||
if (size > _withdraw)
|
|
||||||
return false;
|
|
||||||
|
|
||||||
_used -= size;
|
|
||||||
_withdraw -= size;
|
|
||||||
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
/*****************************
|
|
||||||
** Ram_allocator interface **
|
|
||||||
*****************************/
|
|
||||||
|
|
||||||
Ram_dataspace_capability alloc(size_t size,
|
|
||||||
Cache_attribute cached = CACHED) override
|
|
||||||
{
|
|
||||||
if (_used + size <= _used || _used + size > _quota)
|
|
||||||
throw Out_of_ram();
|
|
||||||
|
|
||||||
Ram_dataspace_capability cap = _ram_alloc.alloc(size, cached);
|
|
||||||
|
|
||||||
if (cap.valid())
|
|
||||||
_used += size;
|
|
||||||
|
|
||||||
return cap;
|
|
||||||
}
|
|
||||||
|
|
||||||
void free(Ram_dataspace_capability ds) override
|
|
||||||
{
|
|
||||||
size_t size = Dataspace_client(ds).size();
|
|
||||||
_ram_alloc.free(ds);
|
|
||||||
_used -= size;
|
|
||||||
}
|
|
||||||
|
|
||||||
size_t dataspace_size(Ram_dataspace_capability ds) const override
|
|
||||||
{
|
|
||||||
return _ram_alloc.dataspace_size(ds);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__OS__RAM_SESSION_GUARD_H_ */
|
|
@ -35,6 +35,8 @@ class Genode::Reporter
|
|||||||
|
|
||||||
private:
|
private:
|
||||||
|
|
||||||
|
Env &_env;
|
||||||
|
|
||||||
Name const _xml_name;
|
Name const _xml_name;
|
||||||
Name const _label;
|
Name const _label;
|
||||||
|
|
||||||
@ -45,10 +47,11 @@ class Genode::Reporter
|
|||||||
struct Connection
|
struct Connection
|
||||||
{
|
{
|
||||||
Report::Connection report;
|
Report::Connection report;
|
||||||
Attached_dataspace ds = { *env_deprecated()->rm_session(), report.dataspace() };
|
Attached_dataspace ds;
|
||||||
|
|
||||||
Connection(char const *name, size_t buffer_size)
|
Connection(Env &env, char const *name, size_t buffer_size)
|
||||||
: report(false, name, buffer_size) { }
|
: report(env, name, buffer_size), ds(env.rm(), report.dataspace())
|
||||||
|
{ }
|
||||||
};
|
};
|
||||||
|
|
||||||
Constructible<Connection> _conn { };
|
Constructible<Connection> _conn { };
|
||||||
@ -65,23 +68,10 @@ class Genode::Reporter
|
|||||||
|
|
||||||
public:
|
public:
|
||||||
|
|
||||||
Reporter(Env &, char const *xml_name, char const *label = nullptr,
|
Reporter(Env &env, char const *xml_name, char const *label = nullptr,
|
||||||
size_t buffer_size = 4096)
|
size_t buffer_size = 4096)
|
||||||
:
|
:
|
||||||
_xml_name(xml_name), _label(label ? label : xml_name),
|
_env(env), _xml_name(xml_name), _label(label ? label : xml_name),
|
||||||
_buffer_size(buffer_size)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \deprecated
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Reporter(char const *xml_name, char const *label = nullptr,
|
|
||||||
size_t buffer_size = 4096) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
_xml_name(xml_name), _label(label ? label : xml_name),
|
|
||||||
_buffer_size(buffer_size)
|
_buffer_size(buffer_size)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
@ -93,7 +83,7 @@ class Genode::Reporter
|
|||||||
if (enabled == _enabled) return;
|
if (enabled == _enabled) return;
|
||||||
|
|
||||||
if (enabled)
|
if (enabled)
|
||||||
_conn.construct(_label.string(), _buffer_size);
|
_conn.construct(_env, _label.string(), _buffer_size);
|
||||||
else
|
else
|
||||||
_conn.destruct();
|
_conn.destruct();
|
||||||
|
|
||||||
@ -105,14 +95,6 @@ class Genode::Reporter
|
|||||||
*/
|
*/
|
||||||
bool enabled() const { return _enabled; }
|
bool enabled() const { return _enabled; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if reporter is enabled
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated use 'enabled' instead
|
|
||||||
*/
|
|
||||||
bool is_enabled() const { return enabled(); }
|
|
||||||
|
|
||||||
Name name() const { return _label; }
|
Name name() const { return _label; }
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -219,7 +201,9 @@ class Genode::Expanding_reporter
|
|||||||
{
|
{
|
||||||
retry<Xml_generator::Buffer_exceeded>(
|
retry<Xml_generator::Buffer_exceeded>(
|
||||||
|
|
||||||
[&] () { _reporter->report(node.addr(), node.size()); },
|
[&] () {
|
||||||
|
node.with_raw_node([&] (char const *start, size_t length) {
|
||||||
|
_reporter->report(start, length); }); },
|
||||||
|
|
||||||
[&] () { _increase_report_buffer(); }
|
[&] () { _increase_report_buffer(); }
|
||||||
);
|
);
|
||||||
|
@ -1,42 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief Skeleton for implementing servers
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2013-09-07
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2013-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__OS__SERVER_H_
|
|
||||||
#define _INCLUDE__OS__SERVER_H_
|
|
||||||
|
|
||||||
#include <base/entrypoint.h>
|
|
||||||
#include <os/signal_rpc_dispatcher.h>
|
|
||||||
|
|
||||||
namespace Server {
|
|
||||||
|
|
||||||
using namespace Genode;
|
|
||||||
|
|
||||||
void wait_and_dispatch_one_signal();
|
|
||||||
|
|
||||||
|
|
||||||
/***********************************************************
|
|
||||||
** Functions to be provided by the server implementation **
|
|
||||||
***********************************************************/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Avoid the ambiguity of 'size_t' if the header is included from
|
|
||||||
* libc-using code.
|
|
||||||
*/
|
|
||||||
Genode::size_t stack_size();
|
|
||||||
|
|
||||||
char const *name();
|
|
||||||
|
|
||||||
void construct(Entrypoint &);
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__OS__SERVER_H_ */
|
|
@ -1,69 +0,0 @@
|
|||||||
/*
|
|
||||||
* \brief Utility for dispatching signals at at RPC entrypoint
|
|
||||||
* \author Norman Feske
|
|
||||||
* \date 2013-09-07
|
|
||||||
*
|
|
||||||
* \deprecated This header merely exists to maintain API compatibility
|
|
||||||
* to Genode 15.11. Its functionality moved to base/signal.h.
|
|
||||||
* The header will eventually be removed.
|
|
||||||
*/
|
|
||||||
|
|
||||||
/*
|
|
||||||
* Copyright (C) 2013-2017 Genode Labs GmbH
|
|
||||||
*
|
|
||||||
* This file is part of the Genode OS framework, which is distributed
|
|
||||||
* under the terms of the GNU Affero General Public License version 3.
|
|
||||||
*/
|
|
||||||
|
|
||||||
#ifndef _INCLUDE__OS__SIGNAL_RPC_DISPATCHER_H_
|
|
||||||
#define _INCLUDE__OS__SIGNAL_RPC_DISPATCHER_H_
|
|
||||||
|
|
||||||
#include <base/signal.h>
|
|
||||||
|
|
||||||
namespace Genode { template <typename, typename> class Signal_rpc_member; }
|
|
||||||
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Signal dispatcher for handling signals by an object method
|
|
||||||
*
|
|
||||||
* This utility associates object methods with signals. It is intended to
|
|
||||||
* be used as a member variable of the class that handles incoming signals
|
|
||||||
* of a certain type. The constructor takes a pointer-to-member to the
|
|
||||||
* signal-handling method as argument. If a signal is received at the
|
|
||||||
* common signal reception code, this method will be invoked by calling
|
|
||||||
* 'Signal_dispatcher_base::dispatch'.
|
|
||||||
*
|
|
||||||
* \param T type of signal-handling class
|
|
||||||
* \param EP type of entrypoint handling signal RPC
|
|
||||||
*
|
|
||||||
* \deprecated this class template is superseded by the 'Signal_handler'
|
|
||||||
* in base/signal.h
|
|
||||||
*/
|
|
||||||
template <typename T, typename EP = Genode::Entrypoint>
|
|
||||||
struct Genode::Signal_rpc_member : Genode::Signal_dispatcher_base,
|
|
||||||
Genode::Signal_context_capability
|
|
||||||
{
|
|
||||||
EP &ep;
|
|
||||||
T &obj;
|
|
||||||
void (T::*member) (unsigned);
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \param ep entrypoint managing this signal RPC
|
|
||||||
* \param obj,member object and method to call when
|
|
||||||
* the signal occurs
|
|
||||||
*/
|
|
||||||
Signal_rpc_member(EP &ep, T &obj, void (T::*member)(unsigned))
|
|
||||||
: Signal_context_capability(ep.manage(*this)),
|
|
||||||
ep(ep), obj(obj), member(member) { }
|
|
||||||
|
|
||||||
~Signal_rpc_member() { ep.dissolve(*this); }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Interface of Signal_dispatcher_base
|
|
||||||
*/
|
|
||||||
void dispatch(unsigned num) { (obj.*member)(num); }
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif /* _INCLUDE__OS__SIGNAL_RPC_DISPATCHER_H_ */
|
|
@ -30,17 +30,6 @@ struct Platform::Connection : Genode::Connection<Session>, Client
|
|||||||
: Genode::Connection<Session>(env, session(env.parent(),
|
: Genode::Connection<Session>(env, session(env.parent(),
|
||||||
"ram_quota=6K, cap_quota=%ld", CAP_QUOTA)),
|
"ram_quota=6K, cap_quota=%ld", CAP_QUOTA)),
|
||||||
Client(cap()) { }
|
Client(cap()) { }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection() __attribute__((deprecated))
|
|
||||||
: Genode::Connection<Session>(session("ram_quota=6K")),
|
|
||||||
Client(cap()) { }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__PLATFORM_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__PLATFORM_SESSION__CONNECTION_H_ */
|
||||||
|
@ -23,19 +23,6 @@ namespace Regulator { struct Connection; }
|
|||||||
|
|
||||||
struct Regulator::Connection : Genode::Connection<Session>, Session_client
|
struct Regulator::Connection : Genode::Connection<Session>, Session_client
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Genode::Capability<Regulator::Session> _session(Genode::Parent &,
|
|
||||||
char const *label,
|
|
||||||
Regulator_id regulator)
|
|
||||||
{
|
|
||||||
return session("ram_quota=8K, cap_quota=%ld, regulator=\"%s\", label=\"%s\"",
|
|
||||||
CAP_QUOTA, regulator_name_by_id(regulator), label);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*
|
*
|
||||||
@ -44,19 +31,10 @@ struct Regulator::Connection : Genode::Connection<Session>, Session_client
|
|||||||
*/
|
*/
|
||||||
Connection(Genode::Env &env, Regulator_id regulator, const char * label = "")
|
Connection(Genode::Env &env, Regulator_id regulator, const char * label = "")
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), label, regulator)),
|
Genode::Connection<Session>(env,
|
||||||
Session_client(cap())
|
session(env.parent(),
|
||||||
{ }
|
"ram_quota=8K, cap_quota=%ld, regulator=\"%s\", label=\"%s\"",
|
||||||
|
CAP_QUOTA, regulator_name_by_id(regulator), label)),
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \param regulator identifier for the specific regulator
|
|
||||||
* \param label string identifier of the client
|
|
||||||
*/
|
|
||||||
Connection(Regulator_id regulator, const char * label = "") __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(_session(*Genode::env_deprecated()->parent(), label, regulator)),
|
|
||||||
Session_client(cap())
|
Session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
@ -22,54 +22,16 @@ namespace Report { struct Connection; }
|
|||||||
|
|
||||||
struct Report::Connection : Genode::Connection<Session>, Session_client
|
struct Report::Connection : Genode::Connection<Session>, Session_client
|
||||||
{
|
{
|
||||||
enum { RAM_QUOTA = 6*4096 }; /* value used for 'Slave::Connection' */
|
enum { RAM_QUOTA = 10*1024 }; /* value used for 'Slave::Connection' */
|
||||||
|
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Genode::Capability<Report::Session>
|
|
||||||
_session(Genode::Parent &parent, char const *label, size_t buffer_size)
|
|
||||||
{
|
|
||||||
return session(parent, "label=\"%s\", ram_quota=%ld, cap_quota=%ld, buffer_size=%zd",
|
|
||||||
label, 10*1024 + buffer_size, CAP_QUOTA, buffer_size);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*/
|
|
||||||
Connection(Genode::Env &env, char const *label, size_t buffer_size = 4096)
|
Connection(Genode::Env &env, char const *label, size_t buffer_size = 4096)
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), label, buffer_size)),
|
Genode::Connection<Session>(env,
|
||||||
Session_client(cap())
|
session(env.parent(),
|
||||||
{ }
|
"label=\"%s\", ram_quota=%ld, "
|
||||||
|
"cap_quota=%ld, buffer_size=%zd",
|
||||||
/**
|
label, RAM_QUOTA + buffer_size,
|
||||||
* Constructor
|
CAP_QUOTA, buffer_size)),
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(char const *label, size_t buffer_size = 4096) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(_session(*Genode::env_deprecated()->parent(), label, buffer_size)),
|
|
||||||
Session_client(cap())
|
|
||||||
{ }
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \deprecated
|
|
||||||
* \noapi
|
|
||||||
*
|
|
||||||
* This variant solely exists to be called by deprecated functions. It
|
|
||||||
* will be removed as soon as those functions are gone.
|
|
||||||
*/
|
|
||||||
Connection(bool, char const *label, size_t buffer_size = 4096)
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(_session(*Genode::env_deprecated()->parent(), label, buffer_size)),
|
|
||||||
Session_client(cap())
|
Session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
};
|
};
|
||||||
|
@ -32,19 +32,6 @@ struct Rtc::Connection : Genode::Connection<Session>, Session_client
|
|||||||
env, session(env.parent(), "ram_quota=8K, label=\"%s\"", label)),
|
env, session(env.parent(), "ram_quota=8K, label=\"%s\"", label)),
|
||||||
Session_client(cap())
|
Session_client(cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection() __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Rtc::Session>(session("ram_quota=8K")),
|
|
||||||
Session_client(cap())
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__RTC_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__RTC_SESSION__CONNECTION_H_ */
|
||||||
|
@ -70,20 +70,6 @@ class Framebuffer::Imx_connection : public Genode::Connection<Imx_session>,
|
|||||||
mode.format())),
|
mode.format())),
|
||||||
Imx_client(cap())
|
Imx_client(cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Imx_connection(unsigned width = 0,
|
|
||||||
unsigned height = 0,
|
|
||||||
Mode::Format format = Mode::INVALID) __attribute__((deprecated))
|
|
||||||
: Genode::Connection<Imx_session>(_connect(*Genode::env_deprecated()->parent(),
|
|
||||||
width, height, format)),
|
|
||||||
Imx_client(cap()) { }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__IMX_FRAMEBUFFER_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__IMX_FRAMEBUFFER_SESSION__CONNECTION_H_ */
|
||||||
|
@ -27,25 +27,12 @@ struct Platform::Connection : Genode::Connection<Session>, Client
|
|||||||
*/
|
*/
|
||||||
Connection(Genode::Env &env)
|
Connection(Genode::Env &env)
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, session("ram_quota=16K, cap_quota=%u",
|
Genode::Connection<Session>(env, session(env.parent(),
|
||||||
|
"ram_quota=16K, cap_quota=%u",
|
||||||
CAP_QUOTA)),
|
CAP_QUOTA)),
|
||||||
Client(cap())
|
Client(cap())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection() __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(session("ram_quota=16K, cap_quota=%u",
|
|
||||||
CAP_QUOTA)),
|
|
||||||
Client(cap())
|
|
||||||
{ }
|
|
||||||
|
|
||||||
template <typename FUNC>
|
template <typename FUNC>
|
||||||
auto with_upgrade(FUNC func) -> decltype(func())
|
auto with_upgrade(FUNC func) -> decltype(func())
|
||||||
{
|
{
|
||||||
|
@ -46,12 +46,6 @@ class Terminal::Session_client : public Genode::Rpc_client<Session>
|
|||||||
_io_buffer(local_rm, call<Rpc_dataspace>())
|
_io_buffer(local_rm, call<Rpc_dataspace>())
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
Session_client(Genode::Capability<Session> cap) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Rpc_client<Session>(cap),
|
|
||||||
_io_buffer(*Genode::env_deprecated()->rm_session(), call<Rpc_dataspace>())
|
|
||||||
{ }
|
|
||||||
|
|
||||||
Size size() override { return call<Rpc_size>(); }
|
Size size() override { return call<Rpc_size>(); }
|
||||||
|
|
||||||
bool avail() override { return call<Rpc_avail>(); }
|
bool avail() override { return call<Rpc_avail>(); }
|
||||||
|
@ -56,22 +56,6 @@ struct Terminal::Connection : Genode::Connection<Session>, Session_client
|
|||||||
{
|
{
|
||||||
wait_for_connection(cap());
|
wait_for_connection(cap());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(char const *label = "") __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(session("ram_quota=%zd, label=\"%s\"",
|
|
||||||
2*4096, label)),
|
|
||||||
Session_client(*Genode::env_deprecated()->rm_session(), cap())
|
|
||||||
{
|
|
||||||
wait_for_connection(cap());
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__TERMINAL_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__TERMINAL_SESSION__CONNECTION_H_ */
|
||||||
|
@ -34,11 +34,6 @@ class Uart::Session_client : public Genode::Rpc_client<Session>
|
|||||||
Genode::Rpc_client<Session>(cap), _terminal(local_rm, cap)
|
Genode::Rpc_client<Session>(cap), _terminal(local_rm, cap)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
Session_client(Genode::Capability<Session> cap) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Rpc_client<Session>(cap), _terminal(*Genode::env_deprecated()->rm_session(), cap)
|
|
||||||
{ }
|
|
||||||
|
|
||||||
|
|
||||||
/********************
|
/********************
|
||||||
** UART interface **
|
** UART interface **
|
||||||
|
@ -32,21 +32,6 @@ struct Uart::Connection : Genode::Connection<Session>, Session_client
|
|||||||
{
|
{
|
||||||
Terminal::Connection::wait_for_connection(cap());
|
Terminal::Connection::wait_for_connection(cap());
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection() __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(session("ram_quota=%ld", 2*4096)),
|
|
||||||
Session_client(*Genode::env_deprecated()->rm_session(), cap())
|
|
||||||
{
|
|
||||||
Terminal::Connection::wait_for_connection(cap());
|
|
||||||
}
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__UART_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__UART_SESSION__CONNECTION_H_ */
|
||||||
|
@ -95,12 +95,6 @@ class Usb::Endpoint : public Endpoint_descriptor
|
|||||||
bool bulk() const { return (attributes & 0x3) == ENDPOINT_BULK; }
|
bool bulk() const { return (attributes & 0x3) == ENDPOINT_BULK; }
|
||||||
bool interrupt() const { return (attributes & 0x3) == ENDPOINT_INTERRUPT; }
|
bool interrupt() const { return (attributes & 0x3) == ENDPOINT_INTERRUPT; }
|
||||||
|
|
||||||
/*
|
|
||||||
* \deprecated use 'bulk' and 'interrupt' instead
|
|
||||||
*/
|
|
||||||
bool is_bulk() const { return bulk(); }
|
|
||||||
bool is_interrupt() const { return interrupt(); }
|
|
||||||
|
|
||||||
void dump()
|
void dump()
|
||||||
{
|
{
|
||||||
if (verbose_descr)
|
if (verbose_descr)
|
||||||
@ -331,7 +325,7 @@ class Usb::Interface : public Meta_data
|
|||||||
{
|
{
|
||||||
_check();
|
_check();
|
||||||
|
|
||||||
if (!ep.is_bulk())
|
if (!ep.bulk())
|
||||||
throw Session::Invalid_endpoint();
|
throw Session::Invalid_endpoint();
|
||||||
|
|
||||||
p.type = Usb::Packet_descriptor::BULK;
|
p.type = Usb::Packet_descriptor::BULK;
|
||||||
@ -350,7 +344,7 @@ class Usb::Interface : public Meta_data
|
|||||||
{
|
{
|
||||||
_check();
|
_check();
|
||||||
|
|
||||||
if (!ep.is_interrupt())
|
if (!ep.interrupt())
|
||||||
throw Session::Invalid_endpoint();
|
throw Session::Invalid_endpoint();
|
||||||
|
|
||||||
p.type = Usb::Packet_descriptor::IRQ;
|
p.type = Usb::Packet_descriptor::IRQ;
|
||||||
|
@ -22,19 +22,6 @@ namespace Usb { struct Connection; }
|
|||||||
|
|
||||||
struct Usb::Connection : Genode::Connection<Session>, Session_client
|
struct Usb::Connection : Genode::Connection<Session>, Session_client
|
||||||
{
|
{
|
||||||
/**
|
|
||||||
* Issue session request
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
*/
|
|
||||||
Capability<Usb::Session> _session(Genode::Parent &parent,
|
|
||||||
char const *label,
|
|
||||||
Genode::size_t tx_buf_size)
|
|
||||||
{
|
|
||||||
return session(parent, "ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"",
|
|
||||||
3 * 4096 + tx_buf_size, CAP_QUOTA, tx_buf_size, label);
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Constructor
|
* Constructor
|
||||||
*/
|
*/
|
||||||
@ -45,26 +32,12 @@ struct Usb::Connection : Genode::Connection<Session>, Session_client
|
|||||||
Genode::Signal_context_capability sigh_state_changed =
|
Genode::Signal_context_capability sigh_state_changed =
|
||||||
Genode::Signal_context_capability())
|
Genode::Signal_context_capability())
|
||||||
:
|
:
|
||||||
Genode::Connection<Session>(env, _session(env.parent(), label, tx_buf_size)),
|
Genode::Connection<Session>(env,
|
||||||
|
session(env.parent(),
|
||||||
|
"ram_quota=%ld, cap_quota=%ld, tx_buf_size=%ld, label=\"%s\"",
|
||||||
|
3 * 4096 + tx_buf_size, CAP_QUOTA, tx_buf_size, label)),
|
||||||
Session_client(cap(), *tx_block_alloc, env.rm(), sigh_state_changed)
|
Session_client(cap(), *tx_block_alloc, env.rm(), sigh_state_changed)
|
||||||
{ }
|
{ }
|
||||||
|
|
||||||
/**
|
|
||||||
* Constructor
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated Use the constructor with 'Env &' as first
|
|
||||||
* argument instead
|
|
||||||
*/
|
|
||||||
Connection(Genode::Range_allocator *tx_block_alloc,
|
|
||||||
char const *label = "",
|
|
||||||
Genode::size_t tx_buf_size = 512 * 1024,
|
|
||||||
Genode::Signal_context_capability sigh_state_changed =
|
|
||||||
Genode::Signal_context_capability()) __attribute__((deprecated))
|
|
||||||
:
|
|
||||||
Genode::Connection<Session>(_session(*Genode::env_deprecated()->parent(), label, tx_buf_size)),
|
|
||||||
Session_client(cap(), *tx_block_alloc, *Genode::env_deprecated()->rm_session(), sigh_state_changed)
|
|
||||||
{ }
|
|
||||||
};
|
};
|
||||||
|
|
||||||
#endif /* _INCLUDE__USB_SESSION__CONNECTION_H_ */
|
#endif /* _INCLUDE__USB_SESSION__CONNECTION_H_ */
|
||||||
|
@ -91,14 +91,6 @@ struct Usb::Packet_descriptor : Genode::Packet_descriptor
|
|||||||
*/
|
*/
|
||||||
bool read_transfer() { return transfer.ep & ENDPOINT_IN; }
|
bool read_transfer() { return transfer.ep & ENDPOINT_IN; }
|
||||||
|
|
||||||
/**
|
|
||||||
* Return true if packet is a read transfer
|
|
||||||
*
|
|
||||||
* \noapi
|
|
||||||
* \deprecated use 'read_transfer' instead
|
|
||||||
*/
|
|
||||||
bool is_read_transfer() { return read_transfer(); }
|
|
||||||
|
|
||||||
Packet_descriptor(off_t offset = 0, size_t size = 0)
|
Packet_descriptor(off_t offset = 0, size_t size = 0)
|
||||||
: Genode::Packet_descriptor(offset, size) { }
|
: Genode::Packet_descriptor(offset, size) { }
|
||||||
|
|
||||||
|
@ -30,12 +30,6 @@ struct Genode::Color
|
|||||||
bool opaque() const { return a == 255; }
|
bool opaque() const { return a == 255; }
|
||||||
bool transparent() const { return a == 0; }
|
bool transparent() const { return a == 0; }
|
||||||
|
|
||||||
/*
|
|
||||||
* \deprecated use 'opaque' and 'transparent' instead
|
|
||||||
*/
|
|
||||||
bool is_opaque() const { return opaque(); }
|
|
||||||
bool is_transparent() const { return transparent(); }
|
|
||||||
|
|
||||||
Color(int red, int green, int blue, int alpha = 255)
|
Color(int red, int green, int blue, int alpha = 255)
|
||||||
: r(red), g(green), b(blue), a(alpha) { }
|
: r(red), g(green), b(blue), a(alpha) { }
|
||||||
|
|
||||||
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user