Lines Matching defs:IO
79 void ScalarEnumerationTraits<SymbolKind>::enumeration(IO &io,
86 void ScalarBitSetTraits<CompileSym2Flags>::bitset(IO &io,
95 void ScalarBitSetTraits<CompileSym3Flags>::bitset(IO &io,
104 void ScalarBitSetTraits<ExportFlags>::bitset(IO &io, ExportFlags &Flags) {
112 void ScalarBitSetTraits<PublicSymFlags>::bitset(IO &io, PublicSymFlags &Flags) {
120 void ScalarBitSetTraits<LocalSymFlags>::bitset(IO &io, LocalSymFlags &Flags) {
128 void ScalarBitSetTraits<ProcSymFlags>::bitset(IO &io, ProcSymFlags &Flags) {
137 IO &io, FrameProcedureOptions &Flags) {
145 void ScalarEnumerationTraits<CPUType>::enumeration(IO &io, CPUType &Cpu) {
152 void ScalarEnumerationTraits<RegisterId>::enumeration(IO &io, RegisterId &Reg) {
154 assert(Header && "The IO context is not initialized");
186 IO &io, TrampolineType &Tramp) {
194 void ScalarEnumerationTraits<ThunkOrdinal>::enumeration(IO &io,
203 IO &io, FrameCookieKind &FC) {
212 IO &io, JumpTableEntrySize &FC) {
223 static void mapping(IO &io, LocalVariableAddrRange &Range) {
230 static void mapping(IO &io, LocalVariableAddrGap &Gap) {
248 virtual void map(yaml::IO &io) = 0;
259 void map(yaml::IO &io) override;
277 void map(yaml::IO &io) override;
300 template <> void SymbolRecordImpl<ScopeEndSym>::map(IO &IO) {}
302 void UnknownSymbolRecord::map(yaml::IO &io) {
315 template <> void SymbolRecordImpl<Thunk32Sym>::map(IO &IO) {
316 IO.mapRequired("Parent", Symbol.Parent);
317 IO.mapRequired("End", Symbol.End);
318 IO.mapRequired("Next", Symbol.Next);
319 IO.mapRequired("Off", Symbol.Offset);
320 IO.mapRequired("Seg", Symbol.Segment);
321 IO.mapRequired("Len", Symbol.Length);
322 IO.mapRequired("Ordinal", Symbol.Thunk);
325 template <> void SymbolRecordImpl<TrampolineSym>::map(IO &IO) {
326 IO.mapRequired("Type", Symbol.Type);
327 IO.mapRequired("Size", Symbol.Size);
328 IO.mapRequired("ThunkOff", Symbol.ThunkOffset);
329 IO.mapRequired("TargetOff", Symbol.TargetOffset);
330 IO.mapRequired("ThunkSection", Symbol.ThunkSection);
331 IO.mapRequired("TargetSection", Symbol.TargetSection);
334 template <> void SymbolRecordImpl<SectionSym>::map(IO &IO) {
335 IO.mapRequired("SectionNumber", Symbol.SectionNumber);
336 IO.mapRequired("Alignment", Symbol.Alignment);
337 IO.mapRequired("Rva", Symbol.Rva);
338 IO.mapRequired("Length", Symbol.Length);
339 IO.mapRequired("Characteristics", Symbol.Characteristics);
340 IO.mapRequired("Name", Symbol.Name);
343 template <> void SymbolRecordImpl<CoffGroupSym>::map(IO &IO) {
344 IO.mapRequired("Size", Symbol.Size);
345 IO.mapRequired("Characteristics", Symbol.Characteristics);
346 IO.mapRequired("Offset", Symbol.Offset);
347 IO.mapRequired("Segment", Symbol.Segment);
348 IO.mapRequired("Name", Symbol.Name);
351 template <> void SymbolRecordImpl<ExportSym>::map(IO &IO) {
352 IO.mapRequired("Ordinal", Symbol.Ordinal);
353 IO.mapRequired("Flags", Symbol.Flags);
354 IO.mapRequired("Name", Symbol.Name);
357 template <> void SymbolRecordImpl<ProcSym>::map(IO &IO) {
358 IO.mapOptional("PtrParent", Symbol.Parent, 0U);
359 IO.mapOptional("PtrEnd", Symbol.End, 0U);
360 IO.mapOptional("PtrNext", Symbol.Next, 0U);
361 IO.mapRequired("CodeSize", Symbol.CodeSize);
362 IO.mapRequired("DbgStart", Symbol.DbgStart);
363 IO.mapRequired("DbgEnd", Symbol.DbgEnd);
364 IO.mapRequired("FunctionType", Symbol.FunctionType);
365 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
366 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
367 IO.mapRequired("Flags", Symbol.Flags);
368 IO.mapRequired("DisplayName", Symbol.Name);
371 template <> void SymbolRecordImpl<RegisterSym>::map(IO &IO) {
372 IO.mapRequired("Type", Symbol.Index);
373 IO.mapRequired("Seg", Symbol.Register);
374 IO.mapRequired("Name", Symbol.Name);
377 template <> void SymbolRecordImpl<PublicSym32>::map(IO &IO) {
378 IO.mapRequired("Flags", Symbol.Flags);
379 IO.mapOptional("Offset", Symbol.Offset, 0U);
380 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
381 IO.mapRequired("Name", Symbol.Name);
384 template <> void SymbolRecordImpl<ProcRefSym>::map(IO &IO) {
385 IO.mapRequired("SumName", Symbol.SumName);
386 IO.mapRequired("SymOffset", Symbol.SymOffset);
387 IO.mapRequired("Mod", Symbol.Module);
388 IO.mapRequired("Name", Symbol.Name);
391 template <> void SymbolRecordImpl<EnvBlockSym>::map(IO &IO) {
392 IO.mapRequired("Entries", Symbol.Fields);
395 template <> void SymbolRecordImpl<InlineSiteSym>::map(IO &IO) {
396 IO.mapOptional("PtrParent", Symbol.Parent, 0U);
397 IO.mapOptional("PtrEnd", Symbol.End, 0U);
398 IO.mapRequired("Inlinee", Symbol.Inlinee);
402 template <> void SymbolRecordImpl<LocalSym>::map(IO &IO) {
403 IO.mapRequired("Type", Symbol.Type);
404 IO.mapRequired("Flags", Symbol.Flags);
406 IO.mapRequired("VarName", Symbol.Name);
409 template <> void SymbolRecordImpl<DefRangeSym>::map(IO &IO) {
410 IO.mapRequired("Program", Symbol.Program);
411 IO.mapRequired("Range", Symbol.Range);
412 IO.mapRequired("Gaps", Symbol.Gaps);
415 template <> void SymbolRecordImpl<DefRangeSubfieldSym>::map(IO &IO) {
416 IO.mapRequired("Program", Symbol.Program);
417 IO.mapRequired("OffsetInParent", Symbol.OffsetInParent);
418 IO.mapRequired("Range", Symbol.Range);
419 IO.mapRequired("Gaps", Symbol.Gaps);
422 template <> void SymbolRecordImpl<DefRangeRegisterSym>::map(IO &IO) {
423 IO.mapRequired("Register", Symbol.Hdr.Register);
424 IO.mapRequired("MayHaveNoName", Symbol.Hdr.MayHaveNoName);
425 IO.mapRequired("Range", Symbol.Range);
426 IO.mapRequired("Gaps", Symbol.Gaps);
429 template <> void SymbolRecordImpl<DefRangeFramePointerRelSym>::map(IO &IO) {
430 IO.mapRequired("Offset", Symbol.Hdr.Offset);
431 IO.mapRequired("Range", Symbol.Range);
432 IO.mapRequired("Gaps", Symbol.Gaps);
435 template <> void SymbolRecordImpl<DefRangeSubfieldRegisterSym>::map(IO &IO) {
436 IO.mapRequired("Register", Symbol.Hdr.Register);
437 IO.mapRequired("MayHaveNoName", Symbol.Hdr.MayHaveNoName);
438 IO.mapRequired("OffsetInParent", Symbol.Hdr.OffsetInParent);
439 IO.mapRequired("Range", Symbol.Range);
440 IO.mapRequired("Gaps", Symbol.Gaps);
444 void SymbolRecordImpl<DefRangeFramePointerRelFullScopeSym>::map(IO &IO) {
445 IO.mapRequired("Register", Symbol.Offset);
448 template <> void SymbolRecordImpl<DefRangeRegisterRelSym>::map(IO &IO) {
449 IO.mapRequired("Register", Symbol.Hdr.Register);
450 IO.mapRequired("Flags", Symbol.Hdr.Flags);
451 IO.mapRequired("BasePointerOffset", Symbol.Hdr.BasePointerOffset);
452 IO.mapRequired("Range", Symbol.Range);
453 IO.mapRequired("Gaps", Symbol.Gaps);
456 template <> void SymbolRecordImpl<BlockSym>::map(IO &IO) {
457 IO.mapOptional("PtrParent", Symbol.Parent, 0U);
458 IO.mapOptional("PtrEnd", Symbol.End, 0U);
459 IO.mapRequired("CodeSize", Symbol.CodeSize);
460 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
461 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
462 IO.mapRequired("BlockName", Symbol.Name);
465 template <> void SymbolRecordImpl<LabelSym>::map(IO &IO) {
466 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
467 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
468 IO.mapRequired("Flags", Symbol.Flags);
469 IO.mapRequired("DisplayName", Symbol.Name);
472 template <> void SymbolRecordImpl<ObjNameSym>::map(IO &IO) {
473 IO.mapRequired("Signature", Symbol.Signature);
474 IO.mapRequired("ObjectName", Symbol.Name);
477 template <> void SymbolRecordImpl<Compile2Sym>::map(IO &IO) {
478 IO.mapRequired("Flags", Symbol.Flags);
479 IO.mapRequired("Machine", Symbol.Machine);
480 IO.mapRequired("FrontendMajor", Symbol.VersionFrontendMajor);
481 IO.mapRequired("FrontendMinor", Symbol.VersionFrontendMinor);
482 IO.mapRequired("FrontendBuild", Symbol.VersionFrontendBuild);
483 IO.mapRequired("BackendMajor", Symbol.VersionBackendMajor);
484 IO.mapRequired("BackendMinor", Symbol.VersionBackendMinor);
485 IO.mapRequired("BackendBuild", Symbol.VersionBackendBuild);
486 IO.mapRequired("Version", Symbol.Version);
489 template <> void SymbolRecordImpl<Compile3Sym>::map(IO &IO) {
490 IO.mapRequired("Flags", Symbol.Flags);
491 IO.mapRequired("Machine", Symbol.Machine);
492 IO.mapRequired("FrontendMajor", Symbol.VersionFrontendMajor);
493 IO.mapRequired("FrontendMinor", Symbol.VersionFrontendMinor);
494 IO.mapRequired("FrontendBuild", Symbol.VersionFrontendBuild);
495 IO.mapRequired("FrontendQFE", Symbol.VersionFrontendQFE);
496 IO.mapRequired("BackendMajor", Symbol.VersionBackendMajor);
497 IO.mapRequired("BackendMinor", Symbol.VersionBackendMinor);
498 IO.mapRequired("BackendBuild", Symbol.VersionBackendBuild);
499 IO.mapRequired("BackendQFE", Symbol.VersionBackendQFE);
500 IO.mapRequired("Version", Symbol.Version);
503 template <> void SymbolRecordImpl<FrameProcSym>::map(IO &IO) {
504 IO.mapRequired("TotalFrameBytes", Symbol.TotalFrameBytes);
505 IO.mapRequired("PaddingFrameBytes", Symbol.PaddingFrameBytes);
506 IO.mapRequired("OffsetToPadding", Symbol.OffsetToPadding);
507 IO.mapRequired("BytesOfCalleeSavedRegisters",
509 IO.mapRequired("OffsetOfExceptionHandler", Symbol.OffsetOfExceptionHandler);
510 IO.mapRequired("SectionIdOfExceptionHandler",
512 IO.mapRequired("Flags", Symbol.Flags);
515 template <> void SymbolRecordImpl<CallSiteInfoSym>::map(IO &IO) {
516 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
517 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
518 IO.mapRequired("Type", Symbol.Type);
521 template <> void SymbolRecordImpl<FileStaticSym>::map(IO &IO) {
522 IO.mapRequired("Index", Symbol.Index);
523 IO.mapRequired("ModFilenameOffset", Symbol.ModFilenameOffset);
524 IO.mapRequired("Flags", Symbol.Flags);
525 IO.mapRequired("Name", Symbol.Name);
528 template <> void SymbolRecordImpl<HeapAllocationSiteSym>::map(IO &IO) {
529 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
530 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
531 IO.mapRequired("CallInstructionSize", Symbol.CallInstructionSize);
532 IO.mapRequired("Type", Symbol.Type);
535 template <> void SymbolRecordImpl<FrameCookieSym>::map(IO &IO) {
536 IO.mapRequired("Register", Symbol.Register);
537 IO.mapRequired("CookieKind", Symbol.CookieKind);
538 IO.mapRequired("Flags", Symbol.Flags);
541 template <> void SymbolRecordImpl<CallerSym>::map(IO &IO) {
542 IO.mapRequired("FuncID", Symbol.Indices);
545 template <> void SymbolRecordImpl<UDTSym>::map(IO &IO) {
546 IO.mapRequired("Type", Symbol.Type);
547 IO.mapRequired("UDTName", Symbol.Name);
550 template <> void SymbolRecordImpl<BuildInfoSym>::map(IO &IO) {
551 IO.mapRequired("BuildId", Symbol.BuildId);
554 template <> void SymbolRecordImpl<BPRelativeSym>::map(IO &IO) {
555 IO.mapRequired("Offset", Symbol.Offset);
556 IO.mapRequired("Type", Symbol.Type);
557 IO.mapRequired("VarName", Symbol.Name);
560 template <> void SymbolRecordImpl<RegRelativeSym>::map(IO &IO) {
561 IO.mapRequired("Offset", Symbol.Offset);
562 IO.mapRequired("Type", Symbol.Type);
563 IO.mapRequired("Register", Symbol.Register);
564 IO.mapRequired("VarName", Symbol.Name);
567 template <> void SymbolRecordImpl<ConstantSym>::map(IO &IO) {
568 IO.mapRequired("Type", Symbol.Type);
569 IO.mapRequired("Value", Symbol.Value);
570 IO.mapRequired("Name", Symbol.Name);
573 template <> void SymbolRecordImpl<DataSym>::map(IO &IO) {
574 IO.mapRequired("Type", Symbol.Type);
575 IO.mapOptional("Offset", Symbol.DataOffset, 0U);
576 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
577 IO.mapRequired("DisplayName", Symbol.Name);
580 template <> void SymbolRecordImpl<ThreadLocalDataSym>::map(IO &IO) {
581 IO.mapRequired("Type", Symbol.Type);
582 IO.mapOptional("Offset", Symbol.DataOffset, 0U);
583 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
584 IO.mapRequired("DisplayName", Symbol.Name);
587 template <> void SymbolRecordImpl<UsingNamespaceSym>::map(IO &IO) {
588 IO.mapRequired("Namespace", Symbol.Name);
591 template <> void SymbolRecordImpl<AnnotationSym>::map(IO &IO) {
592 IO.mapOptional("Offset", Symbol.CodeOffset, 0U);
593 IO.mapOptional("Segment", Symbol.Segment, uint16_t(0));
594 IO.mapRequired("Strings", Symbol.Strings);
597 template <> void SymbolRecordImpl<JumpTableSym>::map(IO &IO) {
598 IO.mapRequired("BaseOffset", Symbol.BaseOffset);
599 IO.mapRequired("BaseSegment", Symbol.BaseSegment);
600 IO.mapRequired("SwitchType", Symbol.SwitchType);
601 IO.mapRequired("BranchOffset", Symbol.BranchOffset);
602 IO.mapRequired("TableOffset", Symbol.TableOffset);
603 IO.mapRequired("BranchSegment", Symbol.BranchSegment);
604 IO.mapRequired("TableSegment", Symbol.TableSegment);
605 IO.mapRequired("EntriesCount", Symbol.EntriesCount);
621 static void mapping(IO &io, SymbolRecordBase &Record) { Record.map(io); }
655 static void mapSymbolRecordImpl(IO &IO, const char *Class, SymbolKind Kind,
657 if (!IO.outputting())
660 IO.mapRequired(Class, *Obj.Symbol);
664 IO &IO, CodeViewYAML::SymbolRecord &Obj) {
666 if (IO.outputting())
668 IO.mapRequired("Kind", Kind);
672 mapSymbolRecordImpl<SymbolRecordImpl<ClassName>>(IO, #ClassName, Kind, \
680 mapSymbolRecordImpl<UnknownSymbolRecord>(IO, "UnknownSym", Kind, Obj);