函数逻辑报告

Linux Kernel

v5.5.9

Brick Technologies Co., Ltd

Source Code:arch\x86\kernel\cpu\cyrix.c Create Date:2022-07-27 08:59:24
Last Modify:2020-03-12 14:18:49 Copyright©Brick
首页 函数Tree
注解内核,赢得工具下载SCCTEnglish

函数名称:init_cyrix

函数原型:static void init_cyrix(struct cpuinfo_x86 *c)

返回类型:void

参数:

类型参数名称
struct cpuinfo_x86 *c
193  dir1等于0
194  buf等于x86_model_id
195  const char * p = NULL
201  clear_cpu_cap(c, 0 * 32 + 31)
204  如果test_cpu_cap(c, 1 * 32 + 24)则
205  clear_cpu_cap(c, 1 * 32 + 24)
206  set_cpu_cap(c, Cyrix MMX extensions )
209  do_cyrix_devid( & dir0, & dir1)
211  Reset the slow-loop (SLOP) bit on the 686(L) which is set by some old* BIOSes for compatibility with DOS games. This makes the udelay loop* work correctly, and improves performance.* FIXME: our newer udelay uses the tsc. We don't need to frob with SLOP
213  Cx86_dir0_msb is a HACK needed by check_cx686_cpuid/slop in bugs.h in* order to identify the Cyrix CPU model after we're out of setup.c* Actually since bugs.h doesn't even reference this perhaps someone should* fix the documentation ???等于dir0_msn等于dir0右移4位
214  dir0_lsn等于dir0按位与0xf
217  x86_model等于dir1右移4位的值加1
218  x86_stepping等于dir1按位与0xf
229  :dir0_msn恒等于0
230  p等于Cx486_name[dir0_lsn & 7]
231  退出
233  :dir0_msn恒等于1
234  p等于如果dir0_lsn按位与8则Cx486D_name[dir0_lsn & 5]否则Cx486S_name[dir0_lsn & 3]
236  退出
238  :dir0_msn恒等于2
239  Cx86_cb[2]等于cyrix_model_mult1[dir0_lsn & 5]
240  p等于Cx86_cb加2
241  退出
243  :dir0_msn恒等于3
244  Cx86_cb[1]等于' '
245  Cx86_cb[2]等于cyrix_model_mult1[dir0_lsn & 5]
246  如果dir1大于0x21则
247  Cx86_cb[0]等于'L'
248  p等于Cx86_cb
249  x86_model自加
250  否则p等于Cx86_cb加1
253  set_cpu_cap(c, Cyrix ARRs (= MTRRs) )
255  set_cpu_bug(c, Cyrix 6x86 coma )
256  退出
258  :dir0_msn恒等于4
259  :dir0_msn恒等于11
294  KB - valid for CPUS which support this call: 等于16
307  如果0x30小于等于dir1dir1小于等于0x6f或0x80小于等于dir1dir1小于等于0x8f则Configure later MediaGX and/or Geode processor.
310  返回
311  否则
312  Cx86_cb[2]等于如果dir0_lsn按位与1则'3'否则'4'
313  p等于Cx86_cb加2
314  x86_model等于如果dir1按位与0x20则1否则2
316  退出
318  :dir0_msn恒等于5
319  如果dir1大于7则
320  dir0_msn自加
323  否则
327  tmp等于如果非dir0_lsn按位与7的值或dir0_lsn按位与1则2否则0
328  Cx86_cb[tmp]等于cyrix_model_mult2[dir0_lsn & 7]
329  p等于Cx86_cbtmp
330  如果dir1按位与0x0f的值大于4或dir1按位与0xf0的值恒等于0x20则x86_model自加
333  set_cpu_cap(c, Cyrix ARRs (= MTRRs) )
334  退出
336  :dir0_msn恒等于0xf
338  :dir0_lsn恒等于0xd
339  dir0_msn等于0
341  退出
343  :dir0_lsn恒等于0xe
344  dir0_msn等于0
345  p等于Cx486S_name[0]
346  退出
348  退出
350  默认
351  dir0_msn等于7
352  退出
354  strcpy(buf, Cx86_model[dir0_msn & 7])
355  如果pstrcat(buf, p)
357  返回
调用者
名称描述
init_nscHandle National Semiconductor branded processors