• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Matrix
            Klarke's C/C++ Home
            posts - 61,comments - 0,trackbacks - 0
            OA
            [DEV]encounter 1> set cell_ptr [dbGet -p head.libCells.name pll_fbdiv]
            0x2aaac108f3a8
            [DEV]encounter 2> Puts "Abstract binding (lib/cell/view): [dbGet $cell_ptr.abstractLib]/[dbGet $cell_ptr.name]/[dbGet $cell_ptr.abstractView]"
            Abstract binding (lib/cell/view): zambezi45/pll_fbdiv/abstract
            posted @ 2014-05-07 10:50 Klarke 閱讀(2691) | 評(píng)論 (0)編輯 收藏
            C function and Tcl function are linked.
            Then if want to return 1 in C function and get it in Tcl function, we should add following code in C function:

            Tcl_AppendElement(itp, "1");

            posted @ 2013-12-12 14:28 Klarke 閱讀(2508) | 評(píng)論 (0)編輯 收藏
            report_cell_instance_timing

            _report_pin_timing ff3/Q

            get_lib_pins */DFFQN_X1M_A9TL_C20/*

            report_analysis_coverage ff4/D -verbose untested

            report_inactive_arcs

            getAnalysisMode -checkType

            setAnalysisMode -checkType setupo/hold

            setMultiCpuUsage -localCpu 4

            report_clock_timing -clock tci -type latency -view TRADITIONAL_SCAN_CAPTURE_pvt4_hrlcn40 -verbose

            report_timing -clock_from tck

            report_timing -clock_from tck -path_type full_clock
            report_timing -clock_from tck -path_type full_clock -from [all_registers] -max_paths 1
            _report_pin_timing u_usb30gctl_aon/u_usb30gctl_aon_wdog_0/wdog_cnt_reg_23_/CK
            _report_pin_timing u_usb30gctl_aon/u_usb30gctl_aon_wdog_0/wdog_cnt_reg_23_/CK -view TRADITIONAL_SCAN_CAPTURE_pvt4_hrlcn40
            _report_pin_timing u_usb30gctl_aon/u_usb30gctl_aon_wdog_0/wdog_cnt_reg_23_/CK -view TRADITIONAL_SCAN_CAPTURE_pvt4_hrlcn40 -early
            _report_pin_timing u_usb30gctl_aon/u_usb30gctl_aon_wdog_0/wdog_cnt_reg_23_/CK -view TRADITIONAL_SCAN_CAPTURE_pvt4_hrlcn40 -late
            report_clock_timing -clock tck -type latency -view TRADITIONAL_SCAN_CAPTURE_pvt4_hrlcn40 -verbose
            _report_pin_timing u_usb30gctl_aon/u_usb30gctl_aon_usbreg/gctl_usb_power_synchronizer/u_dff2/q_reg_0_/CK
            report_timing -from u_usb30gctl_aon/u_usb30gctl_aon_usbreg/gctl_usb_power_synchronizer/u_dff2/q_reg_0_/CK
            report_timing -from u_usb30gctl_aon/u_usb30gctl_aon_usbreg/gctl_usb_power_synchronizer/u_dff2/q_reg_0_/CK -path_type full_clock
            get_nets -of tck_i
            all_connected tck_i -leaf
            all_connected tck_i
            _report_pin_timing gctl_test_refclk_i
            save_view_definition -outfile view.tcl



            posted @ 2013-07-25 17:55 Klarke 閱讀(2647) | 評(píng)論 (0)編輯 收藏

            proc getSetupHoldCstrMode {args} {

                 set setupViews [all_setup_analysis_views]
                 set arg [lindex $args 1]
                 if { $arg == 0 } {
                     set allViews $setupViews
                 } else {
                     set holdViews [all_hold_analysis_views]
                     set allViews [concat  $setupViews $holdViews ]
                 }
            #     Puts $allViews
                 set mode ""
                 foreach view $allViews  {
                    lappend mode [get_analysis_view $view -constraint_mode]
                    set dc [get_analysis_view $view -delay_corner]
                    set rc [get_delay_corner $dc -rc_corner]
                 }
                 set cstrMode [lsort -ascii -unique $mode]
            #     Puts $cstrMode
                 return $cstrMode
            }

            posted @ 2013-05-09 15:22 Klarke 閱讀(2610) | 評(píng)論 (0)編輯 收藏
            touch file.c
            make file.o
            touch file.c
            Add -E

            /grid/common/pkgs/gcc/v4.4.5/bin/g++ -I../../../tools.lnx86/fe/src/64bit -g -I../../../include -DUSE_icp -DUSE_cdshelp -DUSE_nano -DUSE_pm -DUSE_tq -DUSE_mesalib -DUSE_crlp -DUSE_prtools -DOAX_DUAL_MODE -DUSE_dupHash -DUSE_feedthrough -DUSE_libesotcl -DUSE_libesotest -DUSE_libesoengine -DUSE_libesoxforms -DUSE_libesoinfra -DUSE_chkd -DUSE_parallel -DUSE_edp -DUSE_cte -DUSE_lic -DUSE_rmap -DUSE_fs -DUSE_sc -DUSE_optinfra -DUSE_op -DUSE_ls -DUSE_dp -DUSE_do -DUSE_tb -DUSE_go -DUSE_cm -DUSE_coe -DUSE_ccopt -DUSE_ck -DUSE_sgn -DUSE_autofpUtil -DUSE_autofp -DUSE_tkhtml -DUSE_hp -DUSE_lp -DUSE_nlp -DUSE_clu -DUSE_mib -DUSE_sp -DUSE_tcd -DUSE_np -DUSE_bb -DUSE_pp -DUSE_pso -DUSE_ppp -DUSE_pa -DUSE_sla -DUSE_la -DUSE_slm -DUSE_eman -DUSE_pdv -DUSE_vc -DUSE_bm -DUSE_splx -DUSE_xn -DUSE_ams -DUSE_msrouting -DUSE_ta -DUSE_tu -DUSE_spx -DUSE_qx -DUSE_pe -DUSE_dc -DUSE_ds -DUSE_sds -DUSE_ln -DUSE_ms -DUSE_spr -DUSE_tr -DUSE_df -DUSE_dfnl -DUSE_sdp -DUSE_fp -DUSE_ri -DUSE_vl -DUSE_lf -DUSE_tl -DUSE_sr -DUSE_fg -DUSE_oax -DUSE_oax22 -DUSE_ogds -DUSE_himgr -DUSE_ncu -DUSE_libscell -DUSE_libmcts -DUSE_uiobj -DUSE_fp -DUSE_newspef -DUSE_esi -DUSE_to -DUSE_ptn -DUSE_libdblogical -DUSE_libdbphysical -DUSE_libdbutil -DUSE_libdbtech -DUSE_libdbfplan -DUSE_libdbtcl -DUSE_libdbmisc -DUSE_libdblogical -DUSE_we -DUSE_dbx -DUSE_cte -DUSE_tc -DUSE_dd -DUSE_editline -DUSE_tdg -DUSE_vlg -DUSE_se -DUSE_qtf -DUSE_gui -DUSE_celtic -DUSE_msv -DUSE_ziplib -DUSE_ui -DUSE_qtf -DUSE_guifw -DUSE_cta -DUSE_win -DUSE_vb -DUSE_verify -DUSE_libverifymsrouting -DUSE_libverifyacdensity -DUSE_libverifyant -DUSE_libverifyconn -DUSE_libverifydensity -DUSE_libverifygeom -DUSE_libverifywelltap -DUSE_libverifyutil -DUSE_verify -DUSE_cce -DUSE_app -DUSE_prt_cmds -DUSE_prt_sr_main -DUSE_msroute -DUSE_prt_sr_proute -DUSE_vmd -DUSE_amf -DUSE_vmd -DUSE_prt_sr_ref -DUSE_prt_sr_dbase -DUSE_prt_sr_ldef -DUSE_prt_sr_basic -DUSE_prt_power -DUSE_p2proute -DUSE_prt_viagen -DUSE_prt_power -DUSE_prt_sr_util -DUSE_xdp -DUSE_ilm -DUSE_imex -DUSE_cpe -DUSE_kl -DUSE_klv -DUSE_pdg -DUSE_sn -DUSE_euler -DUSE_ps -DUSE_sip -DUSE_glm -DUSE_celticmempool -DUSE_syutil -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 -DBITS64 -DLINUX -DSOCE_PWR -DNSU_NoVersion -DNSU_NoThread -DNSU_NoSignal -DNSU_NoLicense -DNO_CTE_NEWALLOC -DCTE_NATIVE_READER_HIER_SUPPORT -DCTE_PARTIAL_HIERARCHY -I../../../tools.lnx86/ctengInt/include -DCTE_TIMER_BY_DEFAULT -DMMMC -I../../../tools.lnx86/syntechInt/include -I../../../tools.lnx86/coptInt/include -I../../../tools.lnx86/dfII/pvt/include -I../../../tools.lnx86 -I../../../tools.lnx86/cdsZip/include -DUSE_cdslmd -I../../../include/tcm -I../../../include/TPtools -isystem ../../../include/TPtools -I../../../tools.lnx86/sst2/include -DUSE_sst2 -D_USING_PROTOTYPES_ -I../../../include -I../../../tools.lnx86/include -I../../../include/syutilcommon -I../../../include -I/icd/hierflow2/klarke/12.00rtm/fe//src/ -DCDS_LNX86 -DHAS_PTHREAD -D_REENTRANT -m64 -D_LP64 -DUSE_TCLTK85 -DSTDC_HEADERS=1 -DHAVE_SYS_TYPES_H=1 -DHAVE_SYS_STAT_H=1 -DHAVE_STDLIB_H=1 -DHAVE_STRING_H=1 -DHAVE_MEMORY_H=1 -DHAVE_STRINGS_H=1 -DHAVE_INTTYPES_H=1 -DHAVE_STDINT_H=1 -DHAVE_UNISTD_H=1 -DHAVE_LIMITS_H=1 -DUSE_THREAD_ALLOC=1 -D_REENTRANT=1 -D_THREAD_SAFE=1 -DHAVE_PTHREAD_ATTR_SETSTACKSIZE=1 -DHAVE_PTHREAD_GETATTR_NP=1 -DHAVE_SYS_TIME_H=1 -DTIME_WITH_SYS_TIME=1 -DHAVE_INTPTR_T=1 -DHAVE_UINTPTR_T=1 -DHAVE_PW_GECOS=1 -DHAVE_XSS=1 -DHAVE_LIBXFT=1 -DHAVE_XFT=1 -DUSE_NON_CONST -I../../../share/tcltools/icd8.5.9/include -Wno-write-strings -mveclibabi=svml -D_GNU_SOURCE -I. -MMD -MF ../../../tools.lnx86/fe/obj/64bit/ilm/dbIlmPtn.d -E -o aaa -c dbIlmPtn.c
            posted @ 2012-09-05 10:48 Klarke 閱讀(3054) | 評(píng)論 (0)編輯 收藏

            How to change permissions (chmod) of a file

            Permissions can be very important when it comes to hosting your website. Permissions can allow our server computer to write and edit your files. Along with that, some files need to be protected from writing and editing, as a security measure. You can change your file permissions in many ways.

            Using File Manager in cPanel

            One of the easy and basic ways to change the permissions is through File manager in cPanel. To change the permissions for a file or folder in cpanel, please do the following:

            1. Login to your cPanel (if not already there)
            2. Click File Manager
            3. Click the name of the file for which you would like to change the permissions.
            4. Select the Change Permissions link at the top right of the page.
            5. Select the permissions you would like to set for the file.
            6. Click Change Permissions

             

            Using FTP

            Connect to FTP. Go to the file and right click. Choose Permissions or Attributes or Properties (depends on your program).

            Using SSH or a script

            This can be done with chmod command.


            So, what do these permissions and numbers mean?

            File permissions determine what you are allowed to do and who is allowed to do it.

            Owner Group World
            Read ? ? ?
            Write ?
            Execute ? ? ?

             

            The columns are the three types of users. First is the Owner; the owner is you, the person who has access to the cPanel or shell. Second is the Group; the group is other people on your server. Third is the World; the world is any visitor from the public (think world wide web).

            Each row represents a permitted action for this file (or folder). Read means the user is allowed to view the file. Write means the user is allowed to edit the file. Execute means the user is allowed to run the file.

            It is very important that Group and World be able to view your website files. However, there are some files which you may not want anyone to see. If you remove the check for Read under Group and World, then the file will not show in anyone's browser (instead visitors will see a 403 Forbidden error).

            In the File Manager, permissions are expressed as numbers. We are only concerned with 3 digits, so if you see 4 digits, then ignore the first one. Thus 0755 is the same as 755.

            The numbers represent a combination of each unique permission. Also, the first of the three digits represents the permissions for the Owner. The second digit represents the Group. The third digit represents the World.

            • Read is equal to 4.
            • Write is equal to 2.
            • Execute is equal to 1.
            • No permissions for a user is equal to 0.

            Thus...

            • Write and Execute without Read is equal to 3.
            • Read and Execute without Write is equal to 5.
            • Read and Write without Execute is equal to 6.
            • Read and Write and Execute is equal to 7.

            At this point, all you need to know is that your files should always have permissions of 644 or 755. (For most files, it doesn't matter if you give the executable permission or not. You won't see any difference.)

            However, folders must always be 755.

            One more rule. Any files inside the cgi-bin folder must have 755 permissions.


            Advanced

            A common concern is using file permissions of 777.

            HostGator does not allow 777 on files which process server-side (i.e. PHP). However, many scripts require you to change your files to 777.

            I can tell you that 755 will work in lieu of 777. You will not need to use 777 on PHP files or folders.

            What's the big deal?

            The concern is giving writable permissions to Group and World. This allows hackers from the world wide web to edit your files. Thus, the last two digits of file permissions should never be 2, 3, 6, or 7.

            The problem is when you install a PHP script, the script needs permission to edit files. Traditionally, PHP is treated as 'nobody' on the server. Therefore, PHP is treated the same an any unknown visitor and must obey the permissions granted to World.

            The solution to this conflict is to treat PHP as the Owner. HostGator has done so by implementing a special PHP security environment known as suPHP (or phpSuExec).

            With suPHP, all PHP scripts are allowed the same permissions as the Owner, and outside visitors are still restricted by the World permissions. Therefore, 755 is the perfect number; it allows all actions for PHP and only reading/viewing for potential hackers.

            Other formats

            Permissions can be expressed many ways. You have already seen the two-dimensional matrix and the 3 or 4 digit numbers.

            However, if you prefer to use the Linux shell (SSH), then file permissions will look like this:

            drwxr-xr-x

            You can ignore the very first character; it represents the file type rather than permissions. Next, you see three letters which represent the Owner's permissions.

            • r = read
            • w = write
            • x = execute
            • - (hyphen) = no permission

            The Owner will normally have all three permissions, which is represented by rwx.

            The next three characters represent the Group's permissions. Finally, the last three characters represent the World's permissions.

            Notice that Group and World do not get the writable permission. In place of the 'w' will be a hyphen, meaning that write is definitely not allowed: r-x.

            Here are some conversions to consider.

            2D Matrix Numerical Representation Linux Representation
            error 755 or 0755

            Recommended!
            drwxr-xr-x
            error 644 or 0644

            Recommended!
            drw-r--r--
            error 700 or 0700 drwx------
            error
            posted @ 2012-08-13 10:11 Klarke 閱讀(2769) | 評(píng)論 (0)編輯 收藏

              if (!rdaIsFeatureAvailable(rdacFeatureFlexModel)) {
                return TCL_ERROR;
              }


            posted @ 2012-07-27 15:39 Klarke 閱讀(1375) | 評(píng)論 (0)編輯 收藏
            GDB

            1. attach: 用gdb調(diào)試一個(gè)正在運(yùn)行中的進(jìn)程
            gdb <program> PID

            2. br: 設(shè)置斷點(diǎn)
            br filename:line_num

            br namespace::classname::func_name

            3. n: 單步跳過(guò) s: 單步進(jìn)入

            4. finish:執(zhí)行到函數(shù)retun返回

            5. list: 列出當(dāng)前位置之后的10行代碼;list line_number: 列出line_number之后的十行代碼

            6. bt(backtrace):列出調(diào)用棧

            7. info locals:列出當(dāng)前函數(shù)的局部變量

            8. p var_:打印變量值

            9. info breakpoints:列出所有斷點(diǎn)

            10. delete breakpoints:刪除所有斷點(diǎn);delete breakpoints id:刪除編號(hào)為id的斷點(diǎn);disable/enable breakpoints id:禁用/啟用斷點(diǎn)

            11. break ... if ... 條件中斷


              
                33  redraw
                34  dbget 0x2aad1379e170.name
                35  *DBU*Micron*
                36  dbDBUToMicrons 8456600
                37  dbDBUToMicrons 3742650
                38  selectNet mii1mdint_data_in
                39  redraw
                40  dbget 0x2aad1379e790.hInstTerms.pt
                41  dbget 0x2aad1379e790.hInstTerms.term.shape
                42  dbget 0x2aad1379e790.hInstTerms.pt "8456.6*"
                43  dbget 0x2aad1379e790.hInstTerms.pt 8456.6
                44  dbget 0x2aad1379e790.hInstTerms.name
                45  history
                46  dbGetNetByName mii1mdint_data_in
                47  dbget 0x2aab88b49530.hNets.hInstTerms.name
                48  addCustomBox aaa 8438.4 3742.6 8474.6 3763.4
                49  redraw
                50  dbGetHInstByName padring/pl_mii1mdint
                51  dbget 0x2aab88b49530.hNets.hTerms.hInst.name
            posted @ 2012-06-08 10:31 Klarke 閱讀(1254) | 評(píng)論 (0)編輯 收藏
            7種方法,用到的工具有:awk,sed,rev,cut,grep,colrm,expr,是學(xué)習(xí)這些工具的很好例子。
            1.echo string|awk '{print substr($0,length($0)-1,length($0))}'
            2.echo string|sed 's/(.*)(..$)/2/'
            3.echo string|rev|cut -c-2|rev
            4.echo ${var:$((${#var}-2)):2}或echo ${var:$((-2))}
            5.echo string|grep -o ..$
            6.echo string|rev|colrm 3|rev
            7.expr string : ".*(..)$"



            ps -ef | grep nxagent
            posted @ 2012-05-15 16:55 Klarke 閱讀(1760) | 評(píng)論 (0)編輯 收藏
            1. $ ctags –R * ($ 為L(zhǎng)inux系統(tǒng)Shell提示符) 
            2. $ vi –t tag (請(qǐng)把tag替換為您欲查找的變量或函數(shù)名)
            3. :ts (ts 助記字:tags list, “:”開頭的命令為VI中命令行模式命令)
            4. :tp (tp 助記字:tags preview)---&#61664;此命令不常用,可以不用記
            5. :tn (tn 助記字:tags next) ---&#61664;此命令不常用,可以不用記
            6. Ctrl + ]
            7. Ctrl + T
            posted @ 2012-05-11 11:07 Klarke 閱讀(1211) | 評(píng)論 (0)編輯 收藏
            僅列出標(biāo)題
            共7頁(yè): 1 2 3 4 5 6 7 
            久久久久人妻精品一区二区三区| 国产亚洲精品自在久久| 久久婷婷色综合一区二区| 久久青青草原精品国产软件| 日韩电影久久久被窝网| 国内精品人妻无码久久久影院导航 | 色欲综合久久躁天天躁| 亚洲色欲久久久久综合网| 久久精品国产久精国产思思| 久久AAAA片一区二区| 久久夜色精品国产噜噜麻豆 | 久久精品中文字幕大胸| 波多野结衣中文字幕久久| 久久久久噜噜噜亚洲熟女综合| 欧美日韩精品久久免费| 99久久夜色精品国产网站| 国产精品久久新婚兰兰| 9999国产精品欧美久久久久久| 国产成人综合久久精品红| 成人a毛片久久免费播放| 久久精品九九亚洲精品| 欧美国产成人久久精品| 91亚洲国产成人久久精品| 久久99久久99精品免视看动漫| 伊人久久大香线蕉综合5g| 国产农村妇女毛片精品久久| 久久精品无码午夜福利理论片| 久久久无码精品亚洲日韩蜜臀浪潮| 久久国产精品99久久久久久老狼| 精品久久久久久中文字幕大豆网| 久久国产视频网| 精品免费久久久久国产一区| 久久99精品国产麻豆宅宅| 色婷婷综合久久久久中文一区二区| 久久精品人妻中文系列| 一日本道伊人久久综合影| 亚洲精品tv久久久久| 偷窥少妇久久久久久久久| 久久香综合精品久久伊人| 久久久久亚洲av成人网人人软件| 亚洲一区精品伊人久久伊人|