xref: /f-stack/lib/ff_subr_epoch.c (revision 8a60d0f5)
16a7724daSfengbojiang /*
2*2317ada5Sfengbojiang  * Copyright (C) 2017-2021 THL A29 Limited, a Tencent company.
36a7724daSfengbojiang  * All rights reserved.
46a7724daSfengbojiang  *
56a7724daSfengbojiang  * Redistribution and use in source and binary forms, with or without
66a7724daSfengbojiang  * modification, are permitted provided that the following conditions are met:
76a7724daSfengbojiang  *
86a7724daSfengbojiang  * 1. Redistributions of source code must retain the above copyright notice, this
96a7724daSfengbojiang  *   list of conditions and the following disclaimer.
106a7724daSfengbojiang  * 2. Redistributions in binary form must reproduce the above copyright notice,
116a7724daSfengbojiang  *   this list of conditions and the following disclaimer in the documentation
126a7724daSfengbojiang  *   and/or other materials provided with the distribution.
136a7724daSfengbojiang  *
146a7724daSfengbojiang  * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
156a7724daSfengbojiang  * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
166a7724daSfengbojiang  * WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
176a7724daSfengbojiang  * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR
186a7724daSfengbojiang  * ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
196a7724daSfengbojiang  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
206a7724daSfengbojiang  * LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
216a7724daSfengbojiang  * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
226a7724daSfengbojiang  * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
236a7724daSfengbojiang  * SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
246a7724daSfengbojiang  */
256a7724daSfengbojiang 
266a7724daSfengbojiang #include <sys/cdefs.h>
276a7724daSfengbojiang #include <sys/param.h>
286a7724daSfengbojiang #include <sys/systm.h>
296a7724daSfengbojiang #include <sys/kernel.h>
306a7724daSfengbojiang #include <sys/ktr.h>
316a7724daSfengbojiang #include <sys/limits.h>
326a7724daSfengbojiang #include <sys/lock.h>
336a7724daSfengbojiang #include <sys/mutex.h>
346a7724daSfengbojiang #include <sys/proc.h>
356a7724daSfengbojiang #include <sys/malloc.h>
366a7724daSfengbojiang #include <sys/resourcevar.h>
376a7724daSfengbojiang #include <sys/sched.h>
386a7724daSfengbojiang #include <sys/sysctl.h>
396a7724daSfengbojiang #include <sys/uio.h>
406a7724daSfengbojiang #include <sys/epoch.h>
416a7724daSfengbojiang 
426a7724daSfengbojiang #include "ff_host_interface.h"
436a7724daSfengbojiang 
446a7724daSfengbojiang struct epoch {
456a7724daSfengbojiang };
466a7724daSfengbojiang 
476a7724daSfengbojiang static struct epoch epoch_array[1];
486a7724daSfengbojiang 
496a7724daSfengbojiang void
_epoch_enter_preempt(epoch_t epoch,epoch_tracker_t et EPOCH_FILE_LINE)506a7724daSfengbojiang _epoch_enter_preempt(epoch_t epoch, epoch_tracker_t et EPOCH_FILE_LINE)
516a7724daSfengbojiang {
526a7724daSfengbojiang 
536a7724daSfengbojiang }
546a7724daSfengbojiang 
556a7724daSfengbojiang void
_epoch_exit_preempt(epoch_t epoch,epoch_tracker_t et EPOCH_FILE_LINE)566a7724daSfengbojiang _epoch_exit_preempt(epoch_t epoch, epoch_tracker_t et EPOCH_FILE_LINE)
576a7724daSfengbojiang {
586a7724daSfengbojiang 
596a7724daSfengbojiang }
606a7724daSfengbojiang 
616a7724daSfengbojiang void
epoch_wait_preempt(epoch_t epoch)626a7724daSfengbojiang epoch_wait_preempt(epoch_t epoch)
636a7724daSfengbojiang {
646a7724daSfengbojiang 
656a7724daSfengbojiang }
666a7724daSfengbojiang 
676a7724daSfengbojiang void
epoch_call(epoch_t epoch,epoch_callback_t callback,epoch_context_t ctx)686a7724daSfengbojiang epoch_call(epoch_t epoch, epoch_callback_t callback, epoch_context_t ctx)
696a7724daSfengbojiang {
706a7724daSfengbojiang 
716a7724daSfengbojiang }
726a7724daSfengbojiang 
736a7724daSfengbojiang epoch_t
epoch_alloc(const char * name,int flags)746a7724daSfengbojiang epoch_alloc(const char *name, int flags)
756a7724daSfengbojiang {
766a7724daSfengbojiang     return &epoch_array[0];
776a7724daSfengbojiang }
786a7724daSfengbojiang 
796a7724daSfengbojiang void
epoch_drain_callbacks(epoch_t epoch)806a7724daSfengbojiang epoch_drain_callbacks(epoch_t epoch)
816a7724daSfengbojiang {
826a7724daSfengbojiang 
836a7724daSfengbojiang }
84