⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.c

📁 This a framework to test new ideas in transmission technology. Actual development is a LDPC-coder in
💻 C
字号:
/** * A simple test of the user-space program */#include <pthread.h>#include <stdio.h>#include <stdlib.h>#include <unistd.h>#include <string.h>#include "user_dl.h"struct par {  int argc;  char **argv;};#define qprintf if ( !quiet ) printfvoid *thr_main( void *a ) {  struct par *params = a;  int argc = params->argc;  char **argv = params->argv;  int arg, quiet = 1, quit = 1, i;  for ( arg = 1; arg < argc; arg++ ) {    if ( strcmp( argv[ arg ], "-v" ) == 0 ) {      quiet = 0;    } else if ( strcmp( argv[ arg ], "-q" ) == 0 ) {      quiet = 1;    } else if ( strcmp( argv[ arg ], "-s" ) == 0 ) {      qprintf( "loading: user, memory, dbg, cdb, sdb, std\n" );      loadModule( "user" );      loadModule( "memory" );      loadModule( "std" );      loadModule( "cdb" );      loadModule( "sdb" );      loadModule( "dbg" );    } else if ( strcmp( argv[ arg ], "-t" ) == 0 ) {      if ( ++arg < argc ) {        qprintf( "Testing %s\n", argv[ arg ] );        loadModule( argv[ arg ] );      } else {        printf( "need parameter afer '-t'\n" );      }    } else if ( strcmp( argv[ arg ], "--help" ) == 0 ) {      printf( "Usage of %s:\n", *argv );      printf( "\t-v\tverbose - show some debugging-messages\n"	      "\t-s\tstandard modules -> memory, dbg, cdb, sdb\n"              "\t-t name\ttest module name\n"              "\t-w time\ttime to wait for unloading module, 0 for eternity\n"              "\tname\tmodule to load\n\n" );    } else if ( strcmp( argv[ arg ], "-w" ) == 0 ) {      if ( ++arg < argc ) {        if ( argv[ arg ] ) {          i = atoi( argv[ arg ] );          if ( i > 0 ) {            qprintf( "Waiting %is\n", i );            sleep( i );          } else {            qprintf( "Not quitting\n" );            quit = 0;          }        }      } else {        printf( "need parameter after '-w'\n" );      }    } else {      qprintf( "Loading %s\n", argv[ arg ] );      loadModule( argv[ arg ] );    }  }  if ( !quit ) {    qprintf( "Waiting forever\n" );    // So that in the debugger we can set quit to 1 and see what'll happen...    while ( !quit )      sleep(1);  }  qprintf( "Going to quit\n" );  return 0;}int main(int argc, char **argv) {  pthread_t t;  struct par p;  pthread_attr_t attr;  p.argc = argc;  p.argv = argv;  user_dl_init();  pthread_attr_init( &attr );  if ( pthread_create( &t, &attr, thr_main, &p ) < 0 ) {    printf( "Couldn't initilise basic-thread\n" );    return -1;  }  pthread_attr_destroy( &attr );  pthread_join( t, NULL );  pthread_cancel( t );  user_dl_fini();  return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -