pub const fn pack_tss_desc(base: usize, limit: usize, dpl: Privilege, present: bool, busy: bool, avl: bool, granularity: u8) -> Descriptor {
    let perm = SEG_AVAIL_TSS32 | ((busy as u8) << 1);
    let attrs = 0b000 | (avl as u8);
    pack_desc(base, limit, perm, TYPE_SYS, dpl, present, attrs, granularity)
}
/// Pack a TSS descriptor.
/// - base: base address of the segment with tss in it
/// - limit: max allowed offset in the segment
/// - dpl: the least privilege (CPL) required for dispatching the task indeciated by this tss
/// - present: whether this segment is enabled
/// - busy: set if the corresponding task is running / suspended
/// - avl: available for system software use, never mind
/// - granulatity: multiple limit by 4k if set
/// 
/// **Be aware that TSS descriptor can only be located in GDT**
/// For more information, see *Intel Developer Manual Vol. 3A 7-6*
Pack a TSS descriptor.

Be aware that TSS descriptor can only be located in GDT
For more information, see *Intel Developer Manual Vol. 3A 7-6
Pack a TSS descriptor . Be aware that TSS descriptor can only be located in GDT For more information see * Intel Developer Manual Vol . 3A 7 - 6
pub const fn pack_tss_desc(base: usize, limit: usize, dpl: Privilege, present: bool, busy: bool, avl: bool, granularity: u8) -> Descriptor {
    let perm = SEG_AVAIL_TSS32 | ((busy as u8) << 1);
    let attrs = 0b000 | (avl as u8);
    pack_desc(base, limit, perm, TYPE_SYS, dpl, present, attrs, granularity)
}
pub const fn pack_tss_desc ( base : usize , limit : usize , dpl : Privilege , present : bool , busy : bool , avl : bool , granularity : u8 ) -> Descriptor { let perm = SEG_AVAIL_TSS32 | ( ( busy as u8 ) << 1 ) ; let attrs = 0b000 | ( avl as u8 ) ; pack_desc ( base , limit , perm , TYPE_SYS , dpl , present , attrs , granularity ) }
Pack a TSS descriptor.
Pack a TSS descriptor .
base
usize
limit
usize
dpl
Privilege
present
bool
busy
bool
avl
bool
granularity
u8