/programs/system/kobra/trunk/stdlib.c |
---|
File deleted |
/programs/system/kobra/trunk/stdlib.h |
---|
File deleted |
/programs/system/kobra/trunk/malloc.h |
---|
File deleted |
/programs/system/kobra/trunk/malloc.c |
---|
File deleted |
/programs/system/kobra/trunk/heap.c |
---|
File deleted |
/programs/system/kobra/trunk/defs.h |
---|
File deleted |
/programs/system/kobra/trunk/heap.h |
---|
File deleted |
/programs/system/kobra/trunk/kolibri.c |
---|
File deleted |
/programs/system/kobra/trunk/kolibri.h |
---|
File deleted |
/programs/system/kobra/trunk/Makefile |
---|
1,5 → 1,9 |
ROOT=../../../develop/libraries/framework/trunk |
include ../../../develop/libraries/framework/trunk/config.mk |
# Note that kobra_st.o MUST be first and kobra.o last. |
OBJECTS=kobra_st.o heap.o malloc.o stdlib.o kolibri.o kobra.o |
OBJECTS=kobra_st.o $(ROOT)/stdlib/heap.o $(ROOT)/stdlib/malloc.o $(ROOT)/stdlib/stdlib.o $(ROOT)/kolibri/kolibri.o $(ROOT)/libIPC/ipc.o kobra.o |
# Set real path to kolibri.img if you want to use install option |
KOLIBRI_IMG=../../../../../../0.7.x-night/kolibri.img |
7,27 → 11,27 |
# Path to kobra.kex on floppy (directory should be created before installing) |
DESTDIR=kobra/ |
CC=gcc |
AS=gcc |
LD=ld |
OBJCOPY=objcopy |
READELF=readelf |
MCOPY=mcopy |
RM=rm -rf |
# CC=gcc |
# AS=gcc |
# LD=ld |
# OBJCOPY=objcopy |
# READELF=readelf |
# MCOPY=mcopy |
# RM=rm -rf |
CFLAGS=-c -m32 -O2 |
ASFLAGS=-c -m32 |
LDFLAGS=-nostdlib -T kolibri.ld -melf_i386 |
# CFLAGS=-c -m32 -O2 |
# ASFLAGS=-c -m32 |
# LDFLAGS=-nostdlib -T kolibri.ld -melf_i386 |
OBJCOPYFLAGS=-O binary |
READELFFLAGS=--syms |
MCOPYFLAGS=-D o |
.c.o: |
$(CC) $(CFLAGS) $< |
# .c.o: |
# $(CC) $(CFLAGS) $< |
# |
# .s.o: |
# $(AS) $(ASFLAGS) $< |
.s.o: |
$(AS) $(ASFLAGS) $< |
all: $(OBJECTS) |
$(LD) $(LDFLAGS) -o kobra.elf $(OBJECTS) |
$(OBJCOPY) $(OBJCOPYFLAGS) kobra.elf kobra.kex |
/programs/system/kobra/trunk/history.txt |
---|
1,7 → 1,11 |
==================== ãá᪨© ==================== |
0.1.1 - 25.11.2009 - vkos |
* ¥à¥å®¤ libIPC, ¯¥à¥®á ¢á¯®¬®£ ⥫ìëå ä ©«®¢ ¢ framework |
0.1 - 26.10.2009 - vkos |
+ ¥ «¨§®¢ ë ¡ §®¢ë¥ äãªæ¨¨: ॣ¨áâà æ¨ï, ¢áâ㯫¥¨¥/¢ë室 ¨§ £à㯯ë, à áá뫪 á®®¡é¥¨© |
==================== English ==================== |
0.1.1 - 25.11.2009 - vkos |
* Moved to libIPC, some files moved to framework |
0.1 - 26.10.2009 - vkos |
+ Base functions are realised: registration, joining/leaving group, message distribution |
/programs/system/kobra/trunk/kobra.c |
---|
18,11 → 18,12 |
***************************************************************************************************/ |
#include "kobra.h" |
#include "heap.h" |
#include "malloc.h" |
#include "kolibri.h" |
#include "defs.h" |
#include "stdlib.h" |
#include <heap.h> |
#include <malloc.h> |
#include <kolibri.h> |
#include <defs.h> |
#include <stdlib.h> |
#include <ipc.h> |
group_list_t *main_group_list; |
thread_list_t *main_thread_list; |
55,21 → 56,22 |
main_group_list->thread_list = main_thread_list = new_thread_list(kolibri_get_my_tid()); |
main_thread_list->next = main_thread_list->previos = main_thread_list; |
kolibri_IPC_init(malloc(0x1000), 0x1000); |
kolibri_IPC_unlock(); |
IPCInit(); |
// kolibri_IPC_unlock(); |
// Set event mask |
kolibri_set_event_mask(KOLIBRI_IPC_EVENT_MASK); |
// kolibri_event_set_mask(KOLIBRI_IPC_EVENT_MASK); |
while (1) { |
if (kolibri_event_wait() != KOLIBRI_IPC_EVENT) { // Just ignore this error |
continue; |
Message *msg = IPCWaitMessage(-1); |
// if (kolibri_event_wait() != KOLIBRI_IPC_EVENT) { // Just ignore this error |
// continue; |
// } |
message_handle(msg); |
free(msg); |
// kolibri_IPC_clear_buff(); |
} |
message_handle(kolibri_IPC_get_next_message()); |
kolibri_IPC_clear_buff(); |
} |
} |
void message_handle(kolibri_IPC_message_t *message){ |
char *msg = (char *)message+sizeof(kolibri_IPC_message_t); |
208,7 → 210,7 |
memcpy(msg+4, message, length); |
do { |
kolibri_IPC_send(thread->tid, msg, length+sizeof(int)); |
IPCSend(thread->tid, msg, length+sizeof(int)); // Here may be some errror handler |
thread = thread->next; |
} while (thread != thread_list); |
} |
/programs/system/kobra/trunk/kobra.h |
---|
21,7 → 21,8 |
#ifndef _KOBRA_H_ |
#define _KOBRA_H_ |
#include "kolibri.h" |
#include <kolibri.h> |
#include <ipc.h> |
#define KOBRA_CMD_REGISTER 'R' |
#define KOBRA_CMD_JOIN 'J' |
/programs/system/kobra/trunk/readme.txt |
---|
1,5 → 1,5 |
==================== ãá᪨© ==================== |
¥àá¨ï: 0.1 |
¥àá¨ï: 0.1.1 |
Kobra (Kolibri Bus for Reaching Applications) - ¤¥¬® (á¥à¢¥à), ¯®§¢®«ïî騩 ¯à¨«®¦¥¨ï¬ ¯à®é¥ ®¡é âìáï ¤àã£ á ¤à㣮¬. |
«ï à ¡®âë á Kobra ¥®¡å®¤¨¬® § ॣ¨áâà¨à®¢ âìáï á¥à¢¥à¥ (ç¥à¥§ IPC). ®á«¥ ॣ¨áâà 樨 ¯à¨«®¦¥¨î ¤®áâã¯ë á«¥¤ãî騥 äãªæ¨¨: |
-áâ㯨âì ¢ £à㯯㠯®â®ª®¢ (¥á«¨ ¥â - ᮧ¤ ñâáï) |
11,7 → 11,7 |
ਬ¥à®¢ à ¡®âë ¯®ª ¥â, ®¤ ª® ¢ ¡«¨¦ ©è¥¥ ¢à¥¬ï ¨á¯®«ì§®¢ ¨¥ Kobra ¡ã¤¥â ॠ«¨§®¢ ® ¢ Launch ¨ ¢ ®¢®¬ åà ¨â¥«¥ íªà . |
==================== English ==================== |
Version: 0.1 |
Version: 0.1.1 |
Kobra (Kolibri Bus for Reaching Applications) is a daemon (server), which allows applications to easier communicate with each other. |
For working with Kobra application should register on server (via IPC). After registration following functions are available for application: |
-Join thread group (if there is no such group, it will be created) |