# smp.h File Reference

`#include <ubixos/types.h>`

Include dependency graph for smp.h:

This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

## Data Structures

struct | cpuinfo_t

## Functions

void | apicMagic ()
void | cpuid (uInt32, uInt32 *)
void | cpuidDetect ()
uInt8 | cpuInfo ()
uInt32 | getEflags ()
void | setEflags (uInt32)
void | smpInit ()

## Function Documentation

void apicMagic | ( |  | ) |

Definition at line 234 of file smp.c.

References ap_trampoline_end(), ap_trampoline_start, apicRead(), apicWrite(), kprintf(), and memcpy().

Referenced by smpInit().

Here is the call graph for this function:

void cpuid | ( | uInt32 | ,
|  | uInt32 * |  |
| ) |  |  |

Referenced by cpuInfo().

void cpuidDetect | ( |  | ) |

Definition at line 173 of file smp.c.

References getEflags(), kpanic(), and setEflags().

Referenced by smpInit().

Here is the call graph for this function:

uInt8 cpuInfo | ( |  | ) |

Definition at line 182 of file smp.c.

References cpuinfo_t::apic_id, cpuinfo_t::apic_ver, apicRead(), cpuinfo_t::brand, cpuid(), cpuinfo, cpuInfoLock, cpus, cpuinfo_t::feature, getEflags(), cpuinfo_t::id, cpuinfo_t::ident, kpanic(), cpuinfo_t::max, cpuinfo_t::ok, setDr3(), setEflags(), cpuinfo_t::signature, spinLock(), spinUnlock(), x20, and x30.

Referenced by c_ap_boot(), and smpInit().

Here is the call graph for this function:

uInt32 getEflags | ( |  | ) |

Definition at line 252 of file smp.c.

Referenced by cpuidDetect(), and cpuInfo().

void setEflags | ( | uInt32 |  | ) |

Definition at line 262 of file smp.c.

Referenced by cpuidDetect(), and cpuInfo().

void smpInit | ( |  | ) |

Definition at line 161 of file smp.c.

References apicMagic(), cpuidDetect(), cpuInfo(), GDT_fixer(), initSpinLock, spinLock(), and spinUnlock().

Here is the call graph for this function: