Skip to content

logo


Title: Eco.Core1 Software Component Specification

USPD: US.ECO.00013-01 90
Component Name: Eco.Core1
Short Description (max 300 char.): implements core EcoOS API, including microkenel with Interface bus
Component Use Category: MULTIPURPOSE
Component Type: DEVTOOL
CID: 000000000000000000000000000000AA
Marketplace URL: https://ip-office.com/product/8049727a-1332-46c7-bfd2-7e72b8c43f5a
Status: Draft
Modified Date: October 19, 2025
Version: 1.0

Tags: tool, kernel, microkernel

AuthorsCompany
Vladimir BashevPEERF

1. Overview

This document describes the requirements for the implementation of the Eco.Core1 component. (Component)

1.1. Introduction

Description.

1.2. Notes

  • Keywords

1.3. Links

This paragraph contains links to an information to help you understand this document:
Marketplace (registry) link: https://ecoos.dev/product/fc2511fa-fa55-47bb-9972-50aa8866e789

2. Eco.Core1 Component

The Eco.Core1 component is
The component has the following description:

3. IEcoComponentFactory Interface

3.1. IEcoComponentFactory IDL

cpp
import "ErrEcoCodes.idl "  
import "depend.idl"  
  
[  
object,  
uguid(00000000-0000-0000-0000-000000000055),  
]  
interface IEcoComponentFactory : IEcoUnknown {  
  
int16_t	Alloc	([in] IEcoUnknown *pISystem,  
 [in] IEcoUnknown *pIUnknownOuter,  
 [in] const UGUID* riid,  
 [out] voidptr_t* ppv);  
		  
int16_t	Init	([in] IEcoUnknown *pISystem,  
 [in] voidptr_t pv);  
		  
char_t*	get_Name	([in] void);  
		  
char_t*	get_Version	([in] void);  
		  
char_t*	get_Manufacturer	([in] void);  
		  
}

3.1.1. Alloc function

The function

new line

3.1.2. Init function

3.1.2. Init function

The function

3.1.3. get_Name function

The function

3.1.4 get_Version function

The function

3.1.5. get_Manufacturer function

The function

4. IEcoUnknown Interface

4.1. IEcoUnknown IDL

cpp
import "ErrEcoCodes.idl "  
import "depend.idl"  
  
[  
object,  
uguid(00000000-0000-0000-0000-0000000000AA),  
]  
interface IEcoUnknown {  
  
int16_t	QueryInterface	([in] const UGUID* riid,  
 [out] voidptr_t* ppv);  
  
uint32_t	AddRef	([in] void);  
  
uint32_t	Release	([in] void);  
  
}

4.1.1. QueryInterface function

The function

4.1.2. AddRef function

The function

4.1.3. Release function

The function

5. IEcoSystem1 Interface

5.1. IEcoSystem1 IDL

cpp
import "IEcoBase1.idl"  
  
[  
object,  
uguid(00000000-0000-0000-0000-000000000100),  
]  
interface IEcoSystem1 : IEcoUnknown {  
  
void	set_Data	([in] voidptr_t pv);  
  
void*	get_Data	([in] void);  
		  
}

5.1.1. set_Data function

The function

5.1.2. get_Data function

The function

6. IEcoConnectionPoint Interface

6.1. IEcoConnectionPoint IDL

cpp
import "IEcoBase1.idl"  
  
[  
object,  
uguid(00000003-0000-0000-C000-000000000046),  
]  
interface IEcoConnectionPoint : IEcoUnknown {  
  
int16_t	GetConnectionInterface	([out] UGUID *pIID);  
  
int16_t	GetConnectionPointContainer	([out] IEcoConnectionPointContainer** ppCPC);  
		  
int16_t	Advise	([in] IEcoUnknown* pUnkSink,  
 [out] uint32_t *pcCookie);  
		  
int16_t	Unadvise	([in] uint32_t cCookie);  
		  
int16_t	EnumConnections	([out] IEcoEnumConnections** ppEnum);  
		  
}

6.1.1. GetConnectionInterface function

The function


6.1.2. GetConnectionPointContainer function

The function

6.1.3. Advise function

The function

6.1.4. Unadvise function

The function

6.1.5. EnumConnections function

The function

7. IEcoConnectionPointContainer Interface

7.1. IEcoConnectionPointContainer IDL

cpp
import "IEcoBase1.idl"  
import "IEcoEnumConnectionPoints.idl "  
  
[  
object,  
uguid(00000005-0000-0000-C000-000000000046),  
]  
interface IEcoConnectionPointContainer : IEcoUnknown {  
  
int16_t	EnumConnectionPoints	([out] IEcoEnumConnectionPoints** ppEnum);  
  
int16_t	FindConnectionPoint	([in] const UGUID* riid,  
 [out] IEcoConnectionPoint** ppCP);  
		  
}

7.1.1. EnumConnectionPoints function

The function

7.1.2. FindConnectionPoint function

The function

8. IEcoEnumConnectionPoints Interface

8.1. IEcoEnumConnectionPoints IDL

cpp
import "IEcoBase1.idl"  
import "IEcoConnectionPoint.idl"  
  
[  
object,  
uguid(00000004-0000-0000-C000-000000000046),  
]  
interface IEcoEnumConnectionPoints : IEcoUnknown {  
  
int16_t	Next	([in] uint32_t cConnections,  
 [out] IEcoConnectionPoint** ppCP,  
 [out] uint32_t *pcFetched);  
  
int16_t	Skip	([in] uint32_t cConnections);  
		  
int16_t	Reset	([in] void);  
		  
int16_t	Clone	([out] IEcoEnumConnectionPoints** ppEnum);  
		  
}

8.1.1. Next function

The function

8.1.2. Skip function

The function

8.1.3. Reset function

The function

8.1.4. Clone function

The function

9. IEcoEnumConnections Interface

9.1. IEcoEnumConnections IDL

cpp
import "IEcoBase1.idl"  
  
[  
object,  
uguid(00000002-0000-0000-C000-000000000046),  
]  
interface IEcoEnumConnections : IEcoUnknown {  
  
int16_t	Next	([in] uint32_t cConnections,  
 [out] struct EcoConnectionData *rgcd,  
 [out] uint32_t *pcFetched);  
  
int16_t	Skip	([in] uint32_t cConnections);  
		  
int16_t	Reset	([in] void);  
		  
int16_t	Clone	([out] IEcoEnumConnections** ppEnum);  
		  
}

9.1.1 Next function

The function

9.1.2. Skip function

The function

9.1.3. Reset function

The function

9.1.4. Clone function

The function

10. IEcoError1 Interface

10.1. IEcoError1 IDL

cpp
import "IEcoBase1.idl"  
  
[  
object,  
uguid(00000000-0000-0000-0000-00000000FFFE),  
]  
interface IEcoError1 : IEcoUnknown {  
  
void	set_ErrorMode	([in] uint16_t errMode);  
  
uint16_t	get_ErrorMode	([in] void);  
		  
void	set_LastError	([in] int16_t errCode);  
		  
uint16_t	get_LastError	([in] void);  
		  
uint16_t	get_Description	([in] int16_t errCode,  
 [in | out] voidptr_t pvMessage,  
 [in | out] uint16_t* iSize);  
		  
}

10.1.1. set_ErrorMode function

The function

10.1.2. get_ErrorMode function

The function

10.1.3. set_LastError function

The function

10.1.4. get_LastError function

The function

10.1.5. get_Description function

The function

11. Error codes

The following table contains the error codes.

Error codeValueDescription
ERR_ECO_SUCCESES0x0000Operation successful.
ERR_ECO_UNEXPECTED0xFFFFUnexpected condition.
ERR_ECO_POINTER0xFFEENULL was passed incorrectly for a pointer value.
ERR_ECO_NOINTERFACE0xFFEDNo such interface supported.
ERR_ECO_COMPONENT_NOTFOUND0xFFE9The component was not found.

Appendix A: Training and Sample programs