📄 synch.c
字号:
/*************************************************************************** * synch.c - Software Radio module to synch / desynch * ------------------- * begin : 02/10/24 * authors : Linus Gasser * emails : linus.gasser@epfl.ch ***************************************************************************//*************************************************************************** * Changes * ------- * date - name - description * 02/10/24 - ineiti - begin * 03/01/10 - ineiti - putting synch and desynch together * 04/03/08 - ineiti - adjusted description * **************************************************************************//*************************************************************************** * * * This program is free software; you can redistribute it and/or modify * * it under the terms of the GNU General Public License as published by * * the Free Software Foundation; either version 2 of the License, or * * (at your option) any later version. * * * ***************************************************************************//** * Before two mobiles can communicate together, they need to have a common * time. This is usually done with a synchronisation-signal sent by one * mobile, that is picked up by another, which then synchronises on this * signal. In 3GPP, this is called 'primary synchronisation'. * There is one synch_send, but one synch_rcv for each of: * - STM-cards * - complex-cards (which never existed) * - ICS-cards * This is due to the different data-structures from each of the cards, and * the fact that the synchronisation is best done on the raw signal... */#include "spc.h"#define DBG_LVL 0int rcv_complex_ics_module_init(void);void rcv_complex_ics_module_exit( void );int rcv_complex_module_init(void);void rcv_complex_module_exit( void );int rcv_module_init(void);void rcv_module_exit( void );int send_module_init(void);void send_module_exit( void );/* * This function is called upon "insmod" and is used to register the * different parts of the module to the SPM. */int spc_module_init(void) { // Initialise the synch-generator module if ( send_module_init() ) { PR_DBG( 0, "Couldn't initilialise send-module!\n" ); return -1; } // Initialise the synch-reception module if ( rcv_module_init() ) { PR_DBG( 0, "Couldn't initialise rcv-module!\n" ); send_module_exit(); return -1; } // Initialise the complex synch-reception module if ( rcv_complex_module_init() ) { PR_DBG( 0, "Couldn't initialise rcv-module!\n" ); send_module_exit(); rcv_module_exit(); return -1; } // Initialise the complex ics synch-reception module if ( rcv_complex_ics_module_init() ) { PR_DBG( 0, "Couldn't initialise rcv-module!\n" ); rcv_complex_module_exit(); send_module_exit(); rcv_module_exit(); return -1; } return 0;}/* * This is called upon rmmod */void spc_module_exit( void ) { PR_DBG( 2, "Synch is going\n" ); rcv_complex_ics_module_exit(); rcv_complex_module_exit(); rcv_module_exit(); send_module_exit();}module_init( spc_module_init );module_exit( spc_module_exit );
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -