Annotation of coherent/f/usr/man/KERNEL/patch, revision 1.1.1.1

1.1       root        1: ppaattcchh -- Command
                      2: 
                      3: /ccoonnff/ppaattcchh [-kkKKppvv] _i_m_a_g_e _s_y_m_b_o_l=_v_a_l_u_e ...
                      4: 
                      5: The command ppaattcchh  alters the value of datum _s_y_m_b_o_l  to _v_a_l_u_e in executable
                      6: _i_m_a_g_e.  In  general,  you should  use  ppaattcchh  to  alter configuration  data
                      7: (constants) in  programs, in  device drivers,  and in the  COHERENT kernel.
                      8: For ppaattcchh to work with a  symbolic constant, _i_m_a_g_e must have a symbol table
                      9: that includes  information about  _s_y_m_b_o_l. Therefore, executables  that have
                     10: been processed by the command ssttrriipp cannot be ppaattcchhed.
                     11: 
                     12: ppaattcchh recognizes the following _o_p_t_i_o_n_s:
                     13: 
                     14: -kk   Patch  the kernel  memory of  the running  COHERENT system  via device
                     15:      /ddeevv/kkmmeemm, as well as the _i_m_a_g_e.
                     16: 
                     17: -KK   Patch only  the kernel's data memory of the  running system via device
                     18:      /ddeevv/kkmmeemm.
                     19: 
                     20: -pp   Display (peek  at) the current values of  the specified variables, but
                     21:      do not change them.
                     22: 
                     23: -vv   Verbose.   Display the  values of the  specified variables  before and
                     24:      after patching.
                     25: 
                     26: Only the superuser rroooott can access kernel memory from the ppaattcchh command.
                     27: 
                     28: Both _s_y_m_b_o_l and _v_a_l_u_e may consist of numeric constants or a symbol from the
                     29: symbol table of _i_m_a_g_e.
                     30: 
                     31: Please  note  that the  COHERENT  286 kernel  references  variables with  a
                     32: trailing  underscore character;  for  example, aattppaarrmm_.   The COHERENT  386
                     33: kernel, however,  does _n_o_t use a trailing  underscore; for example, aattppaarrmm.
                     34: The following descriptions apply to both COHERENT 286 and COHERENT 386, but
                     35: the notation will be in the COHERENT-386 form.
                     36: 
                     37: _s_y_m_b_o_l and  _v_a_l_u_e expressions may  include an optional  numeric offset.  In
                     38: addition,  the _v_a_l_u_e  field  may optionally  be composed  of the  construct
                     39: mmaakkeeddeevv(_m_a_j_o_r,_m_i_n_o_r), where _m_a_j_o_r and _m_i_n_o_r are the ``major'' and ``minor''
                     40: device numbers, respectively, resulting in a ddeevv_tt-sized device type.
                     41: 
                     42: Numeric constants default to decimal, but may be specifyed with a leading 00
                     43: prefix to specify  an octal number or a 00xx  prefix to specify a hexadecimal
                     44: number.
                     45: 
                     46: The size  of the altered  _s_y_m_b_o_l field is, by  default, ssiizzeeooff(iinntt).  ppaattcchh
                     47: recognizes the following explicit size overrides:
                     48: 
                     49: :cc The size of the altered field is ssiizzeeooff(cchhaarr).
                     50: 
                     51: :ii The size of the altered field is ssiizzeeooff(iinntt).
                     52: 
                     53: :ll The size of the altered field is ssiizzeeooff(lloonngg).
                     54: 
                     55: :ss The size of the altered field is ssiizzeeooff(sshhoorrtt).
                     56: 
                     57: _E_x_a_m_p_l_e_s
                     58: The following  example patches the  value of kernel variable  KKBBBBOOOOTT in the
                     59: nnkkbb  keyboard device  driver to  disallow rebooting of  the system  via the
                     60: traditional  <ccttrrll><aalltt><ddeell> key  sequence.  See  Lexicon article  nnkkbb for
                     61: details.  Note that this command  changes /ccoohheerreenntt on the boot device, not
                     62: the copy of /ccoohheerreenntt that is now running in memory.
                     63: 
                     64:     /conf/patch /coherent KBBOOT=0
                     65: 
                     66: The second  example patches the value of character  variable mmyyvvaarr in user-
                     67: supplied program mmyypprroogg to hexadecimal value 12:
                     68: 
                     69:     /conf/patch myprog myvar=0x12:c
                     70: 
                     71: The final  example modifies the  default ``root'' and  ``pipe'' devices for
                     72: COHERENT-386 kernel /tteessttccoohh to be AT/IDE hard-disk partition /ddeevv/aatt00bb.
                     73: 
                     74:     /conf/patch /testcoh 'rootdev=makedev(11,1)' 'pipedev=makedev(11,1)'
                     75: 
                     76: Note that  in this last example,  the arguments to ppaattcchh  must be quoted to
                     77: avoid interpretation by the shell.
                     78: 
                     79: _S_e_e _A_l_s_o
                     80: ccoommmmaannddss, ddeevviiccee ddrriivveerrss
                     81: 
                     82: _N_o_t_e_s
                     83: No  spaces  can  appear  around  the  equal  sign  in  the  ssyymmbbooll=_c_o_n_s_t_a_n_t
                     84: construct.
                     85: 
                     86: Using ppaattcchh to modify the kernal data area of a running system is extremely
                     87: dangerous.   It  should  only be  done  by  experienced  writers of  device
                     88: drivers.  _C_a_v_e_a_t _u_t_i_l_i_t_o_r!

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.