Class: Dtrace::Dof::Section

Inherits:
Object
  • Object
show all
Includes:
Constants
Defined in:
ext/dof/dof_api.c,
lib/dtrace/dof/section.rb

Direct Known Subclasses

Strtab

Defined Under Namespace

Classes: Strtab

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(type, index) ⇒ Section



14
15
16
17
18
19
# File 'lib/dtrace/dof/section.rb', line 14

def initialize(type, index)
  @section_type  = type
  @index         = index
  @flags         = 1 # DOF_SECF_LOAD
  @data          = {}
end

Instance Attribute Details

#alignObject

Returns the value of attribute align.



11
12
13
# File 'lib/dtrace/dof/section.rb', line 11

def align
  @align
end

#dataObject

Returns the value of attribute data.



11
12
13
# File 'lib/dtrace/dof/section.rb', line 11

def data
  @data
end

#dofObject (readonly)

Returns the value of attribute dof.



12
13
14
# File 'lib/dtrace/dof/section.rb', line 12

def dof
  @dof
end

#entsize=(value) ⇒ Object (writeonly)

Sets the attribute entsize



10
11
12
# File 'lib/dtrace/dof/section.rb', line 10

def entsize=(value)
  @entsize = value
end

#flagsObject

Returns the value of attribute flags.



11
12
13
# File 'lib/dtrace/dof/section.rb', line 11

def flags
  @flags
end

#offsetObject

Returns the value of attribute offset.



11
12
13
# File 'lib/dtrace/dof/section.rb', line 11

def offset
  @offset
end

#padObject

Returns the value of attribute pad.



11
12
13
# File 'lib/dtrace/dof/section.rb', line 11

def pad
  @pad
end

#section_typeObject (readonly)

Returns the value of attribute section_type.



12
13
14
# File 'lib/dtrace/dof/section.rb', line 12

def section_type
  @section_type
end

#sizeObject

Returns the value of attribute size.



11
12
13
# File 'lib/dtrace/dof/section.rb', line 11

def size
  @size
end

Instance Method Details

#dof_generate_commentsObject

#dof_generate_prargsObject

#dof_generate_prenoffsObject

#dof_generate_probesObject

#dof_generate_proffsObject

#dof_generate_providerObject

#dof_generate_relhdrObject

#dof_generate_reltabObject

#dof_generate_strtabObject

#dof_generate_utsnameObject

#generateObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
# File 'lib/dtrace/dof/section.rb', line 21

def generate
  case @section_type
  when DOF_SECT_COMMENTS
    @align = 1
    @dof = dof_generate_comments
  when DOF_SECT_STRTAB
    @align = 1
    @dof = dof_generate_strtab
  when DOF_SECT_PROBES
    @align = 8
    @dof = dof_generate_probes
  when DOF_SECT_PRARGS
    @align = 1
    @dof = dof_generate_prargs
  when DOF_SECT_PROFFS
    @align = 4
    @dof = dof_generate_proffs
  when DOF_SECT_PRENOFFS
    @align = 4
    @dof = dof_generate_prenoffs
  when DOF_SECT_PROVIDER
    @align = 4
    @dof = dof_generate_provider
  when DOF_SECT_RELTAB
    @align = 8
    @dof = dof_generate_reltab
  when DOF_SECT_URELHDR
    @align = 4
    @dof = dof_generate_relhdr
  when DOF_SECT_UTSNAME
    @align = 1
    @dof = dof_generate_utsname
  else
    @dof = ''
  end

  begin
    if @data.class == Array
      @entsize = @dof.length / @data.length
    else
      @entsize = 0
    end
  rescue ZeroDivisionError
    @entsize = 0
  end

  return @dof.length
end

#generate_headerObject