linux arch 提供的函数与宏

以 https://blog.csdn.net/u011011827/article/details/115381030 中
的 s3c6410 ok6410 为例
注意: arch/下只有arm目录 // 参考 https://github.com/lisider/linux/tree/ok6410a-linux-5.11 中的 ./do.sh simple
注意: arch/arm/boot/compressed 目录需被删除
脚本为https://github.com/lisider/linux-arch-pharse

arch/arm 需要为架构无关函数提供哪些回调函数和宏

函数
函数 mem
arch_get_unmapped_area
arch_get_unmapped_area_topdown
arch_match_cpu_phys_id
arch_memremap_wb
arch_vma_name
copy_to_user_page
csum_tcpudp_magic
early_ioremap_init
flush_cache_mm
flush_cache_page
flush_dcache_page
flush_kernel_dcache_page
free_initmem
get_gate_vma
in_gate_area_no_mm
ioport_map
ioport_unmap
ioremap
ioremap_cache
ioremap_wc
iounmap
pci_iounmap
pci_remap_cfgspace
pfn_valid
pgd_free
phys_mem_access_prot
pte_alloc_one
pte_alloc_one_kernel
set_memory_nx
set_memory_ro
set_memory_rw
set_memory_x
switch_mm
valid_mmap_phys_addr_range
valid_phys_addr_range
函数 cpu
abort
arch_cpu_idle
arch_cpu_idle_enter
arch_cpu_idle_exit
arch_cpu_idle_prepare
arch_probe_nr_irqs
arch_show_interrupts
arch_sync_dma_for_cpu
flush_cache_range
函数 其他
arch_futex_atomic_op_inuser
arch_setup_dma_ops
arch_sync_dma_for_device
arch_teardown_dma_ops
calibrate_delay_is_known
calibration_delay_done
check_bugs
__clear_user
csum_and_copy_from_user
csum_ipv6_magic
exit_thread
flush_ptrace_hw_breakpoint
futex_atomic_cmpxchg_inatomic
in_gate_area
init_new_context
NOKPROBE_SYMBOL
raw_copy_from_user
raw_copy_to_user
read_persistent_clock64
s3c_pm_arch_update_uart
smp_setup_processor_id



宏 SYSCALL number
311,类似 __NR_accept
宏 SIGNAL number
30,类似 SIGINT
宏 atomic
atomic64_add_return_relaxed
atomic64_andnot
atomic64_cmpxchg_relaxed
atomic64_dec_if_positive
atomic64_fetch_add_relaxed
atomic64_fetch_add_unless
atomic64_fetch_andnot_relaxed
atomic64_fetch_and_relaxed
ATOMIC64_FETCH_OP
atomic64_fetch_or_relaxed
atomic64_fetch_sub_relaxed
atomic64_fetch_xor_relaxed
ATOMIC64_INIT
ATOMIC64_OP
ATOMIC64_OP_RETURN
ATOMIC64_OPS
atomic64_sub_return_relaxed
atomic64_xchg_relaxed
atomic_add_return_relaxed
atomic_andnot
atomic_cmpxchg_relaxed
atomic_fetch_add_relaxed
atomic_fetch_add_unless
atomic_fetch_andnot
atomic_fetch_andnot_relaxed
atomic_fetch_and_relaxed
ATOMIC_FETCH_OP
atomic_fetch_or_relaxed
atomic_fetch_sub_relaxed
atomic_fetch_xor_relaxed
ATOMIC_OP
ATOMIC_OP_RETURN
atomic_read
atomic_set
atomic_sub_return_relaxed
atomic_xchg
cmpxchg64_local
cmpxchg64_relaxed
xchg
xchg_relaxed
宏 mem
activate_mm
arch_clear_hugepage_flags
ARCH_IMPLEMENTS_FLUSH_DCACHE_PAGE
arch_mmap_check
boot_pfn_to_page
boot_phys_to_phys
clear_page
clear_user_highpage
clear_user_page
copy_from_user_page
copy_page
copy_user_page
FIXMAP_PAGE_IO
FIXMAP_PAGE_NOCACHE
FIXMAP_PAGE_NORMAL
FIXMAP_PAGE_RO
flush_cache_dup_mm
flush_cache_mm
flush_dcache_mmap_unlock
flush_icache_page
flush_tlb_mm
MAX_POSSIBLE_PHYSMEM_BITS
PAGE_KERNEL_EXEC
PAGE_MASK
PAGE_OFFSET
PAGE_SHIFT
PAGE_SIZE
__PAGETABLE_PMD_FOLDED
page_to_boot_pfn
page_to_phys
__pgd
pgd_bad
pgd_clear
pgd_none
pgd_present
pgd_val
__pgprot
pgprot_device
pgprot_noncached
pgprot_val
pgprot_writecombine
phys_to_boot_phys
phys_to_virt
__pmd
pmd_alloc_one
pmd_free
pmd_leaf
PMD_MASK
pmd_offset
PMD_SHIFT
PMD_SIZE
pmd_trans_huge
pmd_val
pmd_write
__pte
pte_accessible
pte_access_permitted
PTE_HWTABLE_PTRS
pte_same
pte_val
PTRS_PER_PMD
pud_bad
pud_clear
pud_page
pud_populate
pud_present
pud_write
set_pud
USER_PGTABLES_CEILING
virt_addr_valid
virt_to_page
virt_to_pfn
__pa_symbol
宏 IO
ARCH_HAS_READ_CURRENT_TIMER
ARCH_NR_GPIOS
change_bit
clear_bit
elf_read_implies_exec
find_first_bit
find_first_zero_bit
find_first_zero_bit_le
find_next_bit
find_next_bit_le
find_next_zero_bit
find_next_zero_bit_le
FIOQSIZE
gpio_set_value
inb
inl
INLINE_COPY_FROM_USER
INLINE_COPY_TO_USER
insl
insw
inw
ioport_unmap
ioread16be
ioread32be
ioremap
ioremap_cache
IOREMAP_MAX_ORDER
ioremap_wc
ioremap_wt
IO_SPACE_LIMIT
iounmap
iowrite16be
iowrite32be
memcpy_fromio
memcpy_toio
memset_io
outb
outl
outsl
outsw
outw
PCI_IOBASE
__raw_readb
__raw_readl
__raw_readw
__raw_writeb
__raw_writel
__raw_writew
readb
readb_relaxed
readl
readl_relaxed
__read_mostly
readsl
readsw
readw
readw_relaxed
set_bit
test_and_change_bit
test_and_clear_bit
test_and_set_bit
writeb_relaxed
writel
writel_relaxed
writesb
writesl
writesw
writew
writew_relaxed
宏 CPU
arch_scale_cpu_capacity
cpu_feature
cpu_relax
flush_cache_all
flush_icache_range
flush_icache_user_range
L1_CACHE_BYTES
L1_CACHE_SHIFT
__my_cpu_offset
tlb_flush
宏 barrier
dma_rmb
dma_wmb
mb
rmb
__smp_mb
__smp_rmb
__smp_wmb
wmb
宏 bug
access_ok
BUG
check_bugs
__clear_user
__get_user
get_user
__put_user
put_user
uaccess_kernel
宏 其他
abort
__ALIGN_STR
__arch_get_k_vdso_data
__ARCH_HAS_SA_RESTORER
arch_kmap_local_high_get
arch_kmap_local_post_map
arch_memremap_wb
ARCH_PFN_OFFSET
__ARCH_RW_LOCK_UNLOCKED
arch_scale_freq_invariant
arch_scale_thermal_pressure
arch_set_freq_scale
arch_set_thermal_pressure
ARCH_SLAB_MINALIGN
arch_specific_insn
arch_spin_is_contended
__ARCH_SPIN_LOCK_UNLOCKED
ARCH_SUPPORTS_FTRACE_OPS
__arch_sync_vdso_data
__ARCH_UAPI_SA_FLAGS
__arch_xprod_64
array_index_mask_nospec
COMMAND_LINE_SIZE
CREATE_TRACE_POINTS
current_pt_regs
DBG_MAX_REG_NUM
__div64_32
__div64_const32_is_OK
do_div
elf_check_fdpic
ENDPROC
finish_arch_post_lock_switch
ftrace_return_address
get_cycles
get_fs
get_unaligned
KERNEL_DS
__kernel_ipc_pid_t
__kernel_mode_t
__kernel_old_dev_t
__kernel_uid_t
MAX_DMA_ADDRESS
MAX_UDELAY_MS
memcpy
memmove
memset
MHZ
MINSIGSTKSZ
msg
name
nop
_NSIG
_NSIG_BPW
_NSIG_WORDS
O_DIRECTORY
O_LARGEFILE
O_NOFOLLOW
op
perf_arch_fetch_caller_regs
prep_zero_mask
put_unaligned
R_ARM_CALL
R_ARM_JUMP24
R_ARM_THM_CALL
R_ARM_THM_JUMP24
raw_smp_processor_id
SET_PERSONALITY
SHMLBA
STAT_HAVE_NSEC
__SWAB_64_THRU_32__
switch_to
t
tp
udelay
USER_DS
VGA_MAP_MEM
vmcore_elf64_check_arch
VM_DATA_DEFAULT_FLAGS
W
WORD_AT_A_TIME_CONSTANTS
xip_iprefetch
xlate_dev_kmem_ptr
xlate_dev_mem_ptr
zero_bytemask

更新

环境设置(设置global不检索arch目录)
$dpkg -L global |grep conf
/usr/share/doc/global/examples/gtags.conf.gz 

$sudo gzip -d /usr/share/doc/global/examples/gtags.conf.gz 
$cp /usr/share/doc/global/examples/gtags.conf  ~/.globalrc

修改为如下 // 加了一个arch/ , 则 gtags 运行时会忽略 arch 目录
common:\
        :skip=HTML/,HTML.pub/,tags,TAGS,ID,y.tab.c,y.tab.h,gtags.files,cscope.files,cscope.out,cscope.po.out,cscope.in.out,SCCS/,RCS/,CVS/,CVSROOT/,{arch}/,autom4te.cache/,*.orig,*.rej,*.bak,*~,#*#,*.swp,*.tmp,*_flymake.*,*_flymake,*.o,*.a,*.so,*.lo,*.zip,*.gz,*.bz2,*.xz,*.lzh,*.Z,*.tgz,*.min.js,*min.css,arch/:

https://zhuanlan.zhihu.com/p/258394849
https://blog.csdn.net/u011011827/article/details/120039082

https://blog.csdn.net/u011011827/article/details/120086961

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值