From 7d666a843fb3c7a3970448f17fc66a0a855411d1 Mon Sep 17 00:00:00 2001 From: Petr Benes Date: Sun, 20 Feb 2011 13:15:21 +0100 Subject: [PATCH] forb: executable resources and fcb changed into dynamic libs --- fres/cbroker/Makefile.omk | 2 +- fres/cbroker/fcb.c | 14 ++------------ resources/cluster_tree/Makefile.omk | 2 +- resources/cluster_tree/frm_cluster_tree.c | 5 +---- resources/cpu_aquosa/mngr/Makefile.omk | 2 +- resources/cpu_aquosa/mngr/frm_aqcpu.c | 15 ++------------- resources/cpucg/mngr/Makefile.omk | 2 +- resources/cpucg/mngr/frm_cgcpu.c | 14 ++------------ resources/disk_bfq/mngr/Makefile.omk | 2 +- resources/disk_bfq/mngr/diskbfq_mngr.c | 6 +----- resources/dummy/Makefile.omk | 2 +- resources/dummy/frm_dummy.c | 19 +++++++------------ resources/fpga/Makefile.omk | 2 +- resources/fpga/frm_fpga.c | 5 +---- resources/item/Makefile.omk | 2 +- resources/item/frm_item.c | 6 +----- 16 files changed, 25 insertions(+), 75 deletions(-) diff --git a/fres/cbroker/Makefile.omk b/fres/cbroker/Makefile.omk index dc2166f..efcd8aa 100644 --- a/fres/cbroker/Makefile.omk +++ b/fres/cbroker/Makefile.omk @@ -1,4 +1,4 @@ -bin_PROGRAMS += fcb +shared_LIBRARIES += fcb CFLAGS += --std=gnu99 #--save-temps diff --git a/fres/cbroker/fcb.c b/fres/cbroker/fcb.c index 64180f0..f931d2e 100644 --- a/fres/cbroker/fcb.c +++ b/fres/cbroker/fcb.c @@ -1469,7 +1469,6 @@ void peer_dead_callback(const forb_orb peer_orb, const char *orb_id) } static struct option long_opts[] = { - { "daemon", optional_argument, NULL, 'd' }, { "loglevel", required_argument, NULL, 'l' }, { 0, 0, 0, 0} }; @@ -1478,7 +1477,6 @@ static void usage(void) { printf("usage: fcb [ options ]\n"); - printf(" -d, --daemon [pid-file] go to background after FORB initialization\n"); printf(" -l, --loglevel |=,...\n"); } @@ -1488,9 +1486,8 @@ int print_log_domain(ul_log_domain_t *domain, void *context) return 0; } -int main(int argc, char *argv[]) +int forb_main(forb_orb orb, int argc, char *argv[]) { - forb_orb orb; struct fcb fcb_data; fres_contract_broker fcb; forb_executor_t executor; @@ -1507,7 +1504,7 @@ int main(int argc, char *argv[]) }; int opt; - while ((opt = getopt_long(argc, argv, "d::hl:", &long_opts[0], NULL)) != EOF) { + while ((opt = getopt_long(argc, argv, "hl:", &long_opts[0], NULL)) != EOF) { switch (opt) { case 'l': if (*optarg == '?') { @@ -1521,10 +1518,6 @@ int main(int argc, char *argv[]) error(1, EINVAL, "Error parsing -l argument at char %d\n", ret); } break; - case 'd': - opt_daemon = true; - opt_pidfile = optarg; - break; case 'h': /*default:*/ usage(); @@ -1538,9 +1531,6 @@ int main(int argc, char *argv[]) if (opt_daemon) forb_daemon_prepare(opt_pidfile); - orb = forb_init(&argc, &argv, &attr); - if (!orb) error(1, errno, "FORB initialization failed"); - #if CONFIG_FCB_INET && !CONFIG_FORB_PROTO_INET_DEFAULT ret = register_inet_port(orb); if (ret) error(0, errno, "INET port registration failed"); diff --git a/resources/cluster_tree/Makefile.omk b/resources/cluster_tree/Makefile.omk index b07fd6c..2d3a576 100644 --- a/resources/cluster_tree/Makefile.omk +++ b/resources/cluster_tree/Makefile.omk @@ -3,7 +3,7 @@ default_CONFIG = CONFIG_RESOURCE_CLUSTER_TREE=y ifeq ($(CONFIG_RESOURCE_CLUSTER_TREE),y) CFLAGS += -std=gnu99 -DFRESCOR -bin_PROGRAMS = frm_cluster_tree +shared_LIBRARIES = frm_cluster_tree frm_cluster_tree_SOURCES = frm_cluster_tree.c ct_wsn.c cluster_tree_blocks.c #frm_cluster_tree.c cluster_tree_block.c frm_cluster_tree_CLIENT_IDL = cluster_tree_idl.idl diff --git a/resources/cluster_tree/frm_cluster_tree.c b/resources/cluster_tree/frm_cluster_tree.c index dc0e2ef..edf7a93 100644 --- a/resources/cluster_tree/frm_cluster_tree.c +++ b/resources/cluster_tree/frm_cluster_tree.c @@ -166,13 +166,10 @@ static const struct fres_res_manager frm = { }; -int main(int argc, char *argv[]) +int forb_main(forb_orb orb, int argc, char *argv[]) { - forb_orb orb; int ret; forb_init_attr_t attr = { .orb_id = "org.frescor.frm.cluster_tree" }; - orb = forb_init(&argc, &argv, &attr); - if (!orb) error(1, errno, "forb_init"); fres_block_register_cluster_tree(); diff --git a/resources/cpu_aquosa/mngr/Makefile.omk b/resources/cpu_aquosa/mngr/Makefile.omk index 5abd720..79f6cc8 100644 --- a/resources/cpu_aquosa/mngr/Makefile.omk +++ b/resources/cpu_aquosa/mngr/Makefile.omk @@ -1,4 +1,4 @@ -bin_PROGRAMS = frm_aqcpu +shared_LIBRARIES = frm_aqcpu frm_aqcpu_SOURCES = frm_aqcpu.c LOADLIBES += -L $(AQUOSA_ROOT)/lib -lqreslib -lqsuplib LOADLIBES += -Xlinker -rpath -Xlinker $(AQUOSA_ROOT)/lib diff --git a/resources/cpu_aquosa/mngr/frm_aqcpu.c b/resources/cpu_aquosa/mngr/frm_aqcpu.c index 381ad70..51c32d7 100644 --- a/resources/cpu_aquosa/mngr/frm_aqcpu.c +++ b/resources/cpu_aquosa/mngr/frm_aqcpu.c @@ -116,13 +116,11 @@ static void usage(void) { printf("usage: frm_aqcpu [ options ]\n"); - printf(" -d, --daemon [pid-file] go to background after FORB initialization\n"); printf(" -l, --loglevel |=,...\n"); } -int main(int argc, char *argv[]) +int forb_main(forb_orb orb, int argc, char *argv[]) { - forb_orb orb; int ret; forb_init_attr_t attr = { .orb_id = "org.frescor.frm.aqcpu" }; int opt; @@ -131,12 +129,8 @@ int main(int argc, char *argv[]) ul_logreg_domain(&ulogd_frm_aqcpu); - while ((opt = getopt_long(argc, argv, "d::hl:", &long_opts[0], NULL)) != EOF) { + while ((opt = getopt_long(argc, argv, "hl:", &long_opts[0], NULL)) != EOF) { switch (opt) { - case 'd': - opt_daemon = true; - opt_pidfile = optarg; - break; case 'l': ul_log_domain_arg2levels(optarg); break; @@ -147,11 +141,6 @@ int main(int argc, char *argv[]) } } - if (opt_daemon) - forb_daemon_prepare(opt_pidfile); - - orb = forb_init(&argc, &argv, &attr); - if (!orb) error(1, errno, "forb_init"); frm.res_id = frsh_get_local_cpu_id(); ret = frm_register_and_run(orb, &frm); diff --git a/resources/cpucg/mngr/Makefile.omk b/resources/cpucg/mngr/Makefile.omk index 7072348..6cb7aeb 100644 --- a/resources/cpucg/mngr/Makefile.omk +++ b/resources/cpucg/mngr/Makefile.omk @@ -1,4 +1,4 @@ -bin_PROGRAMS = frm_cgcpu +shared_LIBRARIES = frm_cgcpu frm_cgcpu_SOURCES = frm_cgcpu.c frm_cgcpu_LIBS = frm forb contract fosa rt ulut fcb_client lib_LOADLIBES+= frsh diff --git a/resources/cpucg/mngr/frm_cgcpu.c b/resources/cpucg/mngr/frm_cgcpu.c index f9c288b..00b7b8d 100644 --- a/resources/cpucg/mngr/frm_cgcpu.c +++ b/resources/cpucg/mngr/frm_cgcpu.c @@ -127,9 +127,8 @@ usage(void) printf(" -l, --loglevel |=,...\n"); } -int main(int argc, char *argv[]) +int forb_main(forb_orb orb, int argc, char *argv[]) { - forb_orb orb; FILE* fd; int ret; int opt; @@ -139,12 +138,8 @@ int main(int argc, char *argv[]) ul_logreg_domain(&ulogd_frm_cpucg); - while ((opt = getopt_long(argc, argv, "d::hl:", &long_opts[0], NULL)) != EOF) { + while ((opt = getopt_long(argc, argv, "hl:", &long_opts[0], NULL)) != EOF) { switch (opt) { - case 'd': - opt_daemon = true; - opt_pidfile = optarg; - break; case 'l': ul_log_domain_arg2levels(optarg); break; @@ -155,11 +150,6 @@ int main(int argc, char *argv[]) } } - if (opt_daemon) - forb_daemon_prepare(opt_pidfile); - - orb = forb_init(&argc, &argv, &attr); - if (!orb) error(1, errno, "forb_init"); if (!(fd = fopen("/proc/sys/kernel/sched_rt_period_us", "r"))) { error(1, errno, "frm_generic_run"); diff --git a/resources/disk_bfq/mngr/Makefile.omk b/resources/disk_bfq/mngr/Makefile.omk index b98d878..4a73fd9 100644 --- a/resources/disk_bfq/mngr/Makefile.omk +++ b/resources/disk_bfq/mngr/Makefile.omk @@ -1,7 +1,7 @@ LFS:=$(shell getconf LFS_CFLAGS) CFLAGS += $(LFS) -bin_PROGRAMS = frm_diskbfq +shared_LIBRARIES = frm_diskbfq frm_diskbfq_SOURCES = diskbfq_mngr.c diskbfq_th.c frm_diskbfq_LIBS = frm forb contract fosa m rt ulut fcb_client frshdiskbfq diff --git a/resources/disk_bfq/mngr/diskbfq_mngr.c b/resources/disk_bfq/mngr/diskbfq_mngr.c index 62a9580..c1a4240 100644 --- a/resources/disk_bfq/mngr/diskbfq_mngr.c +++ b/resources/disk_bfq/mngr/diskbfq_mngr.c @@ -175,10 +175,9 @@ static struct fres_res_manager frm = { .priv = &disk }; -int main(int argc, char *argv[]) +int forb_main(forb_orb orb, int argc, char *argv[]) { forb_init_attr_t attr = { .orb_id = "org.frescor.frm.diskbfq" }; - forb_orb orb; FILE* fd; int readers = 4; char disk_dev[40] = {0}, *disk_name = disk_dev; @@ -222,9 +221,6 @@ err_usage: if (!*disk_name) error(1, 0, "Disk device not specified"); - orb = forb_init(&argc, &argv, &attr); - if (!orb) error(1, errno, "forb_init"); - /* * Check if BFQ I/O scheduler is available * in the system. diff --git a/resources/dummy/Makefile.omk b/resources/dummy/Makefile.omk index afbebe7..f29d52c 100644 --- a/resources/dummy/Makefile.omk +++ b/resources/dummy/Makefile.omk @@ -2,7 +2,7 @@ default_CONFIG += CONFIG_RESOURCE_DUMMY=y default_CONFIG += CONFIG_RESOURCE_DUMMY_VERBOSE=y LOCAL_CONFIG_H = dummy_config.h -bin_PROGRAMS = frm_dummy +shared_LIBRARIES = frm_dummy frm_dummy_SOURCES = frm_dummy.c dummy_block.c frm_dummy_CLIENT_IDL = res_dummy_idl.idl frm_dummy_LIBS = frm forb contract fosa rt ulut fcb_client diff --git a/resources/dummy/frm_dummy.c b/resources/dummy/frm_dummy.c index f9ff170..1314d03 100644 --- a/resources/dummy/frm_dummy.c +++ b/resources/dummy/frm_dummy.c @@ -162,9 +162,8 @@ static struct fres_res_manager frm = { }; static struct option long_opts[] = { - { "daemon", optional_argument, NULL, 'd' }, { "loglevel", 1, 0, 'l' }, - { "id", required_argument, 0, 'i' }, +// { "id", required_argument, 0, 'i' }, { "accept-all", 0, 0, 'a' }, { "help", 0, 0, 'h' }, { 0, 0, 0, 0} @@ -176,19 +175,18 @@ usage(void) printf("usage: frm_dummy [ options ]\n"); printf(" -a, --accept-all Accepts all contracts\n"); printf(" -d, --daemon [pid-file] go to background after FORB initialization\n"); - printf(" -i, --id Use a different id that the default (%d)\n", DUMMY_RESOURCE_ID); +/* printf(" -i, --id Use a different id that the default (%d)\n", DUMMY_RESOURCE_ID);*/ printf(" -h, --help Display this help\n"); printf(" -l, --loglevel |=,...\n"); } -int main(int argc, char *argv[]) +int forb_main(forb_orb orb, int argc, char *argv[]) { - forb_orb orb; int ret; forb_init_attr_t attr = { .orb_id = "org.frescor.frm.dummy" }; int opt; - while ((opt = getopt_long(argc, argv, "ad::i:l:h", &long_opts[0], NULL)) != EOF) { + while ((opt = getopt_long(argc, argv, "ai:l:h", &long_opts[0], NULL)) != EOF) { switch (opt) { case 'a': opt_accept_all = true; @@ -196,9 +194,9 @@ int main(int argc, char *argv[]) opt_daemon = true; opt_pidfile = optarg; break; - case 'i': - opt_res_id = atoi(optarg); - break; +// case 'i': +// opt_res_id = atoi(optarg); +// break; case 'l': ul_log_domain_arg2levels(optarg); break; @@ -212,9 +210,6 @@ int main(int argc, char *argv[]) if (opt_daemon) forb_daemon_prepare(opt_pidfile); - orb = forb_init(&argc, &argv, &attr); - if (!orb) error(1, errno, "forb_init"); - /* Register fres_block_dummy_sched to contract handling * functions */ fres_block_register_dummy(); diff --git a/resources/fpga/Makefile.omk b/resources/fpga/Makefile.omk index 5c85569..7cdeca8 100644 --- a/resources/fpga/Makefile.omk +++ b/resources/fpga/Makefile.omk @@ -4,7 +4,7 @@ default_CONFIG += CONFIG_FPGA_CORES=FRES_FPGA_CORRELATOR508_m ifeq ($(CONFIG_RESOURCE_FPGA),y) LOCAL_CONFIG_H = fpga_config.h -bin_PROGRAMS = frm_fpga +shared_LIBRARIES = frm_fpga frm_fpga_SOURCES = frm_fpga.c fpga_block.c frm_fpga_CLIENT_IDL = res_fpga_idl.idl frm_fpga_LIBS = frm forb contract fosa rt ulut fcb_client diff --git a/resources/fpga/frm_fpga.c b/resources/fpga/frm_fpga.c index 9043502..2609e10 100644 --- a/resources/fpga/frm_fpga.c +++ b/resources/fpga/frm_fpga.c @@ -110,13 +110,10 @@ static const struct fres_res_manager frm = { }; -int main(int argc, char *argv[]) +int forb_main(forb_orb orb, int argc, char *argv[]) { - forb_orb orb; int ret; forb_init_attr_t attr = { .orb_id = "org.frescor.frm.fpga" }; - orb = forb_init(&argc, &argv, &attr); - if (!orb) error(1, errno, "forb_init"); /* Register fres_block_fpga to contract handling * functions */ diff --git a/resources/item/Makefile.omk b/resources/item/Makefile.omk index 7d13e23..aec0af9 100644 --- a/resources/item/Makefile.omk +++ b/resources/item/Makefile.omk @@ -3,7 +3,7 @@ default_CONFIG = CONFIG_RESOURCE_ITEM=y ifeq ($(CONFIG_RESOURCE_ITEM),y) CFLAGS += -std=gnu99 -bin_PROGRAMS = frm_item +shared_LIBRARIES = frm_item frm_item_SOURCES = frm_item.c item_blocks.c FWSN.c serialsource.c frm_item_SERVER_IDL = item_idl.idl frm_item_LIBS = frm forb contract fosa rt ulut fcb_client m diff --git a/resources/item/frm_item.c b/resources/item/frm_item.c index 4b02479..04eb850 100644 --- a/resources/item/frm_item.c +++ b/resources/item/frm_item.c @@ -224,9 +224,8 @@ static const struct forb_fres_item_scheduler_impl item_scheduler_impl = { struct item_status item_status; -int main(int argc, char *argv[]) +int forb_main(forb_orb orb, int argc, char *argv[]) { - forb_orb orb; int ret; forb_executor_t executor; fres_resource_manager frm; @@ -240,9 +239,6 @@ int main(int argc, char *argv[]) char *parametrsITEM[] ={NULL,device,platform}; forb_init_attr_t attr = { .orb_id = "org.frescor.frm.item" }; - orb = forb_init(&argc, &argv, &attr); - if (!orb) error(1, errno, "forb_init"); - fres_block_register_item(); -- 2.39.2